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

Application Real-Time Monitoring Service:Java アプリケーションの継続的プロファイリング

最終更新日:Apr 10, 2026

継続的プロファイリングは、CPU、メモリ、I/O の高い使用量に起因する Java アプリケーションのパフォーマンスボトルネックを特定するのに役立ちます。メソッド名、クラス名、行番号で分類された詳細な統計情報を提供します。このデータにより、コードを最適化し、レイテンシーを削減し、スループットを向上させ、コストを節約できます。このトピックでは、ARMS で継続的プロファイリングを有効にし、収集されたデータを表示する方法について説明します。

重要

ARMS アプリケーションモニタリングは、新しい課金モデルを有効にしているユーザー向けに、新しいモニタリング詳細ページを提供します。新しい課金モデルの詳細については、「製品の課金 (新規)」をご参照ください。

古い課金プランをご利用の場合、[アプリケーションリスト] ページで [新バージョンに切り替え] をクリックすることで、新しいモニタリング詳細ページに切り替えることができます。

パフォーマンステストによると、一般的な Spring Web アプリケーションで継続的プロファイリングを完全に有効にすると、約 5% の CPU オーバーヘッドと 50 MB のオフヒープメモリオーバーヘッドが発生します。ガベージコレクション (GC) とリクエストレイテンシーへの影響はごくわずかです。詳細については、「Java エージェント 4.x の継続的プロファイリングパフォーマンステストレポート」をご参照ください。

前提条件

重要
  • 継続的プロファイリング機能は、Expert Edition および観測可能なデータ量に基づく新しい課金モデルでのみ利用可能です。Expert Edition にアップグレードするには、「従量課金」をご参照ください。新しい課金モデルに切り替えるには、「課金方法の変更」をご参照ください。

  • プロファイリングデータは最大 7 日間保存されます。

  • ご利用のアプリケーションを ARMS アプリケーションモニタリングに接続し、エージェントをバージョン 2.7.3.5 以降にアップグレード済みであること。手順については、「アプリケーションをアプリケーションモニタリングに接続」および「ARMS エージェントのアップグレード」をご参照ください。

  • ご利用のアプリケーションが、Alibaba Cloud Object Storage Service (OSS) バケットへのアクセスを制限するポリシーを持つ VPC にデプロイされている場合は、そのポリシーを更新する必要があります。継続的プロファイリングは、データを専用の ARMS OSS バケットにアップロードして保存および処理します。データ収集を確実に行うために、ARMS プロファイリングバケット (arms-profiling-<regionId>) をポリシーの許可リストに追加してください。<regionId> は、アプリケーションがデプロイされているリージョンの ID に置き換えてください。たとえば、アプリケーションが中国 (杭州) リージョンにある場合、バケット名は arms-profiling-cn-hangzhou です。

  • 継続的プロファイリングは現在、OpenJDK と Oracle JDK のみをサポートしています。IBM OpenJ9 や Oracle GraalVM JDK はサポートしていません。

制限事項

オペレーティングシステムのカーネル

Linux カーネル 2.6.32-431.23.3.el6.x86_64 以降。

説明

現在のカーネルバージョンを確認するには、uname -r コマンドを実行します。

JDK バージョン

ARMS の継続的プロファイリング機能は、Java 仮想マシンツールインターフェイス (JVM TI) を使用してアプリケーションのメソッドスタックを取得し、ランタイムの CPU およびメモリ使用量の詳細を提供します。JVM TI には既知のクラッシュの問題があり、アプリケーションの障害を引き起こす可能性があります。この問題は、OpenJDK 8u352、11.0.17、17.0.5、および Oracle JDK 11.0.21、17.0.9 で修正されています。ARMS チームのテストでは、この問題はまれであり、特定のシナリオでのみトリガーされることが示されていますが、古い JDK バージョンを使用すると安定性のリスクが生じます。ARMS は、サポートされていない JDK バージョンで継続的プロファイリングを有効にすることを妨げません。一時的にこの機能を有効にし、IP ホワイトリストを使用してその範囲を制限することができます。ただし、アプリケーションの安定性のために、JDK をサポートされているバージョンにアップグレードすることを強く推奨します。古い JDK バージョンで継続的プロファイリングを使用すると、アプリケーションがクラッシュする可能性があります。

