且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-12 18:18:06

在《Intel Optane P4800X评测(序):不用缓存和电容保护的SSD》一文发表之后,有同行朋友不只一次询问后续测试的情况,看来大家对Optane/3D XPoint Memory的真实性能很感兴趣。

 

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

安装在R830半高PCIe扩展槽位上的Intel Optane P4800X

 

我们进行的Intel Optane SSD DC P4800X测试跑在Dell PowerEdge R830平台上,R830是一款2U四路服务器,支持XeonE5-4600 v4系列CPU

 

另外值得一提的是,本次测试有幸邀请到熊猫直播高级DBA杨尚刚参与。许多朋友都知道,尚刚在互联网公司工作多年,是MySQL数据库等方面的专家。

 

FIO性能测试:验证和补充

 

之前我在Optane P4800X内存模式背后技术一文中列出过Intel ProductBrief文档所写的性能,也是用fio工具获取的。那么我们一方面想用自己的测试数据来做个验证,同时也能补充更多的性能指标,以便大家能够更全面地了解Optane P4800X

 

1、低并发下IOPS,延时优势

 

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

通过实测,我们手头这块Optane P4800X SSD跑出了58万以上的4KB随机读IOPS,比资料中的55万略高;同样NVMe接口使用NAND闪存的P3700在高并发/队列深度(Quene Depth)下也测到了标称的46万。

 

而我们还注意到,当QD=64P3700的读IOPS39万,而QD=16时只有14万,与Optane P4800X形成鲜明对比。这个与之前了解到3D XPoint介质在低队列深度下表现突出是相符的。

 

大家知道Intel P3700的控制器是18通道,而在实际测试中64并发/队列深度也没把它的性能潜力压满,这让我想起2015IDF期间曾经写过SSD性能的“色子效应”

 

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

 

在《不用闪存了,OptaneSSD为何还要28%OP》一文中,谈到过OptaneP4800X 375GB可能是7通道设计。根据QD=16基本达到峰值的测试数据来看,3D XPoint Memory实际并发效果比NAND闪存要好

 

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

再来看看平均延时。在并发/QD64512Optane P4800X的优势虽然没有达到与其单位容量价格成正比的水平,但QD 16低队列深度的表现让我们满意。

 

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

如上表,Optane P4800X当队列深度=1延时小于10μsQD=16也仅上升到20μs。可以看出PCIe接口在这里的限制,如果未来做成DIMM形态插在内存通道上,与闪存的差距预计还会加大。

 

2、写稳定性,Optane没有FOB/稳态差别

 

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

4KB随机写IOPSOptane P4800X标称的是50万,我们本次测出的54-55万还是稍高。至于IntelP370017万是资料中的标称值,至于20-21万的测试数据,有一部分是开始测试时还没有达到稳态写性能。下面列出并介绍下测试数据生成的详细图表,相信这个对大家会有参考价值。

 

注:在《Intel发布P4500P4600 NVMe SSD:规格释疑》中我提到新一代P4600的最大稳态写IOPS提升到25万。

 

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

Intel SSD P3700随机写IOPS测试曲线

 

上图中的文字有点小,大家可以点击放大,我也辅助说明下——测试曲线是4K随机写IOPS,纵坐标刻度从10万到40万,横坐标为时间3600秒(1小时),蓝色、橙色和绿色曲线分别对应并发/QD 1664512

 

大多数朋友应该都了解使用NAND闪存介质的SSD,其随机写性能在FOBFresh Out of The Box,新盘或者全盘擦除后)和稳态之间的差距。这里的蓝色曲线可以说相当典型,我们预先将满盘写满并开始测试,P3700的随机写一开始可达40IOPS,当OP(超量分配)空间用满后台触发GC(垃圾回收)滑落到10万出头然后逐渐恢复到17万稳定值

 

紧接下来的QD=64测试基本保持在稳态,而QD=512恰好则是我们后来进行过“性能恢复”再测的曲线,这个结果不难理解吧。

 

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

上图对比了Optane P4800XP3700在并发/QD=64时的随机写IOPS曲线,可以看出前者明显更稳定。前文中我们提到过3D XPoint Memory没有传统SSD那样的写放大,也不需要垃圾回收。即改写数据时不需要先擦除以完成P/E Cycle,所以不会因为写满和存储空间的碎片化而影响性能稳定。相比之下,NAND闪存SSD64及以上并发时的波动明显波动要多一些。

 

