性能测试基准
本文档将说明测试环境、方法和结果,以帮助你评估 API7 企业版在各种负载条件下的性能表现,以及如何自行进行性能测试。
除了参考性能测试基准外,你还可以使用性能基准测试仓库中的设置进行自己的性能测试。该仓库详细记录了测试所用的所有资源部署配置,以及每个测试场景的具体配置信息。通过该仓库,你可以按照提供的指南在自己部署的 API7 网关上进行性能基准测试。在开始测试之前,请确保你获得的性能基准与测试结果大致一致。
测试方法
- 环境:Kubernetes。
- 测试场景:
- 仅启用
mocking插件以获取 API7 网关的基准性能值。该插件会返回指定格式的模拟数据,请求不会被转发到上游服务器; - 未启用任何插件;
- 仅启用
limit-count限流插件; - 仅启用
key-auth身份验证插件; - 同时启用
key-auth和limit-count插件。
- 仅启用
- 路由和消费者:
- 单个路由和单个消费者;
- 100 个路由和 100 个消费者。
- 样本大小:测试数据收集:每个测试用例运行 5 次,每次运行持续 2 分钟。报告的结果是 5 次测试运行的平均值。
性能测试基准结果
- AWS EKS
| 测试场景 | 路由/消费者数量 | 转发到上游 | QPS | P99 (毫秒) | P95 (毫秒) |
|---|---|---|---|---|---|
仅启用 mocking | 1 个路由,0 个消费者 | 否 | 310,392.07 | 1.16 | 1.08 |
| 未启用任何插件 | 1 个路由,0 个消费者 | 是 | 167,019.37 | 2.30 | 2.16 |
| 未启用任何插件 | 100 个路由,0 个消费者 | 是 | 162,753.17 | 2.31 | 2.16 |
仅启用 limit-count | 1 个路由,0 个消费者 | 是 | 145,370.10 | 2.43 | 2.24 |
仅启用 limit-count | 100 个路由,0 个消费者 | 是 | 143,108.40 | 2.45 | 2.25 |
仅启用 key-auth | 1 个路由,1 个消费者 | 是 | 147,869.49 | 2.41 | 2.22 |
仅启用 key-auth | 100 个路由,100 个消费者 | 是 | 145,070.93 | 2.43 | 2.25 |
同时启用 key-auth 和 limit-count | 1 个路由,1 个消费者 | 是 | 136,725.47 | 2.43 | 2.26 |
同时启用 key-auth 和 limit-count | 100 个路由,100 个消费者 | 是 | 133,782.95 | 2.48 | 2.30 |
测试环境
本次性能测试在 AWS EKS 环境中进行。在搭建测试环境时,必须确保 API7 网关、NGINX 上游和性能测试工具 wrk2 部署在不同的节点上,且均使用 c5.4xlarge EC2 实例。这种配置确保了资源的合理分配,并避免了资源争用问题。
在压力测试期间,建议使用 top 命令或其他系统监控工具实时监控 API7 网关和 NGINX 上游服务器的进程资源利用率。这能确保每次测试都达到 API7 网关的性能瓶颈,从而获得准确可靠的性能测试结果。
以下是本次测试涉及的主要组件及其规格概述:
| 名称 | 详情 |
|---|---|
| 节点 | Amazon Linux 2 (AL2_x86_64) |
| Kubernetes | 1.29 |
| API7 网关 | 3.2.13.0 |
| 上游服务 | nginx/1.25.4 |
| 性能基准测试工具 | wrk2 |
部署拓扑

测试配置
对于本次测试,调整了 worker_processes 的数量,以匹配运行 API7 网关的节点上可用的虚拟核心数(即 16 个 vCPU)。未对系统配置进行进一步的修改。
附加信息
- 建立性能基准:了解如何优化 API7 网关的性能。
- 在 AWS EKS 上进行 API7 网关性能测试指南:查看有关如何在 AWS EKS 上建立性能基准的详细步骤和指南。