前言:
而今各位老铁们对“改善磁盘io性能”大致比较关注,大家都需要剖析一些“改善磁盘io性能”的相关文章。那么小编也在网上网罗了一些关于“改善磁盘io性能””的相关资讯,希望大家能喜欢,小伙伴们一起来了解一下吧!问题:
怎么模仿磁盘 IO 慢的情况?
实验:
1. 创建延迟的磁盘
用 dd 创造一片 100M 的文件
将创建的文件用 losetup 虚拟成块设备 /dev/loop3
将块设备 /dev/loop3 映射成带延迟的设备(对于读操作和写操作都延迟 100ms)
2. 用 MySQL 进行实验
将磁盘格式化,并载入
用 dbdeployer 安装 MySQL,将 binlog 的位置设置到 /mnt/slow,开启双 1 刷盘参数
用 mysqlslap 进行压力测试
通过 iostat 可以观察到 binlog 所在的块设备 IO 发生饱和:
1. dm-0 (/dev/mapper/dm-slow) 设备的 IO 出现了排队(aqu-sz),使用率饱和。
2. loop3 是 dm-0 背后的块设备,其 IO 还有充足的能力,可证明 dm-0 带有 IO 延迟。
通过 pt-ioprofile 观察 MySQL 的 IO 消耗时间,可以看到花费在 binlog IO 上的时间远大于其他消耗。
结果:
我们制造了一个慢 IO 的设备,将 MySQL binlog 放在其中,制造了 binlog IO 慢的场景。
有了这个手段,之后我们可以分析 MySQL 在局部文件 IO 慢时,哪些状态量会发生变化,以及 MySQL 会发生什么行为。
关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!
标签: #改善磁盘io性能