3、为什么说平均延时应用体验

 

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

随机写延时,Optane P4800X在高并发/队列深度下的优势也比较明显,而实际体验我认为比这个还要好(稍后给大家解释)。

 

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

上面这个P3700的数据我在不只一篇文章中列出过。尽管Intel标称的典型随机写延时为25μs,但队列深度为1Cache的作用更加明显,我们测试并发/QD=16达到平均80μs。下面的详图对比推荐给大家。

 

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

Intel SSD P3700随机写延时测试曲线

 

上面这张延时图与前面的IOPS曲线相对应,纵坐标的刻度从10005000μs。这部分大致总结出2点:

 

1、  在测试中写IOPS较高的阶段,相应的延时也较短,但这段表现也还没达到稳态;

2、  并发加大后NAND闪存SSD的延时波动增加比较多。比如我们前面列出P3700QD 5122760μs的平均值,实际用户体验要按4000μs(即4ms)以上来评估了吧?

 

对比下面的Optane P4800X区别很直观:

 

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

Intel Optane P4800X随机写延时测试曲线

 

不难看出,P4800X在并发/QD=512随机写延时仍相当稳定,我觉得这个900μs左右的实际体验至少要比同样条件下P37004-5倍以上。

 

这就是为什么企业级SSD厂商强调QoS延时。《再谈3D XPoint:延时、QoS与队列深度》一文中我曾经有过详细一些的讨论,其中关于P3700的性能数据后来进行过更新,结论如下:

 

P3700 QoS 99.99% QD=16的读延时,如果不出意外应该在4-5ms之间,OptaneP4800X要胜出几十倍了。

 

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


Intel P370099.99% QoS范围、QD=14KB随机读延时为4ms,是Optane P4800X60μs的接近70倍,而且后者给出的QoS等级还要更高

 

真实应用队列深度:ServerSAN、超融合带来的影响

 

在撰写本文之前,我记得曾经看到过关于实际应用存储负载,在队列深度方面的分析。网上搜了一下查到本文开头提到过那篇2015IDF的文章。

 

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

根据这份数据,Hadoop大数据、使用HammerDB数据库工具压测TPC-CHPC高性能计算、ZFS文件系统写日志,以及YCSBYahoo Cloud Serving Benchmark产生的队列深度都不算高(10以内最多);只有TPC-HOLAP)例外,甚至有一部分I/O达到260 QD以上。

 

较之两年前我有一点新体会:以上这个图表估计是监测服务器单机上的I/O负载,集中式存储系统的情况有些不同,因为经常要同时面对多个主机的访问,产生混合I/O负载。而ServerSAN和超融合的情况又有变化,因为存储(控制器)节点Scale-out扩展更加普遍。

 

再加上下一代服务器对NVMe SSD数量支持的增加,未来高性能的存储应用负载,最终分摊到每节点上单一SSDI/O队列深度仍然不见得会很高。因此之前人们讲的可能还适用——以P3700为代表的NAND闪存盘,许多应用中其最大IOPS可能无法充分发挥。而OptaneP4800X的情况就不同了。

 

最后再交代一点,由于符合NVMe标准和通用驱动,目前AICPCIe插卡)形态Optane P4800X的兼容性应该比较好。在我们测试的PowerEdgeR830服务器平台上,表现良好而稳定。

 

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

引用自《Dell PowerEdge R830 Owner's ManualTable 34. Expansion card installation order(部分),这里面有散热和机械装配的考虑。

 

由于多路Xeon服务器的PCIe插槽可能来自不同的CPU控制,安装前我们特意查阅了Dell的用户手册,感觉上图内容还是挺有用的。这既是用户建议也是内部兼容测试列表的一种反映。如果是半高NVMe PCIe SSD扩展卡,可以先使用34两个插槽7/6/2/1都支持全高(半长)扩展卡。根据手册中的更多内容,可以看出PCIe槽编号3/6/7来自CPU 1,而1/2/4/5来自CPU 2,除了16插槽支持PCIe x16带宽之外余下都是x8信号。

 

本文先写到这里吧,后面再给大家分享包括数据库在内的更多测试结果。

 

特邀作者/测试专家介绍

 

杨尚刚,熊猫直播高级DBA,之前在新浪负责新浪微博核心数据库架构设计和优化,以及数据库平台硬件测试和选型。