首页/安全/应急响应速查/高负载低 CPU:揪出 D 状态进程

高负载低 CPU:揪出 D 状态进程

负载飙高但 CPU 空闲,通常是进程阻塞在不可中断 IO(D 状态):先定位卡点进程,再查它在等什么设备。

应急响应速查安全更新于 2026-10-12
信号load average 高、CPU idle 高
定位ps 状态列为 D
原因磁盘/NFS/块设备 IO 阻塞
关联备份任务或木马大量读写

统计 D 状态并查看等待点

统计 D 状态并查看等待点
ps -eo state,pid,user,cmd | awk '$1 ~ /^D/' | head -n 20
cat /proc/1234/stack 2>/dev/null | head -n 10
cat /proc/1234/wchan; echo
/proc/<PID>/stack 需要 root 且内核支持;D 状态进程 kill -9 也杀不掉,先解决 IO 阻塞。

易错点

  • 对 D 状态进程反复 kill -9:杀不动还耽误时间
  • 把高负载全归因到 CPU:D 状态才是低 CPU 高负载的元凶

数据来源与参考

  • procps-ng ps(1) 手册
  • Linux 内核文档:进程状态

相关工具

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