Ubuntu 10.04.3 LTSで一部のプロセスがD状態のままになる問題があります。
彼らは11月5日(今日は12月6日)からこの状態にあります。これらは、ハードディスクなどのハードウェアからのデータの待機に関連することが多い無停止のスリープ状態であることを理解しています。これは運用サーバーであるため、再起動は非常に最後の手段です。これらのプロセスがどのようなものであるかを明らかにすることはできますか?
これは、ps -aux
からのD状態アイテムの出力です
www-data 22851 0.0 0.0 0 0 ? D Nov05 0:00 [2637.64]
www-data 26306 0.0 0.0 4008 12 ? D Nov05 0:00 ./2.6.37
www-data 26373 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
www-data 26378 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
これはps axl | awk '$10 ~ /D/'
の出力で、もう少し情報があります。
0 33 22851 1 20 0 0 0 econet D ? 0:00 [2637.64]
1 33 26306 1 20 0 4008 12 ec_dev D ? 0:00 ./2.6.37
1 33 26373 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
1 33 26378 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
これらを殺す方法はありますか?再起動時にこの状態のプロセスがあると問題が発生しますか?
これは、プロセスの恐ろしい割り込み不可能な(TASK_UNINTERRUPTIBLE)状態です。これは、プロセスが待機を開始して完了するまで、シグナルに反応しない状態です。残念ながら、それは必要な悪です。 here およびhere 割り込み不可能なプロセスとは? を参照してください。
私の答えは、システムを再起動することです。
再起動は問題を引き起こしますか?
伝えるのは難しいですが、できないかもしれません。 D状態にあるプロセスは、再起動すると失敗する重要な更新を行う必要がある場合があります。
。
いいえ-それらを殺すことはできません、期間。 kill -9
も機能しません。そして、それはカーネルのバグではなく、設計によるものです。それらのプロセスがD状態を離れるまで、すべての信号はブロックされます。 D状態のままにするか、システムが再起動します。いいえ、再起動しても問題はありません。
この種の問題の通常の原因は、cdromなどのリムーバブルメディアデバイスです。デバイスに欠陥があるか、誰かがバカな方法を見つけた可能性があります。