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

本文内容非商业用途可无需授权转载,请务必注明作者、微博ID:唐僧_huangliang,以便更好地与读者互动。

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

在这一系列评测中,从前面几篇已经可以全面了解使用3D XPoint Memory的Optane 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》,其中的测试数据还看上去还不错。那么我们自己的实测结果如何呢?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Insert场景:Optane写稳定性更好

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

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

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

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

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

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

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

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

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

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

总结

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

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

特邀作者/测试专家介绍

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

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

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

尊重知识,转载时请保留全文。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage

原文链接:https://mp.weixin.qq.com/s?__biz=MzAwODExNjI3NA==&mid=2649776162&idx=1&sn=e0b2f83ce26f2bb310c55bb797d25f2d&chksm=8377017fb40088692240e3f90bd1738b5cda02fb45ba345be5d43c9228b6e7f3894210fd9821#rd

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: