全部产品
Search
文档中心

应用实时监控服务ARMS:5.x 版本Java探针性能压测报告

更新时间:Aug 03, 2026

ARMS 应用监控的 Java 探针通过字节码增强实现应用性能管理能力。与其他基于字节码增强技术的方案一样,ARMS 探针会引入一定的性能开销,ARMS 已采用多项技术优化以尽可能减少对应用性能的影响。本报告模拟真实使用场景,测试了 ARMS 探针在不同业务流量下的性能开销,可作为接入 ARMS 应用监控前的性能评估参考。

测试场景

整体架构如下图所示:

image

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)。

测试环境

  • 压测源由阿里云性能测试 PTS 提供。

  • Java 应用、MySQL、Redis 均部署在同一个阿里云容器服务 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 版本基本一致,测试数据的差异在合理误差范围内。