MSSQL 2014新功能之缓存池扩展BPE (Buffer Pool Extension)

0    129    1

Tags:

👉 本文共约8035个字,系统预计阅读时间或需31分钟。

简介

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

SQL Server 从磁盘中读入数据,并且存放在buffer pool中以供读取和修改,修改完之后脏数据还是放在buffer pool中,当内存紧张执行lazy write把脏数据写入磁盘,并且释放内存页。要用时又会从磁盘中读取,这样无形中加大了对io的需求。

SQL Server 2014之前解决方法:加内存,减少对IO的需求

SQL Server 2014解决办法:使用buffer pool扩展,加入SSD硬盘,加大工作集,减少对IO的需求。

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

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

1. 提高随机I/O的吞吐量

2. 降低I/O延迟

3. 提高单位时间内处理事务的吞吐量

4. 显著地提高读性能

5. 以软件方式为客户实现了类似于混合硬盘的效果。

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

1.数据仓库。您应该考虑列存储而不是缓存池扩展

2.写入比较多的OLTP。

3.拥有大于64GB内存的服务器

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

CW:只向SSD写入干净页。

DW:双重写,即同时向SSD和硬盘写入脏页。

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

MSSQL 2014新功能之缓存池扩展BPE (Buffer Pool Extension)

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

缓冲池扩展的优点

SQL Server 数据库的主要用途是存储和检索数据,因此,大量磁盘 I/O 是该数据库引擎的一个核心特点。 由于磁盘 I/O 操作可能会占用消耗很多资源并且耗时较长,所以 SQL Server 侧重于使 I/O 极为高效。 缓冲池用作 SQL Server的主内存分配源。 缓冲区管理是实现高效 I/O 操作的关键环节。 缓冲区管理组件由下列两种机制组成:用于访问及更新数据库页的缓冲区管理器和用于减少数据库文件 I/O 的缓冲池。

数据和索引页从磁盘读入缓冲池,修改后的页(也称为脏页)写回磁盘。 服务器和数据库检查点上的内存压力会造成缓冲区缓存中的热(活动)脏页被逐出缓存并写入机械磁盘,然后又读回到缓存中。 这些 I/O 操作通常是 4 到 16 KB 数据的小型随机读和写操作。 小型随机 I/O 模式会导致频繁搜索、机械磁盘臂争用、I/O 滞后时间延长以及系统的总 I/O 吞吐量减少。

解决这些 I/O 瓶颈的典型方法是添加更多 DRAM,或者添加高性能 SAS 主轴。 虽然这些方法很有用,但它们具有明显缺点:DRAM 比数据存储驱动器成本更高,增加主轴数会增加硬件购置的资本支出,并且功耗和部件故障概率都会提高,从而增加运行成本。

缓冲池扩展功能通过非易失性存储器(通常为 SSD)来扩展缓冲池缓存。 由于这种扩展,缓冲池可以容纳更大的数据库工作集,可强制在 RAM 和 SSD 之间对 I/O 分页。 这会有效地将小型随机 I/O 从机械磁盘卸载到固态硬盘。 由于固态硬盘滞后时间短且具有更佳随机 I/O 性能,缓冲池扩展可显著提高 I/O 吞吐量。

下面的列表说明了缓冲池扩展功能的优点。

  • 随机 I/O 吞吐量提高
  • I/O 滞后时间缩短
  • 事务吞吐量提高
  • 由于采用更大的混合缓冲池,读取性能提高
  • 具有一种可利用现有和将来的低成本内存驱动器的缓存体系结构

容量限制

SQL Server Enterprise 版本允许的最大缓冲池扩展大小为 max_server_memory 值的 32 倍。

SQL Server Standard 版本允许的最大缓冲池扩展大小为 max_server_memory 值的 4 倍。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MSSQL 2014新功能之缓存池扩展BPE (Buffer Pool Extension)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部