l46*_*kok 3 linux docker ubuntu-16.04
我有几个进程停留在不间断的睡眠状态,似乎都源于auplink /var/lib/docker/aufs/mnt. 这是 docker 相关的东西,它正在等待一个永远不会完成的 I/O——我明白了,但我如何确定确切的原因?我怎么知道它在等待什么 I/O?另外,如果没有硬重启,真的没有办法让这些卡住的进程消失吗?
小智 5
你可以看到进程的堆栈:
cat /proc/<process pid>/stack
Run Code Online (Sandbox Code Playgroud)
它将为您提供有关它最终处于 D 状态时正在做什么的信息。
echo w > /proc/sysrq-trigger; dmesg
Run Code Online (Sandbox Code Playgroud)
将告诉内核报告 dmesg 缓冲区中 D 状态进程的所有堆栈跟踪。
D 状态的进程不能被杀死。在某些情况下,进程长时间处于 D 状态,但偶尔会完成 I/O 并且在短时间内可中断,然后返回到相同的 I/O 活动并再次以 D 状态结束。然后用
while (true); do kill -9 PID; done
Run Code Online (Sandbox Code Playgroud)
当进程可中断时,有一点机会传递 KILL 信号。
| 归档时间: |
|
| 查看次数: |
7694 次 |
| 最近记录: |