100%CPUを使用するゾンビプロセス


12

ゾンビプロセスの任意のリソース(RAMとCPU)を使用すべきではない、あるコア全体を占有私の8コア64ビットのUbuntu 11.10 Desktopインストールに。

これは次の出力ですps -el|grep Z

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 Z  1000 10317     1 99  80   0 -     0 exit   ?        19:27:15 java <defunct>

...そして、ここからの抜粋ですtop

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                
10317 deltik    20   0     0    0    0 Z  100  0.0   1170:17 java <defunct>
 1424 root      20   0  612m 193m 158m S   14  2.4 287:17.11 Xorg
12580 deltik    20   0  710m 135m  46m S    5  1.7  27:31.07 compiz

これが、ゾンビプロセスが存在するようになった方法です。

  1. minecraft.jarというJava JARを開きました。このランチャーは別のJARファイルを〜/ .minecraft / bin / minecraft.jarにダウンロードします
  2. そのJARは、コンピューターをでロックしたときに実行されていましたxscreensaver
  3. 次に、パスワードを入力してコンピューターのロックを解除すると、Minecraftウィンドウがフリーズしたことがわかりました。
  4. で殺してみました(PID 10317)gnome-system-monitor。ゾンビになりました。
  5. kill -9 10317 効果がなかった。
  6. xkill「Minecraft」というタイトルのウィンドウのみを閉じました。基礎となるjavaプロセスを閉じませんでした。

関連情報:

  • グラフィックスドライバはfglrxがあり、それはとの悪名高い問題引き起こしたユニティUbuntuの11.04Ubuntuの11.10時に高いCPUの使用を含む、Xorgとしcompiz

私は知りたいです:

  1. javaもしあれば、再起動せずにこのプロセスを破壊する方法はありますか?
  2. なぜこの問題が発生しているのですか?
  3. この問題が再び発生しないようにするにはどうすればよいですか?

1
個人的にあなたを助けることはできないのではないかと思いますが、何が起こったのか、今までに何が試されているのかを説明する良い仕事をしてくれたことを賞賛します!
-nhinkle

7
「ねえ、このアプリケーションは多くのCPU時間を消費しています。ところで、Javaで書かれています。この2つが関連しているかどうかわからないのですか?」
ta.speot.is

ほとんどの場合、ロックで回転しています。
ダニエルRヒックス


また、プレイ中に私に起こります、@ RedGrittyBrick Minecraftのjarを実行するゾンビjavaプロセスと、ゲーム内のゾンビは異なるものです。
フォーク

回答:


8

プロセスは既にに親に変更されているためinit、刈り取られるべきです(そうでなければ、解決策はおそらく親を殺すことです)。フィールドexitに基づいて、立ち往生しているようWCHANです。

それは実際に何かを行っている可能性があり(コアダンプの作成など)、終了し、単独で終了します。残念ながら、壊れたドライバーのためにカーネル内で回転している可能性があり、最終的には、再起動するしかありません。


この質問をしてからしばらく経ちましたが、特にFGLRXを最新バージョンに更新した後、問題を再現することができませんでした。壊れたドライバーを指摘し、最も包括的であるため、これを最良の回答として選択しました。
デルティック


4

ゾンビプロセスは死んでいますが、まだクリーンアップされていません(リープが正しい用語です)。 kill、通常のプロセスのように動作しません。プロセスはまだプロセステーブルにありますが、ゾンビの場合、リソースの割り当ては解除されています。

SIGCHLDプロセスの親にシグナルを送信してみてください。そうしないと、initはそれを取得して、最終的にそれを取得します。プロセスを高速化する場合は、単に再起動するだけです。


1

これはカーネルのバグです。ホームディレクトリを暗号化するためにecryptfsを使用していますか?launchpad.netにそれについて報告されたバグがあります。


いいえ、ホームディレクトリのファイルを手動で暗号化します。
-Deltik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.