MySQL服务器的SSD性能问题分析和测试详解
数据库  /  管理员 发布于 6年前   288
【问题】
我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试。
【工具】
blktrace是linux下用来排查IO性能的工具。它可以记录IO经历的各个步骤,并计算出IO请求在各个阶段的消耗,下面是关键的一些步骤:
Q2G C 生成IO请求所消耗的时间,包括remap和split的时间;
G2I C IO请求进入IO Scheduler所消耗的时间,包括merge的时间;
I2D C IO请求在IO Scheduler中等待的时间;
D2C C IO请求在driver和硬件上所消耗的时间;
Q2C C 整个IO请求所消耗的时间(G2I + I2D + D2C = Q2C),相当于iostat的await。
其中D2C可以作为硬件性能的指标,I2D可以作为IO Scheduler性能的指标。
【测试一、比较HP SSD Smart Path开启前后SSD的写入性能】
1、HP SSD Smart Path开启,SSD控制器Caching关闭,Cache Ratio: 100% Read / 0% Write
测试结果如下,主要关注D2C(IO请求在SSD上消耗的时间)的AVG值,约为0.217ms
2、HP SSD Smart Path关闭,SSD控制器Caching开启,Cache Ratio: 10% Read / 90% Write
测试结果如下,主要关注D2C(IO请求在SSD上消耗的时间)的AVG值,约为0.0906ms
【结论】
前者在硬件上的消耗时间是后者的约2.4倍,对于写入为主的系统,建议HP SSD Smart Path关闭,SSD控制器Caching开启
【测试二、比较noop和deadline两种I/O调度算法的性能】
目前磁盘的调度算法有如下四种,我们系统中的配置值为deadline,很多资料上建议SSD配置为noop
1、Anticipatory,适用于个人PC,单磁盘系统;
2、CFQ(Complete Fair Queuing),默认的IO调度算法,完全公平的排队调度算法
3、Deadline,按照截止期限来循环在各个IO队列中进行调度
4、noop,简单的FIFO队列进行调度
下面都在HP SSD Smart Path关闭的情况下测试,
1、deadline, 主要关注G2I和I2D
2、修改为noop
【结论】
noop的IO Scheduler在等待和消耗的时间比deadline稍好,但差异不是很大。如果需要评估,还需要进一步详细的在各个场景下的测试。
下图是网上资料对不同调度算法的测试比较:
【测试三、比较这台服务器SSD与相同配置SSD的消耗时间】
AVG D2C为0.0906ms,0.0934ms,差异不大,说明这台服务器的SSD从响应时间上正常
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号