継続的プロファイリングには、JDK のデバッグシンボルが必要です。サイズを最適化するために、Alpine ベースイメージではこれらのデバッグシンボルが削除されていることが多く、これにより機能が正しく動作しなくなる可能性があります。この機能を使用するには、Alpine 以外のベースイメージを使用することを推奨します。

推奨 JDK バージョン:

JDK タイプ

バージョン

OpenJDK

  • OpenJDK 8u352+

  • OpenJDK 11.0.17+

  • OpenJDK 17.0.5+

Oracle JDK

  • Oracle JDK 11.0.21+

  • Oracle JDK 17.0.9+

継続的プロファイリングの有効化

  1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、アプリケーションモニタリング > アプリケーションリスト を選択します。

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

    説明

    [言語] 列のアイコンは、次のとおりです。

    Java图标:アプリケーションモニタリングに接続された Java アプリケーション。

    image:アプリケーションモニタリングに接続された Go アプリケーション。

    image:アプリケーションモニタリングに接続された Python アプリケーション。

    -Trace Explorer に接続されたアプリケーション。

  3. 上部のナビゲーションバーで、設定 > カスタム設定 を選択します。

  4. [継続的プロファイリング] セクションで、メインスイッチをオンにし、[IP ホワイトリスト] または [IP 範囲] を設定します。

  5. [保存]をクリックします。

継続的プロファイリングデータの表示

  1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、アプリケーションモニタリング > アプリケーションリスト を選択します。

  2. [アプリケーション一覧] ページで、トップナビゲーションバーからリージョンを選択し、アプリケーション名をクリックします。

    説明

    [言語] 列のアイコンは、次のとおりです。

    Java图标:アプリケーションモニタリングに接続された Java アプリケーション。

    image:アプリケーションモニタリングに接続された Go アプリケーション。

    image:アプリケーションモニタリングに接続された Python アプリケーション。

    -Trace Explorer に接続されたアプリケーション。

  3. 上部のナビゲーションバーで、アプリケーション診断 > 継続的プロファイリング を選択します。

  4. 左側のインスタンスリストでインスタンスを選択します。次に、右側のペインで時間範囲を指定します。

  5. [クエリ] タブでは、データをフィルターして、集計分析を表示できます。

    数据展示

    1. [時間ウィンドウサイズ] エリア (セクション ①) で、スナップショットの持続時間を選択し、チャート上でポインターをドラッグして時間範囲を選択します。

    2. セクション ② のドロップダウンリストから、データ型 (CPU、JVM ヒープ、または JVM GC) を選択します。

    3. セクション ③ では、選択した時間範囲内のスナップショットのリストが表示されます。スナップショットの詳細を表示するには、右上隅にある[集計分析]をクリックします。

      図 1. パフォーマンス分析性能分析

      • Self 列には、子メソッドを除いた、メソッド自体が消費した時間またはリソースが表示されます。これは、大量のリソースを消費するメソッドを特定するのに役立ちます。

      • Total 列には、メソッドとその子メソッドが消費した時間またはリソースが表示されます。これは、呼び出しスタックの全体的な実行時間またはリソース使用量に最も寄与するメソッドを理解するのに役立ちます。

      特定のコードホットスポットを特定するには、Self 列に注目するか、右側のフレームグラフの下部にある幅の広いフレームを調べます。幅の広いフレームは、高いリソース消費の根本原因を示しており、多くの場合、システムのパフォーマンスボトルネックを示しています。

      図 2. メトリックリスト指标列表

      図 3. スナップショットリスト快照列表

関連ドキュメント

継続的プロファイリングを使用して高い CPU およびメモリ使用率をトラブルシューティングする手順については、次のトピックをご参照ください:

継続的プロファイリングに関する一般的な問題については、「よくある質問」をご参照ください。