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

测试配置
对于此测试,调整了 worker_processes 的数量以匹配运行 APISIX 的节点上的可用虚拟核心数(即 16 个 vCPU)。未对系统配置进行进一步修改。
其他信息
以下资源是 API7 企业版文档的一部分,但指南和最佳实践同样适用于 APISIX。
- 建立性能基准:了解如何优化 APISIX 的性能。
- AWS EKS 上 APISIX 性能测试指南:查看有关如何在 AWS EKS 上建立性能基准的详细步骤和指南。