本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博 @唐僧_huangliang,以便更好地与读者互动。
由于之前养成的习惯,出差在外晚上总想写点什么。前两天有朋友希望我讲讲NVIDMM-N对性能有多大实际改善,正好手头也有一份相关的测试资料。
其实在2个月前的《
SNIA持久化内存峰会:虚拟机、数据库、SDS进展曝光
》一文中,我就介绍过NVDIMM-N用于SQL Server数据库Log Buffers加速的性能数字,基于In-Memory数据库对比所以提升了一倍,因为内存库本身落盘的I/O就只有日志,所以效果不错。
显然OLTP交易型用户的比例更大,本文就希望能提供这方面的一些参考。
NVDIMM-N架构及DAX访问模型
虽然以前我没专门写过这一块,估计许多朋友对上图中的内容已经不陌生了。简单来说,NVDIMM具备和DRAM完全相同的性能,在异常掉电时利用备份电源(锂电池或电容)中的电量将数据备份到NAND闪存以避免丢失。
这个对比的·是SCM(存储级内存)的访问模式。左边为传统SSD/HDD的块设备;中间为SCM上的块设备卷;右边则是
SCM
上的DAX卷
。后者经过Volmgr/Partmgr,以
Memory Mapped
/Cached IO的方式直接建立文件系统。
也许有朋友会问:NVDIMM-N与3DXPoint等新一代存储级内存不同,为什么还要模拟块设备/卷呢?这与当前的应用有关,SQL Server数据库使用这个DAX卷时是
以字节寻址
的。
SQL Server日志缓冲在SCM中的合并提交
之前我谈过这个,传统的日志处理,Log记录在内存Buffer中一旦遇到Commit就要执行写盘到文件的操作。Oracle等数据库也是如此。
而在SQL Server 2016 SP1中对SCM非易失介质的优化,就是
不用每次Commit都写盘,可以凑成更大的块再刷到比如SSD上
。这样能够缩短日志写入延时。
根据此处的“SCM”,我联想到该特性在IntelApache Pass(即DIMM形态3D XPoint)推出时估计直接就可以支持。
注:之前我写过相关的评测,《
SPDK
实战、QoS
延时验证:Intel Optane P4800X
评测(5)
》是系列中的最后一篇,里面附有更多测试的链接。
NVDIMM-N软硬件测试配置
具体测试NVDIMM的服务器设置,是把
4
个数据库的日志分别映射到4条不同的NVDIMM-N
(DAX)模组上。
每个数据库大小创建为350GB,使用HammerDB工具测试
TPC-C
工作负载。每个数据库16用户,每项Benchmark测试10分钟。
这里可以提一下Dell EMC PowerEdge 740服务器配置NVDIMM时的注意事项。双路Xeon Scalable服务器最多支持24条内存,
每个通道的第二插槽(上图标绿色)才是用于NVDIMM的
,我理解在NVDIMM对应通道的蓝色插槽中都要安装有RDIMM常规内存。
关于硬件部分就不详细展开了,有兴趣的朋友可以查看我写的《
Dell PowerEdge R740xd解析:服务器只看参数那就错了
》。
测试结果 | HA影响NVDIMM普及?
在
TPS
性能对比中,没有NVDIMM时每秒交易数为16800,使用NVDIMM之后达到24000,提升了42%;而
Batch
(批处理)
则由每秒32000请求提高43%达到46000。
最后给大家列出测试硬件配置,这里使用了4条16GB NVDIMM-N,4块1.6TBSSD存放数据和日志文件。
同时还提到了一点——使用
单台服务器
测试。针对SQL Server生产环境,推荐至少2台服务器以确保HA高可用。
如果在HA双机连接共享存储的环境,本文这种日志加速方法就不容易用了;要是基于网络同步复制节点,估计延时也会比本地NVDIMM增加不少。
我想这可能就是NVDIMM-N至今还不太普及的一个原因吧?
参考资料:《Accelerating Microsoft SQL Server Performance With NVDIMM-N on Dell EMC PowerEdge R740》
注
:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
进一步交流
技术
,
可以
加我的
QQ/
微信:
490834312
。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:
HL_Storage
长按二维码可直接识别关注
历史文章汇总
:
http://www.10tiao.com/author/index?authorId=691