前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如果模拟磁盘IO慢的场景?

如果模拟磁盘IO慢的场景?

作者头像
bisal
发布2023-10-25 15:21:56
2060
发布2023-10-25 15:21:56
举报

磁盘IO问题可能是运维过程中比较常见的一个场景,技术社群的这篇文章《第02问:怎么模仿磁盘 IO 慢的情况?》给我们讲解了通过一些技术手段模拟磁盘IO慢的操作,借鉴学习一下。

问题:

怎么模仿磁盘 IO 慢的情况?

实验:

1. 创建延迟的磁盘

用 dd 创造一片 100M 的文件,

2035ee69b6af00aa13d634ff46a9e487.jpeg
2035ee69b6af00aa13d634ff46a9e487.jpeg

将创建的文件用 losetup 虚拟成块设备 /dev/loop3,

af6df4b108dc9aa3b986d1b41f3708c7.png
af6df4b108dc9aa3b986d1b41f3708c7.png

将块设备 /dev/loop3 映射成带延迟的设备(对于读操作和写操作都延迟 100ms),

cf30d964bdcf439da1325e3b16a9030c.png
cf30d964bdcf439da1325e3b16a9030c.png

2. 用 MySQL 进行实验 

将磁盘格式化,并载入,

9c4bd6153fcf5689b4ac08c107269ff2.jpeg
9c4bd6153fcf5689b4ac08c107269ff2.jpeg

用 dbdeployer 安装 MySQL,将 binlog 的位置设置到 /mnt/slow,开启双 1 刷盘参数,

f674793739220e4bbce8c4aceb743f7f.jpeg
f674793739220e4bbce8c4aceb743f7f.jpeg

用 mysqlslap 进行压力测试,

2d3a1d4fada1c1484748de51c89e65b0.jpeg
2d3a1d4fada1c1484748de51c89e65b0.jpeg

通过 iostat 可以观察到 binlog 所在的块设备 IO 发生饱和,

1. dm-0 (/dev/mapper/dm-slow) 设备的 IO 出现了排队(aqu-sz),使用率饱和。

2. loop3 是 dm-0 背后的块设备,其 IO 还有充足的能力,可证明 dm-0 带有 IO 延迟。

3a8aaa1d2574fa9f67f1e32d4e2d4a17.jpeg
3a8aaa1d2574fa9f67f1e32d4e2d4a17.jpeg

通过 pt-ioprofile 观察 MySQL 的 IO 消耗时间,可以看到花费在 binlog IO 上的时间远大于其他消耗,

b7a691019c639c19ac071c96ae59da2b.jpeg
b7a691019c639c19ac071c96ae59da2b.jpeg

因此:

我们制造了一个慢 IO 的设备,将 MySQL binlog 放在其中,制造了 binlog IO 慢的场景。

有了这个手段,之后我们可以分析 MySQL 在局部文件 IO 慢时,哪些状态量会发生变化,以及 MySQL 会发生什么行为。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档