使用iotop查看磁盘IO

使用iotop查看磁盘IO 新的问题谁在写呢用 iotop 定位写进程判断是否正常业务。1、iotop 是什么是基于 Python 编写的进程级 IO 监控工具数据来源于 Linux 内核的 taskstats 接口/proc//io delay accounting。核心定位 回答 “哪个进程/线程在读写磁盘读写多少卡了多久”。2、安装yuminstall-yiotop3、命令参数详解iotop[OPTIONS]4、直接执行iotop来看看输出截图是上文iostat分析磁盘问题后执行istop查看进程/线程读写磁盘。1顶部Total DISK READ/WRITE名称已过块设备层的实际流量统计时机数据真正落盘/出盘时包含内容所有进程 read_bytes/write_bytes 差分之和数值关系通常较小排查意义反映物理磁盘当前真实压力Actual DISK READ/WRITE名称包含页缓存的读写操作量统计时机数据进入/离开页缓存时包含内容内核 pgpgin/pgpgout pswpin/pswpout数值关系通常较大异步写场景下可大 10~100 倍排查意义反映应用层真实的读写意图核心判断Actual 远大于 Total → 大量脏页在内存排队内核 kworker即将爆发刷盘磁盘延迟即将飙升。2输出列详解3再回过头来看看例子中的输出分析Actual (25MB/s) 远大于 Total (0.85MB/s) → 说明大量写还在页缓存/缓冲区里尚未刷到物理盘一旦内核触发 writeback 刷脏页iostat 看到的爆发写洪峰就会到来对应之前截图里 wMB/s 9.85 的峰值纯写负载几乎零读 → 与 iostat 的 r/s0 完全吻合接着进行进程级逐行分析按 DISK WRITE 从高到低排列进行逐一分析不同业务系统效果不一样这里就不具体一一说明了。实施过程中可以偷懒命令输出结果扔给AI解读、分析这是AI的强项我们充分利用起来。面试就不能偷懒了需要知道怎么看结果得一一解答表明是真实做过的平时注意积累实战下最好。5、排查优先级与常见误区核心先看 DISK WRITE 抓谁在生产数据再看 IO 抓谁被数据卡住最后看 Actual - Total 差值判断炸弹还有多久爆炸。附录安装iotop