Node.JS 具有数千个虚拟用户的负载测试工具

Node.JS Load Testing tools with thousand of virtual users

目标是在 AWS 上对 Node.JS 服务器进行负载测试。

服务器应该更多地支持不同用户每秒 (20K) 事件的极高峰值。 我尝试了一些负载测试工具,如 Artillery 和 LoadTest。不幸的是,通过设置总共 64G 的 16 核 Kuberense 集群,无法获得超过 3K 的 VU。 结果是每个 pod 在 100% CPU 利用率内少于 60 个 VU。当我试图在 50 pods

上获得至少 200 个 VU 时

可能任何人都想 CPU 消耗更少的负载测试工具。

如果您只有一台无法扩展的物理(或虚拟)服务器,那么使用像 k8s 这样的容器编排工具就没有多大意义,因为它不会增加任何价值,只会消耗资源。

关于负载测试工具的资源消耗,始终需要最低限度,例如:

  • 内存中的操作系统线程占用空间
  • 请求和响应大小
  • 语言运行时所需的额外资源

根据我以前的经验Tsung 以最少的资源提供最大的吞吐量。

然而,根据测试的性质,您可能需要考虑其他工具,即查看 Open Source Load Testing Tools: Which One Should You Use? 文章了解更多选项。

将工具选择范围缩小到支持应用程序负载测试所需的网络协议的工具,并且不要忘记大多数工具都假定性能调整。

另外不要忘记真实用户不会不停地敲击应用程序,他们需要一些时间在操作之间 "think" 所以首先要确保您的虚拟用户的行为像真实用户一样,您可能只需要使工作负载更真实,而当前的 hardware/software 设置就足够了