首页/系统/Linux 运维命令速查/场景:磁盘 IO 慢怎么定位
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条
性能与监控48 条
定时任务与计划50 条

场景:磁盘 IO 慢怎么定位

应用变慢怀疑磁盘:从设备利用率到进程归因,再到文件级热点,四级下钻。

Linux 运维命令速查系统更新于 2026-10-12
场景磁盘延迟高/吞吐下降
目标定位设备与进程级 IO 瓶颈
工具链iostat → iotop → pidstat -d → lsof/fuser

第 1 步:设备层

第 1 步:设备层
iostat -xz 1 5

第 2 步:进程层

第 2 步:进程层
iotop -oPa -b -n 2 | head -n 25
pidstat -d 1 3 | tail -n +3 | sort -k5 -rn | head

第 3 步:文件与调用栈

第 3 步:文件与调用栈
lsof +D /data 2>/dev/null | head
# 进一步用 strace 看读写调用:
trace=read,write strace -p <pid> -c 2>/dev/null || true

第 4 步:确认是否页缓存命中

第 4 步:确认是否页缓存命中
grep -E 'Cached|Dirty|Writeback' /proc/meminfo
# vmstat 的 bi/bo 才是真实块层活动
vmstat 1 3
iostat 看设备、iotop/pidstat 看进程、strace/perf 看调用;层别对了再谈优化(缓存、队列深度、文件系统参数)。

易错点

  • 把 %util 100% 当唯一结论:小 IO 高频也可能打满,但先看 await 是否灾难级
  • 数据库类应用自带缓存,块层指标平淡而业务慢可能卡在锁或网络,别死磕磁盘

数据来源与参考

  • man 1 iostat
  • man 1 pidstat
  • man 8 iotop

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