众所周知,英特尔® 傲腾™ 持久内存(以下简称 PMem)是一款近年来少见的,在性能、容量和数据持久性上都让人眼前一亮的创新产品,而英特尔每每提及它时,都会用 “颠覆传统内存和存储架构”来形容它的价值。
不过,“眼见为实”才会有足够的说服力。专注于企业级设备开箱和测试的媒体“无情开评”这次就通过加压实测的方式,对 PMem 的性能和特性进行了全方位的测试以及解读,让我们来一起看看它的实战表现有何过人之处。
—1—
基础性能测试:颠覆传统!低时延与高性能的新突破
既然要探究 PMem 的真实性能,那么不妨从基础测试做起。
8 根 DRAM+8 根 PMem 的配置 vs. 8 根 DRAM+1 根 PMem 的配置, 通过多轮脚本轰炸,来观察不同配置下其随机读、随机写与随机混合读写的能力。
上图 8+1 和 8+8 的测试结果数据对比可以说是一目了然,8+8 组合的性能表现是 8+1 组合的8倍,说明多根 PMem 组合性能线性增长,不存在额外性能浪费。
同时,PMem 主要延时落在 170-320 纳秒的区间里,与 DRAM 内存相近,但与传统 NVMe 固态硬盘微秒级的时延相比,领先达千倍数量级!这在多数 IT 产品升级换代只会带来两位数(XX%)性能增长、有新品实现性能翻倍都会让大家集体围观的时代,可真是一枝独秀。
在企业级的真实应用中,我们选择了 Redis 和 RocksDB 这两个典型用例进行加压测试。
—2—
Redis 测试:“小钱”办大事!实力不输 DRAM
利用 Redis 来提升服务响应速度是目前越来越多企业的选择。通过 DRAM 缓存数据固然能降低时延,但性价比的问题依然困扰企业。PMem 的出现可谓希望之光。
下面我们来对比一下两者在 Redis下的性能表现。
可以看到,在一项一亿两千万个数据请求测试中,与 DRAM 相比,KEME DAX 模式下的 PMem:
- 在读取性能上,相当于 DRAM 的96%;
- 写入性能上,相当于 DRAM 的90%;
- 访问时延与 DRAM 内存接近,即使大部分数据都存在 PMem 中,也可以达到 DRAM 性能的95%。
更重要的是容量大,价格低!
所以少量配备了 DRAM + PMem 的服务器节点,完全有望在性能和容量上取代大量只配备有 DRAM 的服务器节点,从而显著降低采购、部署和维护成本。
—3—
RocksDB 测试:读写实力碾压 NVme
作为近年来的明星数据库引擎,RocksDB 在快速存储和高并发服务压力下性能表现优越。
那么 PMem 在 RocksDB 场景里又有哪些靓眼的表现呢?
实测表明,PMem:
- 随机写性能接近于 NVMe 固态盘的2倍;
- 随机读性能接近于 NVMe 固态盘的10倍。
—4—
按场景灵活配置 PMem:知人善用!三张“王牌”各显神通
熟悉 PMem 的同学都知道它有三种应用模式,那么到底应该在什么样的应用场景里选择什么样的模式,才能更大限度发挥它的潜能呢?
答案就在下表中,请课代表划重点:
至于这些模式的配置,可谓简单易行,具体操作如下(都是来自英特尔专家的官方分享哟):
内存模式
1、使用 ipmctl 命令:
“ipmctl create -f -goal memorymode=100”
2、重启:
AD 模式
1、使用 ipmctl 命令:
ipmctl create -f -goal persistentmemorytype=appdirect
2、重启
3、文件系统创建和挂载:
ndctl create-namespace
mkfs.ext4 /dev/pmem0
mount -o dax /dev/pmem0 /mnt/pmem0
KMEM DAX 模式配置
1、设置为 AD 模式并重启生效;
2、把 DEVDAX 放进去,namespace 创建成为 DEVDAX 设备;
3、创建 PMem 成为新 NUMA 内存节点。
—5—
写在最后:真金不怕火炼
有了这样详尽的测试和配置指南,你应该更了解如何用好 PMem 这位新伙伴了吧?正如无情开评最后点评:它既拥有与 DRAM 内存相近的读写性能和访问时延,比固态盘更耐用,又具备固态盘的数据持久性。在高并发的场景中,也有着不亚于 DRAM 内存性能的卓越表现,可以凭借大容量的优势,更轻松驾驭 TB 级的内存数据库战场。由于它与 CPU 的连接和协作更快,能提高 CPU 的利用率,在私有云虚拟化方面也将有很大潜能。