これは今かなり奇妙です。 pid
を使用してプロセスを強制終了しようとしていますが、まったく機能しません。
root@machineA:/home/david# ps aux | grep modelling
david 5075 0.0 0.0 1285420 29404 ? Dl 21:05 0:01 /opt/modelling/bin/http
root 8730 0.0 0.0 8096 936 pts/4 S+ 22:43 0:00 grep --color=auto modelling
以下は私がプロセスを歪めている方法です。
root@machineA:/home/david# kill -9 5075
そして、もう一度ps
を実行するとします。再び同じ結果を見ることができます。
root@machineA:/home/david# ps aux | grep modelling
david 5075 0.0 0.0 1285420 29404 ? Dl 21:05 0:01 /opt/modelling/bin/http
root 9062 0.0 0.0 8100 936 pts/4 S+ 22:44 0:00 grep --color=auto modelling
誰かが何が起こっているのか知っていますか?これは以前は問題なく動作していましたが、数時間前に発生し始めましたが、何が問題なのかわかりませんか?
更新:-
私はトップをしました、そしてそれはD
ではなくZ
として表示されていますuninterruptible sleep
5075 david 20 0 1255m 28m 13m D 0 0.0 0:01.09 http
D State
プロセスを削除するには、プロセスが中断されないため、システムによって自動的に処理されない場合、マシンの再起動のみが問題を解決できます。 。
通常、プロセスが長い間D State
にとどまる可能性はほとんどありません。そして、それが発生した場合、システムで適切に処理されていないものがあります。これもバグの可能性があります。
以下は、プロセスのD State
についてのOpenVZからの抜粋です。
D状態が発生すると、プロセスは割り込み不可能なスリープ状態になります。 D状態のプロセスでは何もできないので、この状態は不良です。幸いなことに、プロセスは通常、それほど長くはそのような状態にありません。しかし、D状態のプロセスのヒープがある場合、システムの一部のロジックが中断されます。それが起こっている場合、非常に重要なことは、この不運な睡眠がどこで発生するかを判別することです。 lオプションを指定したpsコマンドで簡単に実行できます。 WCHAN列は、プロセスがスリープしているカーネル関数の名前を示しています。
# ps axl | awk '$10 ~ /D/'
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
vass 13478 7.2 0.0 1732 624 pts/1 D+ 17:36 0:00 find ./