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

本次测试特邀熊猫直播高级DBA杨尚刚参与。尚刚在互联网公司工作多年,是MySQL数据库等方面的专家。

 

在这一系列评测中,从前面几篇已经可以全面了解使用3D XPoint MemoryOptane P4800X SSD硬件本身的性能,以及在Oracle数据库中的表现和价值。如果还没看过并且有兴趣的朋友可以点击下列链接:

 

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

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

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

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

 

至于MySQL,在Intel官网上也有一篇文章《Applying Intel Optane SSDsto MySQL- Part 1 Fast Storage》,其中的测试数据还看上去还不错。那么我们自己的实测结果如何呢?

 


测试环境还是之前那套平台:Dell PowerEdge R830服务器,配置4Xeon E5-4610 v4 1.8G十核CPU256GB内存。分别检验数据库放在Intel SSD P3700Optane P4800X上的表现。

 

首先,我们将列出bufferpool(也就是数据库在系统内存中的缓存)设置为14GB时的测试结果。

 

第一轮测试:P3700已跑满,Optane仍有余地

 

测试数据库MySQL 5.7.18 官方社区版

 

QPSquery persecond)包括数据库的读写操作,横坐标为并发数,以下同

 

select查询场景是只读操作。由于测试平台CPU总共40个物理核心/80线程,SysBench压测到128线程已达峰值性能。进一步观察,在Optane P4800XP3700两者QPS差不多的情况下,P3700ioutil能到100%,而Optaneioutil60-70左右。也就是说P3700已经到了极限,而Optane还是有空间的,进一步性能发挥可能受限于MySQL自身或者CPU

 

由于数据库缓存的作用,该场景的平均延时表现差不多(瓶颈不在卡上),所以上面我们列出的是95% QoS延时。这个应该就是Cache未能命中那些落到SSD上的I/O,所以低并发时Optane的优势大一些。

 

insert插数据场景则是100%写,我看了OptaneP4800XP3700的数据没有明显差距,无论QPS还是延时。由于bufferpool的缓存作用,insert此时应该主要受限于MySQL本身。下文中我们还会列出调小Cache后的insert压测曲线。

 

这个图表比较的是平均延时,与上面一张不同。

 

OLTP场景为混合读写。记得早年看到另一位DBA专家朋友@jametone在微博上写道:存储的(小块)I/O中,读容易离散而写相对连续的时候多(印象中是这个意思)。一方面数据库Cache有合并作用,此外日志文件也是顺序写。

 

由于这里的事物比前面复杂,64并发测试的延时不到10ms128并发为15ms左右,都在可以接受的范围内。

 

以上测试MySQL Cache大小设置为14GB,如果将其上调则缓存命中率提高,测试数据还能更好一些,但Optane P4800XP3700的差距也会更加不明显。

 

调低Cache命中率,压到SSD上现差距

 

我们知道数据库的Cache命中率取决于2个因素:内存Cache容量和库文件(数据集)大小。为了体验Cache命中率较低时的情况,我们此次选择不改变数据量,而是把bufferpool调整为1GB

 


当数据库Cache减小为1GB之后,OLTP场景的QPS数值有所下降,而两块SSD卡也拉开了差距。在64并发下P3700的平均延时已经超过20ms,此时OptaneP4800X还不到10ms。下面是1小时的压测曲线:

 


注:蓝色和橙色曲线分别为Intel Optane P4800X3D XPoint Memory)和P3700NAND闪存),此时数据库缓存命中率较低,压力能够反映到SSD上,所以差距比较大。

 

Insert场景:Optane写稳定性更好

 


在数据库缓存命中率较低时,insert插入测试的差别也更明显了,Optane P4800XQPS较为稳定,而P3700则有较大幅度跌落的时候(与《Intel Optane P4800X评测(1):好钢如何用在刀刃上?》一文中的结果接近)。虽然主要的瓶颈在数据库,但Optane还是能够改善性能稳定性。

 

注:Intel SSDP3700DWPD5年平均每天整盘随机写遍数)高达17,在传统NAND闪存SSD中属于寿命高、写性能稳定的代表之一。

 

官方测试对比思考:环境、评估标准不同

 


上图来自我在开头提到那篇Intel网站上的文章,这里也是对比的OLTP工作负载,为什么结论与我们的测试有些不同呢?下面我来解释一下:

 

1、  首先,Intel这一测试使用了与OptaneSSD容量相对接近的400GB P3700,从下表中可以看出其写入性能与1.6TB2TB大容量点差距较大,由于这个Optane P4800X显得“更快”。而我们的测试则主动选择了P3700 2TB,因为更想看到Optane与旗舰闪存卡之间的比较。

 

价格上,大家都知道3D XPoint Memory单位容量比较贵吧,不过要是拿P3700 2TBP4800X 375GB比就应该在同一级别了。

 

这个表格我在《Intel发布P4500P4600 NVMe SSD:规格释疑》一文中列出过

 

根据常识SSD的写性能和寿命与容量有关,Intel新一代的P4600虽然写速度更快些,但由于其3DTLC闪存的寿命没有P3700高,所以写耐久度不在一个级别。目前第一代3D XPoint介质已经达到了30 DWPD,而且Optene P4800X只用375GB就达到了50万稳态随机写IOPS

 

2、  Intel这个10倍差距,比较的是99% QoS延时在10ms左右的TPS性能。这比人们通常对比的平均延时和95% QoS要求更加苛刻。而早在《再谈3D XPoint:延时、QoS与队列深度》一文中我就提到QoS延时是OptaneP4800X的一大优势。

 

3、  Intel的测试平台使用了2Intel Xeon E5 2699 v4 CPU,主频2.2GHz一共44核心;比我们用的4Xeon E5-4610v4 1.8G(共40核)性能要高一些,有助于缓解CPU在数据库测试中的瓶颈。当然这不是PowerEdgeR830服务器平台的不足,如果我能用E5-4669 v4之类的CPU测,估计又是另外一番风景了。

 

总结

 

与之前Oracle测试中的情况类似,MySQL SysBench也是在数据库Cache命中率调低后,才能将SSD存储的差距放大。正如尚刚所说,如今瓶颈更多在于CPU和软件本身,“软件的适配还跟不上硬件的发展”。

 

上文中还提到了QoS延时,顺便我也做个预告:系列评测的下一篇除了SDPK之外,还会让P4800XP3700QoS延时同场竞技。请大家继续关注!

 

特邀作者/测试专家介绍

 

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

 

参考资料 https://itpeernetwork.intel.com/applying-intel-optane-ssds-to-mysql-part-1-fast-storage/

你可能感兴趣的:(MySQL的启示:Intel Optane P4800X评测(4))