Intel Optane DC持久化内存性能测试、数据库应用优化

Intel Optane DC持久化内存性能测试、数据库应用优化

看到下面这张图,读者朋友不要觉得点开这篇文章进错了。昨天我是打算接着写《Facebook AI基础架构(上):Intel Nervana推理加速器》的下篇,不过搜了一下发现相关内容已经有国外网站发过了,本想休息一下的。



本文要写的不是上图这个哦:)

不过当我看到另一则消息《UC San Diego: Optane is great but…different》(链接:blocksandfiles.com/2019)之后,又觉得有必要跟大家分享点别的。

大家应该知道Intel新的第2代Xeon Scalable处理器(代号Cascade Lake-SP)即将发布,其中最主要的变化就是引入Optane DC Persistent Memory(傲腾持久化内存)——也就是装在DIMM插槽上的3D XPoint。大家还记得两年前我和朋友写的Optane SSD P4800X评测吗?

Intel Optane P4800X评测(序):不用缓存和电容保护的SSD?

Intel Optane P4800X评测(1):好钢如何用在刀刃上?

Optane P4800X评测(2):Oracle 170万TPM意味着什么?

Intel Optane P4800X评测(3):Windows绑核优化篇

MySQL的启示:Intel Optane P4800X评测(4)

SPDK实战、QoS延时验证:Intel Optane P4800X评测(5)

当Optane的接口从NVMe SSD换成DIMM内存,一方面带宽/延时性能可以更好。另外就是不再需要Intel Memory Drive Technology(ScaleMP)这样的软件就能直接当做内存使用;也可以选择模拟块存储设备,并支持DAX字节寻址直接访问模式。

能在发布前看到比较详细的测试报告,就可以提前了解性能有多大提高,以及是否需要修改数据库等应用来充分发挥Optane DC持久化内存的价值。



该报告下载链接我会在文末提供

这个NVSL是非易失系统实验室的缩写,来自美国哪个大学上面都写了。比较高兴的一点是在作者中看到了不少华人的名字,其实在Facebook的OCP峰会也是如此,我又想起了Mike晏勇兄:)




在给大家讲解测试报告之前,我先放网上搜到的几张图。Intel Optane DC持久化内存首批发布应该是128、256和512GB三个容量点,至少在去年就已经向外发样品了。




看着上图中的“AEP”字样,不知您是否也像我一样有点流口水:)




这个拆解图简单说一下:几颗最大的芯片就是3D XPoint Memory,PCB中间应该有1颗DRAM内存(用途暂不详),要知道之前的Optane SSD是不带DRAM缓存颗粒的(如下图)。



Intel Optane SSD DC P4800X AIC(PCIe插卡)版本




上面是NVSL实验室的测试平台,CPU用的就是Intel Cascade Lake-SP。NVMM即Optane DC持久化内存一共有3TB,每CPU插槽1.5TB,单条256GB,也就是一共12条跑满内存通道。

注:Cascade Lake不需要全新的服务器硬件型号,如有对平台和系统设计感兴趣的朋友可以参考我之前写的《Dell PowerEdge R740xd解析:服务器只看参数那就错了》等文章。

Optane DC内存模式:Memcached和Redis测试



Optane DC用作主内存测试总结

需要交代下上面的图例:

- MM-LDRAM,指的是内存模式,只是DRAM用来和Optane持久化内存对比;

- MM-Optane-Cached,Optane运行在内存模式,此时服务器DRAM内存充当Cache使用;

- MM-Optane-Uncached,字面上就能理解,与上面一种的区别就是无Cache。

首先在96GB的较小数据集时,Optane持久化内存跑Memcached和Redis这2款内存数据库的吞吐性能比DRAM内存有些差距,不过我觉得还好。其中Redis在DRAM Cache时有一定加速效果。

736GB这种大数据集才是Optane持久化内存的用武之地,因为它比内存的性价比高。

持久化存储模式:RocksDB、MySQL、MongoDB等测试




所谓Persistent Storage模式,就是用Optane持久化内存来模拟数据盘,不过与Optane SSD不一样。还是先交代下图例:

- Ext4 SATA:用于对比的SATA SSD;

