MSE Java 探针性能压测

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

测试环境

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

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

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

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

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

测试场景

Java应用架构如下所示:

image

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

所有应用添加 JVM 启动参数 -Xms3500m -Xmx3500m -XX:MetaspaceSize=500m

测试流程

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

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

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

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

探针性能开销

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

CPU开销

内存开销

RT(每跳增加)

单机250QPS

+2.9575%

  • Gateway: +3.085%

  • A: +4.055%

  • B: +3.435%

  • C: +1.255%

+0.192125 GiB

  • Gateway: +0.167 GiB

  • A: +0.215 GiB

  • B: +0.193 GiB

  • C: +0.1935 GiB

+0.2 ms

单机500QPS

+6.365%

  • Gateway: +7.11%

  • A: +6.4%

  • B: +7.15%

  • C: +4.8%

+0.161125 GiB

  • Gateway: +0.1655 GiB

  • A: +0.202 GiB

  • B: +0.1495 GiB

  • C: +0.1275 GiB

+0.2 ms

基线性能指标

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

CPU开销

内存开销

RT(响应时间)

单机250QPS

  • Gateway: 4.25%

  • A: 8.445%

  • B: 6.15%

  • C: 6.34%

  • Gateway: 1.323 GiB

  • A: 1.383 GiB

  • B: 1.424 GiB

  • C: 1.477 GiB

109 ms

单机500QPS

  • Gateway: 7.74%

  • A: 17.15%

  • B: 12.65%

  • C: 11.4%

  • Gateway: 1.354 GiB

  • A: 1.424 GiB

  • B: 1.4725 GiB

  • C: 1.509 GiB

112 ms

开启MSE能力后的性能指标

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

CPU开销

内存开销

RT(响应时间)

单机250QPS

  • Gateway: 7.335%

  • A: 12.5%

  • B: 9.585%

  • C: 7.595%

  • Gateway: 1.49 GiB

  • A: 1.598 GiB

  • B: 1.617 GiB

  • C: 1.6705 GiB

110 ms

单机500QPS

  • Gateway: 14.85%

  • A: 23.55%

  • B: 19.8%

  • C: 16.2%

  • Gateway: 1.5195 GiB

  • A: 1.626 GiB

  • B: 1.622 GiB

  • C: 1.6365 GiB

113 ms