スレッドプロファイリング機能は、CPU 時間とスレッドタイプ別のスレッド数に関するスレッドレベルの統計を提供します。5 分ごとに各スレッドのメソッドスタックをキャプチャして集計することで、コード実行を正確に追跡し、スレッド関連の問題を迅速に特定するのに役立ちます。クラスターの CPU 使用率が高い場合や、低速なメソッドが多数存在する場合、スレッドプロファイリングを使用して、最も多くの CPU リソースを消費しているスレッドやメソッドを特定できます。
この機能は現在、Java アプリケーションでのみ利用可能です。
前提条件
アプリケーションモニタリングは、新しい課金プランを有効にしたユーザー向けに、新しいモニタリング詳細ページを提供します。新しい課金プランの詳細については、「製品の課金 (新規)」をご参照ください。
新しい課金プランを有効にしていない場合は、[アプリケーションリスト] ページで [新バージョンに切り替え] をクリックすることで、新しいモニタリング詳細ページに切り替えることができます。
アプリケーションにエージェントがインストールされている必要があります。詳細については、「アプリケーションモニタリングのアクセス概要」をご参照ください。
操作手順
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[アプリケーション一覧] ページの上部で リージョン を選択し、対象のアプリケーション名をクリックします。
説明[言語] 列のアイコンは、以下の意味があります。
: アプリケーションモニタリングに接続された Java アプリケーション。
: アプリケーションモニタリングに接続された Go アプリケーション。
: アプリケーションモニタリングに接続された Python アプリケーション。-: Trace Explorer for OpenTelemetry に接続されたアプリケーション。
上部のナビゲーションバーで、 を選択します。
スレッドの分析
[スレッドプロファイリング] ページの左側のリストには、アプリケーションのすべてのスレッドが表示されます。 [CPU 時間] 統計を使用して、異常なスレッドをすばやく特定できます。 異常なスレッドを選択すると、右側に [CPU 時間] および [スレッド数] チャートが表示されます。 これらのチャートは、トレンドを追跡し、1 分あたりのスレッド数が過剰であるかどうかを判断するのに役立ちます。

異常なスレッドの場合、[メソッドスタック] をクリックして、特定の時間枠内のメソッドスタックを表示することもできます。 たとえば、BLOCKED 状態のスレッドに対応するメソッドを調査できます。 これにより、特定のコードセグメントを最適化して CPU 使用率を削減できます。

エージェントバージョン 2.7.3.5 以降を使用している場合、ARMS は継続的プロファイリング機能を通じて、スレッドの CPU 使用量に関するより正確なメソッドスタック情報を提供します (次の図を参照)。詳細については、「継続的プロファイリング」をご参照ください。

[メソッドスタック] をクリックしてもデータが表示されない場合は、次のようにトラブルシューティングを行ってください。
2.7.3.5 より前のエージェント バージョンを使用している場合は、 タブに移動します。[スレッド設定] セクションで、[スレッドプロファイリングメソッドスタック] スイッチがオンになっているかどうかを確認します。このスイッチがオフの場合、メソッドスタック情報は記録できません。オンの場合、システムは 5 分ごとにメソッドスタック情報を収集します。
エージェントバージョン 2.7.3.5 以降を使用している場合は、 タブに移動します。[継続的プロファイリング] セクションで、[グローバルスイッチ] と [CPU ホットスポット] スイッチがオンになっているか確認してください。これらのスイッチがオフの場合、システムはメソッドスタック情報を記録できません。