Using Glowroot with Liferay
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Glowroot による JVM の問題のトラブルシューティング

Liferay DXP 2023.Q4+/ポータル GA100+

Glowroot は、システムの問題を迅速に特定するためのダッシュボードを表示します。 追跡されたエラーのリストを表示するには、 エラー タブをクリックします。 以下のトピックでは、発生する可能性のある一般的な Java 環境の問題と、それらの問題を解決するために Glowroot を使用する方法に関するヒントを紹介します。

Javaデッドロック

別のスレッドがリソースを使用しているために複数のスレッドを処理できない場合にデッドロックが発生します。 アプリケーションの動作が遅くなったり、応答しなくなったりする可能性があります。

デッドロックが疑われる場合は、Glowroot の JVM タブをクリックします。 左側のナビゲーション メニューで スレッド ダンプ をクリックします。 出力を分析してデッドロックを見つけます。

JVM タブをクリックし、スレッド ダンプを選択します。

スレッドリーク

スレッド リークは、多数の新しいスレッドが作成されたものの、それらのスレッドが適切に管理されず、不要になったときに閉じられた場合に発生します。 時間が経つにつれて、これらのスレッドはシステム リソースを過剰に消費し、パフォーマンスに影響を及ぼす可能性があります。

スレッド リークが疑われる場合、考えられる指標は java.lang.OutOfMemory エラーです。 Glowroot の エラー タブをクリックし、エラーがないか確認します。 実行中のすべてのスレッドのリストを表示するには、MBean ツリーを使用します。 JVM タブをクリックし、左側のナビゲーションで Mbean ツリー をクリックします。 java.lang セクションまで下にスクロールし、 スレッドをクリックします。

JVM タブをクリックし、Mbean ツリーを選択します。

データベースのデッドロック

データベースのデッドロックは、2 つ以上のプロセスまたはトランザクションが相互にリソースの解放を待機しているときに発生します。

Glowroot でトランザクションのトレースをチェックして、遅いトランザクションがないか確認します。 取引 タブをクリックします。 トランザクション パネルの下で、 スロー トレースをクリックします。 チャートを使用して、時間がかかりすぎるトランザクションを見つけ、デッドロックの可能性を特定します。

時間のかかるトランザクションを表示するには、遅いトレースをクリックします。

データベース接続プールの問題

データベース接続リークは、プログラムまたはアプリケーションが、データベース接続が不要になった後に適切に解放または閉じることができなかった場合に発生します。 これにより、利用可能なデータベース接続が枯渇し、システムの速度が低下する可能性があります。

Glowroot で、 エラー タブをクリックして、接続プールのタイムアウト エラーを確認するか、データベース接続の状態を確認します。 JVM タブをクリックし、左側のナビゲーションで Mbean ツリー をクリックします。 com.zaxxer.hikari セクションまで下にスクロールし、 プール (HikariPool-1)をクリックします。 アクティブな接続と接続を待機しているスレッドの数を確認します。 ユースケースに応じてプール サイズを増やす必要がある場合があります。

Hikari 接続プールをゲージ ダッシュボードに追加するには、 構成ゲージに移動します。 新規追加 をクリックし、 com.zaxxer.hikari:type=Pool (HikariPool-1)を検索します。 すべての Mbean 属性を選択し、 [追加]をクリックします。

ゲージ ダッシュボードに Hikari 接続プールを追加します。

JVM タブをクリックし、左側のメニューで ゲージ をクリックします。 ゲージ ダッシュボードで Hikari 接続プールを監視できるようになりました。