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