缓存池扩展 (Buffer Pool Extension)实践
SQL Server 2014缓存池扩展 (Buffer Pool Extension)功能可以将缓存池扩展到较快的SSD存储上。为内存比较紧张的系统提供了新的扩展途径。
Buffer Pool 扩展可以带来以下好处:
- 提高随机I/O的吞吐量
- 降低I/O延迟
- 提高单位时间内处理事务的吞吐量
- 显著地提高读性能
- 以软件方式为客户实现了类似于混合硬盘的效果。
缓存池扩展支持以下两种模式:
- CW:只向SSD写入干净页。
- DW:双重写,即同时向SSD和硬盘写入脏页。
下面2张图里,C: 干净页 D:脏页 R:随机 S:顺序
- 顺序写总是直接写入硬盘,不会写入SSD
- 干净页的随机写是写入SSD,因为既然是干净页,硬盘上已经有一份拷贝。
- 当缓存池尚有空间时,缓存池扩展采用CW模式的,只对SSD只写入干净页。
- 当缓存池空间已满,需要将一部分脏页刷到硬盘上的时候,它是DW模式的,脏页将同时写入SSD和硬盘。
总的来说缓存池扩展对于读远远高于写的OLTP系统比较有帮助,对于以下环境,则帮助不大:
- 数据仓库。您应该考虑列存储而不是缓存池扩展
- 写入比较多的OLTP。
- 拥有大于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:\SSDCACHE\Example.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
注:此文章为WoodyTu学习MS SQL技术,收集整理相关文档撰写,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错请点击下右下角的推荐,有了您的支持才能激发作者更大的写作热情,非常感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?