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

liferay DXP 2023.Q4+/Portal 7.4 GA100+.

Glowrootは、システムの問題を素早く特定するためのダッシュボードを表示する。 Errors_タブをクリックすると、追跡されたエラーのリストが表示されます。 以下のトピックは、Java環境でよく遭遇する問題と、トラブルシューティングに役立つGlowrootの使い方のヒントです。

Javaデッドロック

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

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

Click the JVM tab and select thread dump.

糸漏れ

スレッド漏れは、多くの新しいスレッドが作成されたにもかかわらず、そのスレッドが適切に管理されず、不要になったときにクローズされない場合に発生する。 時間の経過とともに、これらのスレッドは多くのシステムリソースを消費し、パフォーマンスに影響を与える可能性がある。

スレッドリークが疑われる場合、java.lang.OutOfMemoryエラーが指標となる可能性がある。 Glowroot の Errors タブをクリックし、エラーがないか確認する。 実行中のすべてのスレッドのリストを見るにはMBeanツリーを使う。 JVM タブをクリックし、左ナビゲーションで Mbean tree をクリックする。 java.langセクションまでスクロールダウンし、 Threading_をクリックします。

Click the JVM tab and select the Mbean tree.

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

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

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

Click slow traces to see transactions that take a long time.

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

データベース接続の漏れは、プログラムやアプリケーションが、データベース接続が不要になった後、その接続を適切に解放またはクローズしなかった場合に発生する。 これは、利用可能なデータベース接続を枯渇させ、システムのスローダウンを引き起こす可能性がある。

Glowrootの Errors タブをクリックし、コネクションプールのタイムアウトエラーやデータベース接続のステータスを確認する。 JVM タブをクリックし、左ナビゲーションで Mbean tree_をクリックする。 com.zaxxer.hikariセクションまでスクロールダウンし、プール(HikariPool-1)をクリックします。 アクティブな接続数と接続待ちのスレッド数を見る。 ユースケースによっては、プールサイズを大きくする必要があるかもしれない。

ゲージダッシュボードに光接続プールを追加するには、 設定ゲージ に移動します。 新規追加 をクリックし、「com.zaxxer.hikari:type=Pool (HikariPool-1)`」を検索します。 全てのMbean属性を選択し、 Add_をクリックする。

Add the Hikari connection pool to the gauges dashboard.

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

Capabilities

Product

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy