3 台の tomcat サーバーで運用システムを実行しています。突然、Tomcat サーバーの 1 つが、プールから取り出した 100% の CPU 使用率を示しています。
この問題のデバッグを開始するにはどうすればよいですか? ツール/ユーティリティはありますか?
ありがとう、ハリッシュ
私が最初に試みることは、スレッド ダンプを取得して、何が実行されているかを確認することです。
この記事から:
Java スレッド ダンプの生成 スレッド ダンプは、SIGQUIT シグナルを JVM プロセスに送信することによって生成されます。このシグナルをプロセスに送信するには、さまざまな方法があります。
Unix では、pid が JVM のプロセス ID である「kill -3」を使用します。
Windows では、JVM が実行されているウィンドウで CTRL+BREAK を押します。
これにより、少なくともアプリケーション内のどのスレッドが実行されているかが表示され、何が起こっているかについての基本的な指標が得られます。jstackは、この情報を取得する別の手段を提供し、おそらくコンソールから切断されたサーバー プロセスにとってより簡単です。
VisualVMを使用してスレッド/CPU + メモリ使用量を報告することにより、より詳細なレポートを取得できます。
JTopを見てください。これは UNIX に似てtop
いますが、JVM 内のスレッド用です。