查看原文
其他

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

唐僧 企业存储技术 2018-10-31
本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博ID:唐僧_huangliang,以便更好地与读者互动。


接上篇


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

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

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

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

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

 

终于到了系列测试收官的一篇,之前还剩下一点遗憾,就是我们未能测出小于10μs的延时,可以在本文中补上了!

 

这张拼图来自我之前给大家展示过的2张照片,Intel OptaneSSD的主控和3D XPoint Memory颗粒内部的“黑科技”,仍然笼罩着面纱。

 

SPDK之缘起

 

进行这部分测试,是受到一位朋友写的文章《浅谈SPDK》启发,顺便在此给大家推荐下他的微信公众号“小麦杂记”。

小麦同学曾在全球顶级网络厂商工作多年,技术经验非常丰富;目前关注服务器、存储多一些,也会发表一些相关的大作。总之,他的文章我看了收获挺多。

 


要玩SPDK,有几个注意事项简单跟大家交代下

 

1SPDK依赖于同样用户态的DPDK

2、当某个NVMe SSD工作在用户态下,对内核块设备驱动即不可见,就是说这块盘被SPDK独占了;

3、同理,FIO这些测试工具对SPDK控制的NVMe设备也不能用了,所以下面对比使用的是SPDK自带的perf,这个小测试程序功能没有FIO丰富,对比结果仅供参考。

 

Optane + SPDK:低QD性能优势进一步发挥

 

点击放大,以下同

 

从上面图表不难看出,SPDK在低并发/队列深度下的优势相当明显。无论IOPS还是延时,当队列深度1-4SPDK的领先都在一倍以上,此时OptaneP4800X最低测出了6.49μs随机读延时的表现,终于验证了Intel产品文档中的规格。

 

当队列深度达到16之后,测试瓶颈开始显现在SSD硬件本身上面,SPDK和内核态没有明显差别了。也就是说,polling轮询相对于传统的中断I/O模式3D XPoint Memory在低队列深度下的性能优势能够更好地发挥出来。

 

随机写测试的情况类似,Optane P4800X在队列深度=1时延迟低至8μs。写和读有一点不同的是,当并发/队列深度达到16或以上,SPDK下的IOPS超过55万,比官方标称的50万还要高。与之对应的是,这时延迟也要比内核态低。

 

到这里我们初步的结论是:SPDK有助于充分“压榨”出NVMe SSD的写性能潜力。下面再来看看P3700 SSD的测试情况。

 

Intel P3700:写IOPS、延时亦有改善

 

如上图,Intel P3700随机读在SPDK下也有一些提高,但远不及Optane P4800X明显。究其原因,应该是传统NAND闪存SSD在低队列深度下的自身瓶颈所致。

 

至于随机写,由于P3700上有DRAM Cache的帮助,SPDK带来的优势比读大了许多。同时也出现了和Optane P4800X类似的情况——最大写IOPS超出规格标称值,达到20.8万。

 


上面我截取了一段短时运行SPDK perf的输出——同时在OptaneP4800XP3700上跑随机写。此时的45IOPS还处于P3700 SSD的峰值性能(即写缓存效果+没有触发GC),所以两个SSD加在一起超过100IOPS,并且只使用了Dell PowerEdgeR830服务器上Xeon E5-4610 v4 CPU的一个核心

 

在前文Intel Optane P4800X评测(3)Windows绑核优化篇结尾处我曾列出过一张图表,Xeon单核SPDK可以跑到350IOPS。那么上面我只是小试牛刀,在没有更多块SSD的情况下,体验了一把用户态poolingCPU开销上的巨大优势

 

SPDK测试部分小节

 

性能和资源利用是一回事,而SPDK在应用中的普及则是另外一回事。毕竟传统文件系统、应用都是跟Kernel块设备打交道,要牵涉到开发习惯等方面的变化。

 

我不是这方面的专家,只是觉得将来如果SPDK真的普及了,NVMe SSD的性能指标估计都要重新标高一些:)

 

QoS延时验证:Optane什么条件下最突出?

 

在此之前,我列出和对比的SSD延时都是平均值。而影响用户体验的不只这些,还有延时的稳定性,这方面可以通过QoS延时来反映,也就是在一定百分比范围内的响应时间最大值。

 

上面是Intel Optane P4800X官方文档中的QoS延时指标,公开了99.999% 4KB随机读写,队列深度116

 

Intel SSD P3700之前则公布过更详细的ProductSpecification文档,分为99%99.99%两种QoS等级,QD=1128队列深度。

 

这次我们的验证测试引用QD=1QD=16的指标进行对比。

 

Intel P3700这个4ms延时,可能是在某些特殊条件下才会达到吧?

 

这里先交待一下颜色的对应关系,以免给大家搞糊涂:)蓝色和绿色分别为Optane P4800XP3700的官方标称值;而深红色和紫色则是我实测1小时的结果。

 

测试中发现一点意外情况——从前面的官方表格中大家可能也看出了——Intel P370099.99% QoS随机读延时标称4ms,比相应情况下随机写还要高很多。这感觉有点不太符合NAND闪存的特性?

 

而我只是想把事实列在这里,正如这几天看到同行朋友所说的,反复的读操作也可能触发GC(垃圾回收)。具体原理先不在这里讨论了,由于测试时间所限,每种条件下我只跑了1小时,所以测出的QoS延时比标称值要低一些

 

总的来说,随着QoS的等级不断提高,两款SSD在随机读QD=1的差距呈现缩小趋势。

 

随机读QD=16QoS延时,Optane P4800X依然优势明显。

 

同样应该是由于测试时间的关系,我们测试的P4800X随机写QoS延时也比官方标称低不少。由于是单队列,绝大多数I/O都能在SSD的写缓存中先合并,所以如果只看平均延时,FIO测试的结果会看出两款卡相差不多。而到了高等级QoS特别是99.999%时,Optane才显出10倍以上的优势

 

高并发/QD下的的随机写QoS延时,可以说是Optane P4800X最擅长的地方3D XPoint Memory介质可以直接写入,没有NAND闪存P/E Cycle(编程/擦除周期)产生的写放大,也不需要垃圾回收。所以我们看到P4800XQD=16 99.999%随机写延时标称值为200μs,我实测1小时得到141μs,而P3700则高达8ms

 

致谢

 

本系列评测至此先告一段落了,希望我的努力结果能给大家带来客观的参考。同时也要感谢Dell和熊猫直播高级DBA杨尚刚的大力支持,以及更多朋友的帮助。

 

最后,还要感谢《企业存储技术》读者朋友们长期以来的关注和支持。在这里我要加一个小广告了:)如果对Optane SSD DC P4800X有采购意向的用户,Intel的朋友给推荐了他们总代的联系方式:

 

北京:张涌 zhangyong@digitalchina.com 

上海:杨俊 eric_yang@cn.synnex-grp.com

深圳:何枫 Gavin.he@wpi-group.com

深圳:李涛 Tao.li@ex-channel.com

 

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


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


长按二维码可直接识别关注

历史文章汇总(传送门):http://chuansong.me/account/huangliang_storage

点击下方“阅读原文”,查看更多历史文章↓↓↓

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存