有没有简单的方法,判断 IO 延迟对 MySQL 性能的影响大小

实验

我们找一台 IO 比较差的虚拟机,如果找不到,那么你确实很有钱。

依旧宽油起一个 MySQL 实例:

先用 sysbench 准备一张表:

然后测一下性能

记得多跑几次预热,此处只取最后一次的结果

运行压力时,同时取一下 iostat:

我们发现磁盘 IO 并没有饱和,那么磁盘 IO 的正常延迟, 会对这组 MySQL 的性能造成多大影响呢?

我们来用内存模拟一下磁盘,使用以下命令:

我们停下数据库,将数据目录移到模拟磁盘里

再来跑一下性能测试,使用的 sysbench 命令与刚才相同, 看一下结果:

我们看到性能提高了四倍,我们可以拿着这组数据申请更换磁盘了

我们再来比一下 select 压力:

使用物理磁盘的 select :

使用内存模拟磁盘的 select :

可以看到,对于这组 select 压力,更换磁盘是没有太大用处的,需要使用其他的优化手段


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!


avatar
100
  Subscribe  
提醒