MSE Java 探针性能压测

MSE 微服务治理Java探针在应用运行时进行字节码增强,实现微服务治理能力。本文模拟了真实的使用场景,测试了MSE微服务治理Java探针在不同业务流量下带来的性能开销,有助于您在接入MSE微服务治理前,基于性能影响进行充分的评估。

测试环境

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

  • Java应用、MySQL、Redis都部署在同一个阿里云容器服务ACK集群中,节点实例类型为 ecs.u1-c1m2.8xlarge,节点的操作系统版本为 Alibaba Cloud Linux 2.1903 LTS 64

  • Java应用的Pod规格为24GB,双副本。

  • MSE Java探针使用 Aliyun JavaAgent 4.2.0 版本。

Demo 代码库:https://github.com/aliyun/alibabacloud-microservice-demo/tree/demo-pt/mse-simple-demo

测试场景

Java应用架构如下所示:

PTS -> Gateway -> A -> B -> C -> Redis/MySQL。

Java应用基于Spring MVC框架编写, Redis/MySQL 为避免网络影响采用客户端模拟的方式(埋点逻辑依旧会被执行),请求${gateway}/A/httpTest 以及 ${gateway}/A/dubboTest。

测试流程

  1. 在不安装MSE Java探针的情况下,使用基于500/1000QPS,各发起3次压测,每次的持续时长为20分钟,每次压测前都先基于100 QPS压测流量对Java应用进行3分钟预热,将三次的压测结果取平均值作为基线性能指标。

  2. 安装MSE Java探针,并设置应用的微服务治理规则,对比Java应用在CPU开销、内存开销、RT(响应时间)上的差异。

说明
  • 设置全链路灰度泳道,条件为按比例灰度50%。

  • 对于每个接口,设置接口限流,限流阈值为10000 QPS。

探针性能开销

每秒处理查询次数(次/秒)

CPU

内存

RT(每跳增加)

单机250QPS

+3.9325%

  • Gateway: +4.105%

  • A: +5.035%

  • B: +3.945%

  • C: +2.645%

+155.395875 MiB

  • Gateway: +160.7225 MiB

  • A: +162.723 MiB

  • B: +162.937 MiB

  • C: +135.201 MiB

+0.2 ms

单机500QPS

+6.305%

  • Gateway: +7.365%

  • A: +8.055%

  • B: +6.43%

  • C: +3.37%

+172.09775 MiB

  • Gateway: +175.205 MiB

  • A: +195.6815 MiB

  • B: +167.719 MiB

  • C: +149.7855 MiB

+0.4 ms

基线性能指标

每秒处理查询次数(次/秒)

CPU开销

内存开销

RT(响应时间)

单机250QPS

  • Gateway: 4.25%

  • A: 8.84%

  • B: 7.825%

  • C: 6.795%

  • Gateway: 547.377 MiB

  • A: 618.0915 MiB

  • B: 644.8225 MiB

  • C: 683.391 MiB

107 ms

单机500QPS

  • Gateway: 8.095%

  • A: 18.15%

  • B: 15.93%

  • C: 14.375%

  • Gateway: 547.92 MiB

  • A: 626.5 MiB

  • B: 658.701 MiB

  • C: 683.5565 MiB

107 ms

开启MSE&ARMS能力后的性能指标

每秒处理查询次数(次/秒)

CPU开销

内存开销

RT(响应时间)

单机250QPS

  • Gateway: 8.355%

  • A: 13.875%

  • B: 11.77%

  • C: 9.44%

  • Gateway: 708.0995 MiB

  • A: 780.8145 MiB

  • B: 807.7595 MiB

  • C: 818.592 MiB

108 ms

单机500QPS

  • Gateway: 15.46%

  • A: 26.205%

  • B: 22.36%

  • C: 17.745%

  • Gateway: 723.125 MiB

  • A: 822.1815 MiB

  • B: 826.42 MiB

  • C: 833.342 MiB

109 ms