disk-io-high

磁盘 I/O 饱和的定位与修复

现象

应用变慢、负载升高,iostat 显示 %util 接近 100%、await 明显增大。可能是磁盘性能不足、异常 I/O 或硬件问题。

快速定位

iostat -x 1 5
iotop -oPa
pidstat -d 1 5
cat /proc/pressure/io
vmstat 1 5
dmesg -T | grep -i -E 'i/o error|timeout|reset'
df -h

常见根因

  1. 日志刷盘、数据库 checkpoint、备份/同步任务集中执行。
  2. 大文件顺序读写或大量小文件随机 I/O。
  3. 磁盘 IOPS/吞吐达到云盘上限。
  4. 磁盘故障、坏道或文件系统碎片。
  5. swap 频繁换入换出,放大 I/O。

修复

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. iostat -x 中 %util 接近 100%、await 明显增大说明什么?
  2. 如何找到制造 I/O 的具体进程?
  3. 备份/同步任务导致 I/O 饱和,可以怎么处理?
答案
  1. 说明磁盘已饱和或性能不足,可能是异常 I/O 或硬件问题。还要结合业务和系统任务判断。
  2. 用 iotop -oPa 和 pidstat -d 1 5 找到具体进程。再区分业务、备份和系统任务。
  3. 错峰执行,并限制 ionice 或并发。云盘达到上限则扩容或升级类型,同时检查 dmesg 是否有 I/O error。