スレッドプロファイリング機能は、スレッドレベルでのCPU時間消費量とタイプごとのスレッド数の統計情報を提供します。ARMSは、スレッドのメソッドスタックを5分ごとに記録および集計します。これにより、コード実行プロセスを確認し、スレッドの問題を特定できます。クラスタのCPU使用率が高い場合、または多数の低速メソッドが検出された場合、スレッドプロファイリング機能を使用して、最も多くのCPUリソースを消費するスレッドまたはメソッドを特定できます。
前提条件
アプリケーションモニタリングは、新しい請求モードを有効にしているユーザー向けに新しいアプリケーション詳細ページを提供します。詳細については、請求(新規)を参照してください。
新しい請求モードを有効にしていない場合は、アプリケーション一覧ページで新バージョンに切り替えをクリックして、新しいアプリケーション詳細ページを表示できます。
アプリケーションにはARMSエージェントがインストールされています。詳細については、アプリケーションモニタリングの概要を参照してください。
手順
ARMS console にログインします。左側のナビゲーションペインで、 を選択します。
アプリケーション一覧ページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。
説明言語列に表示されるアイコンは、アプリケーションが記述されている言語を示します。
:Javaアプリケーション
:Goアプリケーション
:Pythonアプリケーションハイフン(-):Managed Service for OpenTelemetry で監視されているアプリケーション。
上部のナビゲーションバーで、 を選択します。
スレッドプロファイリングの実行
スレッドプロファイリングページの左側に、アプリケーションのすべてのスレッドが一覧表示されます。CPU時間消費量(ミリ秒)セクションの統計に基づいて、異常なスレッドを検出できます。異常なスレッドを選択し、CPU時間消費量(ミリ秒)とスレッド数のグラフの変化を分析します。たとえば、1分あたりのスレッドの総数が過剰かどうかを分析できます。

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

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

メソッドスタックをクリックしてもデータが表示されない場合は、次の手順を実行して問題をトラブルシューティングします。
ARMSエージェントのバージョンが2.7.3.5より前の場合は、アプリケーション詳細ページの左側のナビゲーションペインでをクリックします。表示されるページで、カスタム設定タブをクリックし、スレッド設定セクションのスレッドプロファイリングメソッドスタックがオンになっているかどうかを確認します。スイッチがオフになっている場合、メソッドスタック情報は記録されません。スイッチがオンになっている場合、メソッドスタック情報は5分ごとに収集されます。
ARMSエージェントのバージョンが2.7.3.5以降の場合は、アプリケーション詳細ページの左側のナビゲーションペインでをクリックします。表示されるページで、カスタム設定タブをクリックし、継続的プロファイリングセクションのメインスイッチとCPUホットスポットがオンになっているかどうかを確認します。スイッチがオフになっている場合、メソッドスタック情報は記録されません。スイッチがオフになっている場合、メソッドスタック情報は記録されません。