- Ext4 SSD-Optane:就是NVMe接口的Optane DC P4800X或者P4801X;

- Ext4 PM-Optane:在Optane持久化内存的块设备上创建Ext4文件系统;

- Ext4-DAX PM-Optane:与上面一行的区别在于,direct access选项绕过了文件系统的页缓存(page cache),直接访问PMEM设备上的数据。这种模式不兼容Journal(日志)特性,针对文件数据写入不提供一致性担保(由应用自己来处理)。

- NOVA PM-Optane:一个专用的NVMM文件系统。它实现了日志结构的元数据和copy-on-write机制针对文件数据更新,来提供所有元数据和文件数据操作的crash一致性保证。NOVA只能运行在PMEM设备的DAX模式,同样bypass页缓存。

- NOVA-Relaxed PM-Optane:这个模式NOVA放松了一致性,允许原地文件页写入,来改善应用的写性能,因为不需要每次写入的数据都保证一致性。

- Mapped PM-Optane:Optane持久化内存被用于字节寻址的裸设备,需要应用能够映射到自己的地址空间来直接load/store访问。当然,这个比Oracle ASM那样使用传统存储块设备的效率要高。

再举例看看上面的数据库测试对比图表,首先SATA SSD相对太差可以暂时排除讨论。

SQLite:在NOVA-Relaxed PM-Optane模式下有明显提高;

RocksDB:Ext4 PM-Optane就比Optane SSD提高不少,使用NOVA文件系统后性能再次翻倍;

Redis:Ext4 PM-Optane和Optane SSD差别不明显,但NOVA还是有明显效果。

可见专门打造的文件系统对Optane持久化内存性能可以有不小帮助,更多详细测试结果可以看报告全文,下面还有一个重点。

应用优化:PMEM内存模式如何提升性能?



Redis在文件系统/user-level持久化的吞吐对比

这里还是要有个图例:

PM-LDRAM:Local DRAM代表CPU插槽本地内存的性能,用来和Optane DC PM对比;

PM-RDRAM:Remote DRAM即跨CPU插槽的非NUMA优化内存访问,同样用于对比;

PM-Optane:Optane持久化内存,PMEM模式。

这是一个使用Intel PMDK(Persistent Memory Development Kit)修改过的Redis版本,不再使用日志文件就能确保状态持久化。左边的“storage”是在NVMM感知的NOVA-Relaxed文件系统上记录日志,右边则是绕过文件系统在用户态持久化的pmem内存模式。

Redis在这一点上的提高还不算特别大吧?



RocksDB吞吐量对比

上面同样是一个修改版本的RocksDB,熟悉这个数据库的朋友包括玩Ceph Bluestore的应该对write-ahead log(WAL)不陌生了,同样是要在NVMM感知的user space应用改变这个机制。

图表左边是使用NOVA-Relaxed文件系统存放WAL日志,右边的pmem则是在NVMM中实现持久化来达到crash-consistent的效果。可见PMDK改造对RocksDB的作用更明显一些。

另一方面,Optane持久化与DRAM在这里的性能差距,比起是否NUMA优化DRAM访问的影响要小。



MongoDB单线程吞吐量对比

MongoDB自身的WT存储引擎带有snapshot(快照)和journal,使用PMDK改造的PMem引擎似乎提高不明显。这个应该与该文档数据库自身的特点相关。




PMemKV(Intel’s Persistent Memory Key-Value Store),是一个NVMM优化的KV数据存储。

Oracle和SQL Server对非易失内存支持现状

最后简单加一点回顾。下图引用自盖国强老师的文章《Oracle Database 18c 的10大新特性一览》,我估计Exadata有可能会引入Optane DC Persistent Memory。




另外就是我写过关于微软SQL Server的情况,参见《数据库TPC提升42%:NVDIMM-N为何普及慢?

以上就是我的学习笔记,分享出来,希望对大家有帮助。

参考资料《Basic Performance Measurements of theIntel Optane DC PersistentMemory Module》

arxiv.org/pdf/1903.0571


:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)


尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:HL_Storage



历史文章汇总chuansong.me/account/hu

发布于 2019-03-24