web-dev-qa-db-ja.com

javaは100%CPUを使用するため、停止できません

私はJavaプロセスが

  1. リースなしで開始(Javaアプリケーションを実行しないでください)および
  2. しばらくするとCPUを100%使用します(AMD Phenom II X4)

私はgnomeシステムモニターでそれを殺します。数秒後、CPUの100%を再び使用してプロセスが再び表示されます(ステータス:スリープ)。

私もその事実にいらいらしています

$ jobs

何も返しません。やってみます

Sudo jobs

楽しみのために、メッセージを受け取った

須藤:ジョブ:コマンドが見つかりません

もちろん、ジョブはインストールされます。

ソフトウェアセンターからOpenJDK Java 6 Runtimeをインストールしました。

どうやって

  • javaを使用するプログラムがまだ実行されているかどうかを調べます
  • プロセスがそれほど多くのCPUを使用する理由
2
32bitfloat

jobsは、現在のシェルが所有するプロセスのみを表示します(これはシェルの組み込み関数です。そのため、実行可能プログラムのみを実行するSudoでは実行できません)。通常、バックグラウンドで起動しない限り、何も表示されません。 help jobsを参照してください。

以下で実行されている他のJavaプロセスがあるかどうかを確認できます。

ps aux | grep Java

これは、grepを含む、コマンドライン実行で文字列「Java」を含む実行中のプロセスを検索します。必要に応じて、ps aux | grep Java | grep -v grepを使用してgrepを削除できます。

また、プロセスが大量のCPUを消費している場合は、通常、topプログラムを使用してそれを見つけることができます。 P %CPUで注文するには:

top showing a CPU intensive process

使用することもできます M メモリ使用量でソートし、キーを使用する < そして > ソートに使用される現在のフィールドを変更します。

さて、WHYプロセスが多くのCPUを使用しているのは、一般的な方法で答えるのは本当に難しい質問です。それは有用なことをしているかもしれませんし、無限ループに留まっているかもしれません。通常はソースコードを読むだけでどれを見つけることができます。ブラウザでJavaプラグインを実行するJava JREを検討する場合、そのCPU負荷は実行しているプログラムの性質に大きく依存します。

2
elias