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

Application Real-Time Monitoring Service:ARMS Agent for Java V5.x のパフォーマンステストレポート

最終更新日:Aug 04, 2026

Application Real-Time Monitoring Service (ARMS) エージェントは、実行時にバイトコードインスツルメンテーションを行い、アプリケーションのパフォーマンスを監視します。他のバイトコードインスツルメンテーションベースの監視ソリューションと同様に、ARMS Agent for Java はパフォーマンスオーバーヘッドをもたらします。このレポートでは、さまざまなトラフィックレベルのシナリオをシミュレートし、ARMS Agent for Java V5.x のパフォーマンスオーバーヘッドを測定します。アプリケーションをアプリケーションモニタリングに接続する前に、このレポートを参照してパフォーマンスへの影響を評価してください。

テストシナリオ

次の図は、全体的なアーキテクチャを示しています。

image

Java アプリケーションは Spring Web model-view-controller (MVC) で開発されており、Alibaba Cloud Performance Testing (PTS) から送信されたリクエストに基づいて、Druid および Jedis フレームワークを介して MySQL と Redis にアクセスします。

  • ${mall-gateway}/case/api/v1/mysql/execute リクエストを受信すると、アプリケーションは MySQL にアクセスします。このリクエストを受信するたびに、アプリケーションは MySQL に 1〜4 回アクセスします。

  • ${mall-gateway}/case/api/v1/redis/execute リクエストを受信すると、アプリケーションは Redis にアクセスします。このリクエストを受信するたびに、アプリケーションは Redis に 1〜10 回アクセスします。

テスト環境

  • 負荷テストのソースには、PTS を使用します。

  • Java アプリケーション、MySQL、および Redis はすべて、同じ Alibaba Cloud Container Service for Kubernetes (ACK) クラスターにデプロイされています。ノードのインスタンスタイプは ecs.u1-c1m2.8xlarge で、ノードのオペレーティングシステムバージョンは Alibaba Cloud Linux 2.1903 LTS 64 ビットです。

  • アプリケーションの各 Pod は、2 コア、4 GB のメモリ、および 2 つのレプリカを備えています。JVM パラメーターは次のとおりです:

    -Xms3500m -Xmx3500m -XX:MetaspaceSize=500m

  • ARMS Agent for Java のバージョンは Aliyun JavaAgent 5.1.2 です。

  • アプリケーションモニタリングの基本機能 (メトリック、トレース、クォンタイルなど) は有効です。すべてのプラグインも有効です。テスト中は、トレース圧縮、URL 収束、データマスキング、継続的プロファイリングなどの一部の高度な機能は無効です。

  • サンプルコード

操作手順

  1. 500、1,000、2,000 QPS で 3 回の負荷テストを実施します。各負荷テストは 1 時間継続します。各負荷テストの前に、100 QPS で 3 分間 Java アプリケーションをウォームアップします。このテスト結果を、ベースラインパフォーマンスメトリックとして使用します。

  2. ARMS Agent for Java V5.x をインストールします。サンプリングポリシーで 10% のサンプリングレートを設定し、ステップ 1 の負荷テストを繰り返して、Java アプリケーションの CPU オーバーヘッド、メモリオーバーヘッド、レスポンスタイムの違いを比較します。

  3. ARMS Agent for Java V5.x をインストールします。サンプリングポリシーで 100% のサンプリングレートを設定し、ステップ 1 の負荷テストを繰り返して、Java アプリケーションの CPU オーバーヘッド、メモリオーバーヘッド、レスポンスタイムの違いを比較します。

説明
  • サンプリングポリシーの設定方法の詳細については、「3.2.8 より前のエージェントのトレースサンプリングモード」をご参照ください。

  • ARMS アプリケーションモニタリングの基本機能 (統計メトリック、トレース、クォンタイルなど) とすべてのプラグイン機能は有効です。ただし、トレース圧縮、URL 収束、データマスキング、継続的プロファイリングなど、一部の高度な機能は一時的に無効です。

ベースラインパフォーマンスメトリック

項目

CPU

メモリ

レスポンスタイム (ms)

500 QPS

6.752%

11.48%

57.8

1,000 QPS

13.112%

11.78%

64.1

2,000 QPS

26.910%

12.22%

70.8

  • CPU メトリックは、Pod が使用する CPU の合計 CPU (2 コア) に対する割合を示します。

  • メモリメトリックは、Pod が使用するメモリの合計メモリに対する割合を示します。Pod が使用するメモリは requests 値に達するまで自然に増加するため、このレポートでは負荷テスト終了時の実際のメモリ使用量を使用します。

  • レスポンスタイムメトリックは、リクエストの平均レスポンスタイムを示します。単位はミリ秒です。

ARMS エージェントをインストールした場合の絶対パフォーマンスメトリック

項目

CPU (10% サンプリングレート)

メモリ (10% サンプリングレート)

レスポンスタイム (ms) (10% サンプリングレート)

CPU (100% サンプリングレート)

メモリ (100% サンプリングレート)

レスポンスタイム (ms) (100% サンプリングレート)

500 QPS

8.492%

13.66%

58.6

9.392%

13.83%

59.0

1,000 QPS

16.932%

14.07%

65.2

18.072%

14.33%

65.6

2,000 QPS

35.120%

14.61%

75.1

35.930%

14.64%

76.2

CPU オーバーヘッドは、サンプリングレートや QPS と線形にスケールするわけではありません。デフォルトでは、1 秒あたりのトレース収集に上限があります。

ARMS Agent for Java V5.x のパフォーマンスオーバーヘッド

項目

CPU (10% サンプリングレート)

メモリ (10% サンプリングレート)

レスポンスタイム (ms) (10% サンプリングレート)

CPU (100% サンプリングレート)

メモリ (100% サンプリングレート)

レスポンスタイム (ms) (100% サンプリングレート)

500 QPS

+1.74%

+2.18%

+0.8

+2.64%

+2.35%

+1.2

1,000 QPS

+3.82%

+2.29%

+1.1

+4.96%

+2.55%

+1.5

2,000 QPS

+8.21%

+2.39%

+4.3

+9.02%

+2.42%

+5.4

結論

  • ARMS Agent for Java V5.x による追加の CPU およびメモリオーバーヘッドは 10% 未満です。

  • ARMS Agent for Java V5.x はレスポンスタイムへの影響が小さく (10% 未満)、QPS が 1,000 の場合、10% のサンプリングレートで約 1.1 ミリ秒、100% のサンプリングレートで約 1.5 ミリ秒増加します。

  • 100% の固定サンプリングレートでのパフォーマンスオーバーヘッドは、10% の固定サンプリングレートの場合よりも若干大きくなります。

  • これらの結果は、上記で説明したテスト条件に基づいており、テスト中に特定の高度な機能は無効にしています。