MySQL服务器的SSD性能问题分析和测试详解

 更新时间:2018年11月18日 15:03:11   作者:wangdong  
这篇文章主要给大家介绍了关于MySQL服务器的SSD性能问题分析和测试的相关资料,文中图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

【问题】

我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试。

【工具】

blktrace是linux下用来排查IO性能的工具。它可以记录IO经历的各个步骤,并计算出IO请求在各个阶段的消耗,下面是关键的一些步骤:

Q2G – 生成IO请求所消耗的时间,包括remap和split的时间;

G2I – IO请求进入IO Scheduler所消耗的时间,包括merge的时间;

I2D – IO请求在IO Scheduler中等待的时间;

D2C – IO请求在driver和硬件上所消耗的时间;

Q2C – 整个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从响应时间上正常

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Mysql 8.4.0 结合 Docker 搭建GTID主从复制及传统主从复制详解

    Mysql 8.4.0 结合 Docker 搭建GTID主从复制及传统主从复制详解

    这篇文章主要介绍了Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-06-06
  • MySQL命令提示符出现输入错误时如何修改前面的命令

    MySQL命令提示符出现输入错误时如何修改前面的命令

    本文主要介绍了MySQL命令提示符出现输入错误时如何修改前面的命令,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • mysql 8.0.12 安装图文教程

    mysql 8.0.12 安装图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.12 安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • MySQL中CONCAT和GROUP_CONCAT方法的区别详解

    MySQL中CONCAT和GROUP_CONCAT方法的区别详解

    本文主要介绍了MySQL中CONCAT和GROUP_CONCAT方法的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • mysql最新版8.0.17解压版安装教程

    mysql最新版8.0.17解压版安装教程

    这篇文章主要为大家详细介绍了最新版mysql 8.0.17 解压版安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • MySQL之浅谈DDL和DML

    MySQL之浅谈DDL和DML

    大家好,本篇文章主要讲的是MySQL之浅谈DDL和DML,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 详解关于MySQL 8.0走过的坑

    详解关于MySQL 8.0走过的坑

    这篇文章主要介绍了详解关于MySQL 8.0走过的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 浅谈mysql 系统用户最大文件打开数限制

    浅谈mysql 系统用户最大文件打开数限制

    这篇文章主要介绍了mysql 系统用户最大文件打开数限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • MySQL查询用户权限的方法总结

    MySQL查询用户权限的方法总结

    这篇文章主要介绍了MySQL查询用户权限的方法总结内容,需要的朋友们可以参考下。
    2020-03-03
  • Windows下MySql错误代码1045的解决方法

    Windows下MySql错误代码1045的解决方法

    这篇文章主要介绍了Windows下MySql错误代码1045的解决方法,文中还包含了2个Linux下的解决方法,需要的朋友可以参考下
    2014-06-06

最新评论