跳到主要内容

性能测试基准

本文档将解释测试环境、方法和结果,以帮助你评估 APISIX 在各种负载条件下的性能,以及如何自己进行性能测试。

除了参考 性能测试基准 外,你还可以使用 性能基准仓库 中的设置进行自己的性能测试。该仓库详细记录了用于测试的所有资源部署配置以及每个测试场景的具体配置信息。通过此仓库,你可以按照提供的指南在你自己的 APISIX 部署上进行性能基准测试。在开始测试之前,请确保你获得的 性能基线 与测试结果大致一致。

方法论

  • 环境:Kubernetes。
  • 测试场景
    1. 仅启用 mocking 插件以获取 APISIX 的基准性能值。此插件返回指定格式的模拟数据,请求不转发到上游服务器;
    2. 未启用任何插件;
    3. 仅启用 limit-count 限流限速插件;
    4. 仅启用 key-auth 身份验证插件;
    5. 同时启用 key-authlimit-count 插件;
  • 路由和消费者
    1. 单个路由和单个消费者;
    2. 100 个路由和 100 个消费者;
  • 样本量:测试数据收集:每个测试用例运行 5 次,每次运行持续 2 分钟。报告的结果是 5 次测试运行的平均值。

性能基准测试结果

测试场景路由/消费者数量转发到上游QPSP99 (MS)P95 (MS)
仅启用 mocking1 个路由, 0 个消费者False310,392.071.161.08
未启用插件1 个路由, 0 个消费者True167,019.372.302.16
未启用插件100 个路由, 0 个消费者True162,753.172.312.16
仅启用 limit-count1 个路由, 0 个消费者True145,370.102.432.24
仅启用 limit-count100 个路由, 0 个消费者True143,108.402.452.25
仅启用 key-auth1 个路由, 1 个消费者True147,869.492.412.22
仅启用 key-auth100 个路由, 100 个消费者True145,070.932.432.25
同时启用 key-authlimit-count1 个路由, 1 个消费者True136,725.472.432.26
同时启用 key-authlimit-count100 个路由, 100 个消费者True133,782.952.482.30

测试环境

本次性能测试是在 AWS EKS 环境中进行的。构建测试环境时,必须确保 APISIX、NGINX 上游和性能测试工具 wrk2 部署在不同的节点上,均使用 c5.4xlarge EC2 实例。此配置确保资源的合理分配并避免资源争用问题。

在压力测试期间,建议使用 top 命令或其他系统监控工具实时监控 APISIX 和 NGINX 上游服务器的进程资源利用率。这确保每个测试都达到 APISIX 的性能瓶颈,从而产生准确可靠的性能测试结果。

以下是此测试中涉及的主要组件及其规格的概述:

名称详细信息
节点Amazon Linux 2 (AL2_x86_64)
Kubernetes1.29
APISIX3.9
上游服务nginx/1.25.4
性能基准测试工具wrk2

部署拓扑

K8s 部署

测试配置

对于此测试,调整了 worker_processes 的数量以匹配运行 APISIX 的节点上的可用虚拟核心数(即 16 个 vCPU)。未对系统配置进行进一步修改。

其他信息

以下资源是 API7 企业版文档的一部分,但指南和最佳实践同样适用于 APISIX。