すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:スレッドプロファイリングの使用

最終更新日:Dec 30, 2024

スレッドプロファイリング機能は、スレッドレベルでのCPU時間消費量とタイプごとのスレッド数の統計情報を提供します。ARMSは、5分ごとにスレッドのメソッドスタックを記録および集計します。これにより、コード実行プロセスを確認し、スレッドの問題を特定することができます。クラスタのCPU使用率が高い場合、または多数の低速メソッドが検出された場合、スレッドプロファイリング機能を使用して、最も多くのCPUリソースを消費するスレッドまたはメソッドを特定できます。

手順

  1. ARMS console にログインします。左側のナビゲーションペインで、アプリケーション監視 > アプリケーション一覧 を選択します。

  2. アプリケーション一覧ページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。

    説明

    言語列に表示されるアイコンは、アプリケーションが記述されている言語を示します。

    Java图标: Javaアプリケーション

    image: Goアプリケーション

    image: Pythonアプリケーション

    ハイフン(-):Managed Service for OpenTelemetryで監視されているアプリケーション。

  3. 左側のナビゲーションペインで、アプリケーション診断 > スレッドプロファイリング を選択します。

スレッドプロファイリングの実行

スレッドプロファイリングページには、アプリケーションのすべてのスレッドが左側に一覧表示されます。CPU時間消費量(ミリ秒)セクションの統計情報に基づいて、異常なスレッドを検出できます。異常なスレッドを選択し、CPU時間消費量(ミリ秒)スレッド数のグラフの変化を分析します。たとえば、1分あたりのスレッドの総数が過剰かどうかを分析できます。

pg_am_threads_profiling

メソッドスタックをクリックして、指定期間内に実行されているメソッドスタックを表示することもできます。たとえば、BLOCKED状態のスレッドのメソッドスタックを表示することで、指定されたコードブロックを最適化してCPU使用率を削減できます。

pg_am_method_stack

ARMSエージェントのバージョンが2.7.3.5以降の場合、継続的プロファイリング機能により、次の図に示すように、スレッドのメソッドスタックとCPU使用率に関するより正確な情報が提供されます。詳細については、CPUおよびメモリ診断機能の使用を参照してください。

image

説明

メソッドスタックをクリックしてもデータが表示されない場合は、次の手順を実行して問題をトラブルシューティングします。

  • ARMSエージェントのバージョンが2.7.3.5より前の場合は、アプリケーション詳細ページの左側のナビゲーションペインでアプリケーション設定をクリックします。表示されるページで、カスタム設定タブをクリックし、スレッド設定セクションのスレッドプロファイリングメソッドスタックがオンになっているかどうかを確認します。スイッチがオフの場合、メソッドスタック情報は記録されません。スイッチがオンの場合、メソッドスタック情報は5分ごとに収集されます。

  • ARMSエージェントのバージョンが2.7.3.5以降の場合は、アプリケーション詳細ページの左側のナビゲーションペインでアプリケーション設定をクリックします。表示されるページで、カスタム設定タブをクリックし、継続的プロファイリングセクションのメインスイッチCPUホットスポットがオンになっているかどうかを確認します。スイッチがオフの場合、メソッドスタック情報は記録されません。スイッチがオフの場合、メソッドスタック情報は記録されません。