全部產品
Search
文件中心

Application Real-Time Monitoring Service:5.x 版本Java探針效能壓測報告

更新時間:Aug 04, 2026

ARMS 應用監控的 Java 探針通過位元組碼增強實現應用效能管理能力。與其他基於位元組碼增強技術的方案一樣,ARMS 探針會引入一定的效能開銷,ARMS 已採用多項技術最佳化以儘可能減少對應用效能的影響。本報告類比真實使用情境,測試了 ARMS 探針在不同業務流量下的效能開銷,可作為接入 ARMS 應用監控前的效能評估參考。

測試情境

整體架構如下圖所示:

Java 應用基於 Spring MVC 架構編寫,根據壓測源發起的不同請求,分別通過 Druid 架構和 Jedis 架構訪問 MySQL 和 Redis 服務。對於請求 ${mall-gateway}/case/api/v1/mysql/execute,Java 應用會訪問 MySQL(每接到一次請求,會訪問 1~4 次 MySQL);對於請求 ${mall-gateway}/case/api/v1/redis/execute,Java 應用會訪問 Redis(每接到一次請求,會訪問 1~10 次 Redis)。

測試環境

  • 壓測源由阿里雲Performance Testing Service 提供。

  • Java 應用、MySQL、Redis 均部署在同一個阿里雲Container Service ACK 叢集中,節點執行個體類型為 ecs.u1-c1m2.8xlarge,作業系統版本為 Alibaba Cloud Linux 2.1903 LTS 64 位元。

  • Java 應用的 Pod 規格為 2 核 4 G,雙副本,對應的 JVM 參數如下:

    -Xms3500m -Xmx3500m -XX:MetaspaceSize=500m

  • ARMS 探針採用 Aliyun JavaAgent 5.1.2 版本。

  • Demo 程式碼程式庫

測試流程

  1. 在不安裝 ARMS 探針的情況下,分別基於 500/1000/2000 QPS 發起 3 次壓測,每次持續 1 小時。每次壓測前先基於 100 QPS 流量對 Java 應用進行 3 分鐘預熱,壓測結果作為基準效能指標。

  2. 安裝 ARMS 探針,將採樣原則設定為 10% 固定採樣率,重複第 1 步的壓測,對比 Java 應用在 CPU 開銷、記憶體開銷、RT 上的差異。

  3. 安裝 ARMS 探針,將採樣原則設定為 100% 固定採樣率,重複第 1 步的壓測,對比 Java 應用在 CPU 開銷、記憶體開銷、RT 上的差異。

說明
  • ARMS 採樣策略的設定方法,參見調用鏈取樣模式選擇(3.2.8以下探針版本)

  • ARMS 應用監控的準系統均開啟,包括統計指標、調用鏈、分位元等,並開啟所有外掛程式功能;部分高階功能暫時關閉,如調用鏈壓縮、URL 收斂、脫敏開關、持續剖析等。

基準效能指標

對比項

CPU

記憶體

RT

500 QPS

6.752%

11.48%

57.8 ms

1000 QPS

13.112%

11.78%

64.1 ms

2000 QPS

26.910%

12.22%

70.8 ms

  • CPU 指標代表 Pod 使用的 CPU 佔總 CPU(2 核)的百分比。

  • 記憶體指標代表 Pod 使用的記憶體佔總記憶體的百分比。由於 Pod 使用記憶體在達到 requests 值之前會自然增長,本報告取壓測結束時的記憶體真實佔用。

  • RT 指標代表請求的平均回應時間,單位:毫秒。

安裝 ARMS 探針後的效能指標

對比項

10% 採樣率CPU

10% 採樣率記憶體

10% 採樣率RT

100% 採樣率CPU

100% 採樣率記憶體

100% 採樣率記憶體

500 QPS

8.492%

13.66%

58.6 ms

9.392%

13.83%

59.0 ms

1000 QPS

16.932%

14.07%

65.2 ms

18.072%

14.33%

65.6 ms

2000 QPS

35.120%

14.61%

75.1 ms

35.930%

14.64%

76.2 ms

說明

採樣率對 CPU 影響與 QPS 為非線性關係,預設存在每秒 Trace 採集上限閾值。

探針效能開銷

對比項

10% 採樣率CPU

10% 採樣率記憶體

10% 採樣率RT

100% 採樣率CPU

100% 採樣率記憶體

100% 採樣率記憶體

500 QPS

+1.74%

+2.18%

+0.8 ms

+2.64%

+2.35%

+1.2 ms

1000 QPS

+3.82%

+2.29%

+1.1 ms

+4.96%

+2.55%

+1.5 ms

2000 QPS

+8.21%

+2.39%

+4.3 ms

+9.02%

+2.42%

+5.4 ms

分析結論

  • ARMS 探針額外造成的 CPU 和記憶體開銷均在 10% 以內。

  • ARMS 探針對請求回應時間(RT)的影響在 10% 以內,在 1000 QPS 的情況下增加約 1 毫秒。

  • 在 100% 固定採樣率的情況下,效能開銷比 10% 固定採樣率略有上升。

  • 整體來看,5.x 版本 Java 探針的效能開銷與 4.x 版本基本一致,測試資料的差異在合理誤差範圍內。