zoukankan      html  css  js  c++  java
  • 缓存池扩展 (Buffer Pool Extension)实践

    SQL Server 2014缓存池扩展 (Buffer Pool Extension)功能可以将缓存池扩展到较快的SSD存储上。为内存比较紧张的系统提供了新的扩展途径。

    Buffer Pool 扩展可以带来以下好处:

    1. 提高随机I/O的吞吐量
    2. 降低I/O延迟
    3. 提高单位时间内处理事务的吞吐量
    4. 显著地提高读性能
    5. 以软件方式为客户实现了类似于混合硬盘的效果。

    缓存池扩展支持以下两种模式:

    • CW:只向SSD写入干净页。
    • DW:双重写,即同时向SSD和硬盘写入脏页。

    下面2张图里,C: 干净页  D:脏页  R:随机  S:顺序

     

    1. 顺序写总是直接写入硬盘,不会写入SSD
    2. 干净页的随机写是写入SSD,因为既然是干净页,硬盘上已经有一份拷贝。
    3. 当缓存池尚有空间时,缓存池扩展采用CW模式的,只对SSD只写入干净页。
    4. 当缓存池空间已满,需要将一部分脏页刷到硬盘上的时候,它是DW模式的,脏页将同时写入SSD和硬盘。

    总的来说缓存池扩展对于读远远高于写的OLTP系统比较有帮助,对于以下环境,则帮助不大:

    1. 数据仓库。您应该考虑列存储而不是缓存池扩展
    2. 写入比较多的OLTP。
    3. 拥有大于64GB内存的服务器

    以下是如何使用缓存池扩展的具体步骤:

    首先检查SQL server最大内存的设置。建议将缓存池扩展的大小设为最大内存的16倍或以下。请先做好充分测试再实施到生产环境。

     1 USE master
     2 GO 
     3 
     4 EXEC sp_configure 'show advanced options', 1
     5 RECONFIGURE WITH OVERRIDE
     6 GO
     7 
     8  
     9 EXEC sp_configure 'max server memory (MB)'
    10 GO 
    11 
    12 /*
    13 
    14 EXEC sp_configure 'max server memory (MB)', [VALUE (MB)]
    15 RECONFIGURE WITH OVERRIDE
    16 GO
    17 */

    以下脚本启用了缓存池扩展到10GB:

     1 USE master
     2 GO 
     3 
     4 ALTER SERVER CONFIGURATION   
     5 SET BUFFER POOL EXTENSION OFF;
     6 GO
     7 
     8 ALTER SERVER CONFIGURATION
     9 SET BUFFER POOL EXTENSION ON   
    10 (FILENAME = 'F:SSDCACHEExample.BPE', SIZE = 20 GB);
    11 GO

    以下为缓存池扩展相关的DMV和perfmon counter,可用于检查设置和监控:

     1 --DMV:
     2 select * from sys.dm_os_buffer_pool_extension_configuration
     3 select * from sys.dm_os_buffer_descriptors where is_in_bpool_extension = 1
     4 
     5 --Perfmon counter:
     6 SQL Server:Buffer Manager:Extension page reads/sec
     7 SQL Server:Buffer Manager:Extension page writes/sec
     8 SQL Server:Buffer Manager:Page reads/sec
     9 SQL Server:Buffer Manager:Page writes/sec
    10 SQL Server:Readahead pages/sec

    原文链接:http://blogs.msdn.com/b/apgcdsd/archive/2014/12/18/sql-2014-6-buffer-pool-extension.aspx

  • 相关阅读:
    http 400 错误的请求怎么解决
    HTTP 404
    怎样在WIN7系统下安装IIS
    未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?) 转
    错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd
    mklink命令转移win7系统盘文件夹users和programdata(附xp的方法)
    前端进阶之路:初涉Less
    原生js实现tooltip提示框的效果
    jquery+css实现邮箱自动补全
    前端面试中常见的算法问题读后整理
  • 原文地址:https://www.cnblogs.com/woodytu/p/4642077.html
Copyright © 2011-2022 走看看