媒体实测英特尔® 傲腾™ 持久内存
一篇文章看清场景、配置与优势

  • 本文详细讲述了 PMem 的 3 种应用模式的优势与配置方法,并通过基础测试、Redis 测试与 RocksDB 测试得到了 PMem 的实战数据。结果表明其拥有与 DRAM 内存相近的读写性能和访问时延,比固态盘更耐用,还具备固态盘的数据持久性;在高并发的场景中,也有着不亚于 DRAM 内存性能的卓越表现,可凭借大容量的优势,轻松驾驭 TB 级的内存数据库战场。

author-image

作者

众所周知,英特尔® 傲腾™ 持久内存(以下简称 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 的同学都知道它有三种应用模式,那么到底应该在什么样的应用场景里选择什么样的模式,才能最大限度发挥它的潜能呢?答案就在下表中,请课代表划重点:

 

Memory Mode

适用场景

App Direct

适用场景

KMEM DAX

适用场景

1 数据不需要持久化 数据需要持久化 数据不需要持久化
2 应用需要的内存容量超出 DRAM 所能支持的范围 需要低延迟、高带宽的高性能存储 应用可自主决定将数据放入 DRAM 还是 PMem
3 希望在提高内存容量的同时降低总拥有成本 需要快速恢复 可以对应用进行修改
4 不希望对应用进行修改 可以对应用进行修改  

至于这些模式的配置,可谓简单易行,具体操作如下(都是来自英特尔专家的官方分享哟):


    内存模式:

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 的利用率,在私有云虚拟化方面也将有很大潜能。