性能测试报告
除了参考我们的性能测试报告外,你也可以访问我们公开的性能测试仓库。该仓库详细记录了所有用于测试的资源部署配置以及各个测试场景的具体配置信息。通过此仓库,你可以根据提供的指南对你自行部署的 API7 Gateway 进行性能测试。在开始测试之前,请确保你所测试的性能基线与我们的测试结果保持大致一致。
接下来,我们将详细阐述我们的测试场景、测试方法、测试结果以及相关配置的具体细节。
测试方法
- 环境:AWS 基础设施上的 Kubernetes 环境。
- 测试场景:
- 只启用 mocking 插件获取 API7 Gateway 的性能测试结果,该插件将按照指定的格式返回模拟数据,并且请求不会被转发到上游服务器;
- 未启用任何插件;
- 只启用 limit-count 限流限速插件;
- 只启用 key-auth 身份认证插件;
- 同时启用 key-auth 和 limit-count 插件;
- 路由和消费者:
- 单条路由和单个消费者;
- 100 条路由和 100 个消费者;
- 测试数据收集方式:每个测试用例运行 5 次,每次持续 2 分钟。统计的结果为 5 次测试结果的平均值。
性能测试结果
- AWS EKS
测试案例 | 路由/消费者数量 | 转发到上游 | QPS | P99 (MS) | P95 (MS) |
---|---|---|---|---|---|
只启用 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 Gateway、NGINX Upstream 及性能测试工具 wrk2 分别部署于独立的节点上,且所有节点均应采用 c5.4xlarge
型号的 EC2 实例进行安装,以确保资源分配的合理性,避免资源竞争现象的发生。
在进行压力测试时,推荐使用 top
命令或其他系统监控工具来实时监测 API7 Gateway 和 NGINX Upstream 服务器的进程资源占用情况,确保每次测试均能达到 API7 Gateway 的性能瓶颈,从而获取准确且可靠的性能测试结果。以下是参与本次测试的主要服务及其相关详细信息的概述:
对象 | 详细信息 |
---|---|
Node 配置 | Amazon Linux2(AL2_x86_64) |
Kubernetes | 1.29 |
API7 Gateway | 3.2.11.1 |
上游服务 | nginx/1.25.4 |
压测工具 | wrk2 |
部署拓扑
测试配置
对于本次测试,我们调整了工作进程的数量,使其与运行 API7 Gateway 的节点上的可用核心数量(即 16 个 vCPU)相匹配。除此之外,我们并未对系统配置进行其他调整。
更多信息
- 建立性能测试报告:查看如何优化 API7 Gateway 性能。
- 在 AWS EKS 对 API7 Gateway 进行性能测试指南:查看如何在 AWS EKS 上建立性能测试报告的详细步骤和指南。