process-stuck

进程卡死与 D 状态的排查

现象

服务无响应,进程处于 D(不可中断睡眠),kill -9 也无法立即终止。常见于磁盘、NFS 或内核路径卡住。

快速定位

ps -eo state,pid,ppid,wchan:32,comm | awk '$1 == "D"'
cat /proc/<pid>/stack
cat /proc/<pid>/wchan
vmstat 1 5
iostat -x 1 5
dmesg -T | grep -i -E 'hung_task|blocked for more than'

常见根因

  1. 磁盘或云盘 I/O 卡住,进程等待块设备返回。
  2. NFS/网络存储超时,挂载点不可用。
  3. 内存回收或页分配阻塞。
  4. 内核锁竞争、驱动 bug 或文件系统损坏。
  5. 容器运行时或存储插件异常。

修复

相关命令