こんにちは。CentOS 6 (64 ビット) サーバーの Java VM で非常に不可解な問題が発生しています。これは、クアッドコア CPU (ハイパースレッディング付き)、16 GB の RAM、および 2 TB のハード ドライブ容量 (ソフトウェア RAID1 上) を備えたサーバーです。FAQによると、開発者が使用する「共通ツール」に関する質問が適切であるため、ここで質問することにしました。うまくいけば、誰かがこの問題に光を当てることができます。
サーバー上で Java ソフトウェアを 1 日 24 時間実行しています。今日の初め (サーバーのロケールで真夜中の数時間後に検出されました。これは月の最初の日であるため注目に値します) このソフトウェアにクライアントとして接続しているユーザーから、突然使用できなくなったという報告を受けました。JVM は中断も再起動もされませんでした。最後に再起動されたのはほんの数日前で、それ以降は正常に動作していました (使用する CPU は約 5% 以下で、これは正常です)。
今回、プロセスを確認したところ、サーバー上で実行されている他のアプリケーションから処理できるすべての CPU 時間を本質的に飲み込んでいた (top によって報告されたように)、または 100% をはるかに超えていました (ps によって報告されたように)。アプリケーションを停止して再起動しようとしましたが、実行するとすぐに、CPU 使用率がすぐに再び 100% を超えました。メモリ使用量は正常です。さまざまな JVM フラグを試してみましたが、役に立ちませんでした。ソフトウェアの最新バージョンをダウンロードして、新規インストールを試みましたが、これも役に立ちませんでした。最後に、完全に異なる別の Java ソフトウェアをダウンロードしようとしましたが、それをサーバーで実行すると、同じ問題が発生しました。
ソフトウェアをダウンロードして自分のコンピューターで実行したところ、CPU 使用率は正常でした。したがって、サーバーで間違っていると思いますが、それが何であるか想像できません。サーバーの JVM は、標準のリポジトリ パッケージから最新のものです (カスタマイズはまったくありません)。
Java バージョンから:
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
uname -a から:
2.6.32-131.21.1.el6.x86_64 #1 SMP Tue Nov 22 19:48:09 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
centos-release/redhat-release/system-release から:
CentOS release 6.2 (Final)
free は 14.5GB の空き RAM について報告します。df は、/home パーティション (問題のソフトウェアとそのすべてのファイルが配置されている場所) に約 1.4 TB の空きディスク容量を報告します。
何か案は?さらにデータが必要な場合はお尋ねください。また、私が試用/確認するための手順を提案してください。問題を調べたところ、CentOS で JVM がすべての CPU を盗むことに問題を抱えている人が何人か見つかりましたが、いずれも私の問題と一致するようには見えませんでした。