暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server 2014 新特性探秘之二 :SSD Buffer Pool Extension

微软科技 2014-05-22
731

SQL Server 2014 中另一个非常好的功能是,可以将SSD虚拟成内存的一部分,来供 SQL Server 数据页缓冲区使用。通过使用SSD来扩展 Buffer-Pool,可以使得大量随机的 IOPS 由 SSD 来承载,从而大量减少对于数据页的随机 IOPS 和 PAGE-OUT。

SSDAS Buffer Pool

SSD 是固态硬盘,不像传统的磁盘有磁头移动的部分,因此随机读写的 IOPS 远远大于传统的磁盘。将 SSD 作为 BufferPool 的延伸,就可以以非常低的成本巨量的扩充内存。而传统的模式是内存只能容纳下热点数据的一小部分,从而造成比较大的 Page-Out,如图1所示。

图1.大量随机的 IOPS 需要由磁盘阵列所承担

但如果考虑到将 SSD 加入计算机的存储体系,那么内存可以以非常低的成本扩展到约等于热点数据,不仅仅是提升了性能,还可以减少 IO 成本,如图2所示。

图2.扩展后内存几乎能 HOLD 所有热点数据

由图1和图2的对比可以看出,扩展后可以使用更便宜的 SATA 存储。此外,该特性是透明的,无需应用程序端做任何的改变。此外,该特性为了避免数据的丢失,仅仅在作为缓冲区的 SSD 中存储 Buffer Pool 的 CleanPage,即使 SSD 出现问题,也只需要从辅助存储中 PageIn 页即可。最后,该特性对于 NUMA 进行了特别优化,即使拥有超过8个 Socket 的系统,CPU 也能无障碍的访问内存。

启用BUFFER Pool Extension

在 SQLServer 2014 总,启用 Buffer Pool Extension 非常简单,仅仅需要拥有 SysAdmin 权限后,输入一个 T-SQL 语句即可,如图3所示。

图3.启用 Buffer Pool Extension

对应的,我们可以在物理磁盘中看到这个扩展文件,该文件的性能和 Windows 的虚拟内存文件非常类似,如图4所示。

图4.对应的 Buffer Pool 扩展文件

但这里值得注意的是,我们启用的内存扩展无法小于物理内存或阈值,否则会报错,如图5所示。

图5.报错信息

对于该功能,SQL Server 引入了一个全新的 DMV 和在原有的 DMV 上加了一列,来描述 Buffer Pool Extention,如图6所示。

图6.引入的新的 DMV 和对于原有 DMV 的更新

此外,对于该特性的监控,SQL Server 还引入了大量与之相关的计数器,如图7所示。

图7.相关计数器

小结

SQL Server Buffer Pool Extension 给我们提供了以更低成本来满足更高企业级需求的可能,结合内存数据库,未来的可能性将无限延伸。

文章转载自微软科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论