複数のプロセスが割り込み不可能なスリープステータスでスタックしています。すべてのプロセスはauplink /var/lib/docker/aufs/mnt
。それは何かDockerに関連していて、決して完了しないI/Oを待っています-私はそれを得ますが、正確な原因をどのように判断しますか?待機しているI/Oを知るにはどうすればよいですか?また、ハードリブートなしでこれらのスタックしたプロセスをなくす方法は本当にありませんか?
あなたはプロセスのスタックを見ることができます:
cat /proc/<process pid>/stack
d-stateになったときに何をしていたかについての情報を提供します。
echo w > /proc/sysrq-trigger; dmesg
カーネルに、dmesgバッファー内のD状態プロセスのすべてのスタックトレースを報告するように指示します。
D状態のプロセスは強制終了できません。プロセスが長期間D状態のままであるが、ときどきI/Oが終了し、短時間中断され、その後同じI/Oアクティビティに戻って、再びD状態になる状況があります。次に
while (true); do kill -9 PID; done
プロセスが中断されている間、KILLシグナルを送信する可能性はほとんどありません。