性能测试指导

更新时间:2025-03-19 03:23:26

本文介绍MSE 服务治理性能测试指导信息。

前提条件

说明

本文以创建ACK托管集群为例,您也可以使用 ECS 进行测试。

背景信息

由于 MSE 微服务治理 Agent 的性能表现与应用流量、应用接口数量、治理功能使用情况等相关。因此需要满足以下条件,以保障测试结果接近实际使用。

  • 对单机 QPS 250500两种场景分别进行压测以反映不同负载下的性能表现。

  • 应用包含 50个 Web 服务接口,30个 RPC 服务接口。

  • 需开启全链路灰度和流量防护功能。

性能测试关注的指标包括:CPU 开销、内存开销以及响应时间(RT) 开销。

说明

其中内存开销由于 AliyunJavaAgent 增加的内存多为可 GC 内存,可以通过调整 GC 配置来降低,因此CPU 开销更具有参考价值。。

测试环境

  • 压测源可以使用阿里云性能测试PTS/JMeter 等压测工具。

  • Java 应用的 Pod 规格为2 Core 4 GiB,双副本。

测试应用

测试应用架构如下所示,详情可参见Demo代码库。

  • PTS —> Gateway —>A应用 —> B应用 —> C应用

  • Java 应用基于 Spring MVC 框架编写,请求路径为${gateway}/A/httpTest 以及 ${gateway}/A/dubboTest

测试压力

2 Core 4 GiB 的 Pod 规格为例,单Pod 250/500 QPS,集群500/1000 QPS。

测试流程

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

  2. 挂载 MSE Java 探针,并设置应用的微服务治理规则,对比 Java 应用稳定运行时在 CPU 开销、内存开销、平均 RT(响应时间)上的差异。

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

    • 对于每个接口,设置接口限流,限流阈值为10000 QPS(不需要触发限流,不影响性能测试)。

  • 本页导读
  • 前提条件
  • 背景信息
  • 测试环境
  • 测试应用
  • 测试压力
  • 测试流程