如何使用JMeter模拟500tps的负载测试

如何使用JMeter模拟500tps的负载测试

我正在使用 JMeter 测试我的 REST API。该 API 必须处理大约 100 tps 的负载。我使用以下硬件来生成负载:

CPU - 8 Cores
RAM - 16 Gb
3.0 GHz Intel Xeon Platinum Processor
_JAVA_OPTIONS = -Xms1g -Xmx12g

现在我有一个 http GET 请求。我的 JMeter 配置:

number of users - 10000
ramp up time -  100 seconds

上述配置意味着每秒有 100 个并发用户,并且一个请求等于每秒 1 个事务。我的解释正确吗?此外,我应该如何计划测试我的 API 以应对 500tps 负载?如果我增加线程数,我的服务器就会耗尽内存。

答案1

上述配置并不意味着每秒有 100 个并发用户。 它也是并不意味着one request is equal to 1 trasaction per second你所说的任何意思

上述配置意味着

  • JMeter 每秒将启动 100 个用户
  • 用户将开始执行请求尽可能快地
  • 一旦虚拟用户完成请求,它将被关闭

实际并发用户数和每秒交易数取决于你的服务器响应时间即,如果响应时间为 1 秒 - 则每秒将有 100 笔交易,如果响应时间为 2 秒 - 则每秒将有 50 笔交易,如果响应时间为 0.5 秒 - 则每秒将有 200 笔交易。

如果你的目标是实现 100 或 500 tps - 我建议使用吞吐量整形定时器并发线程组组合。它们可以组合使用反馈功能因此 JMeter 将自动启动新线程以达到/维持定义的并发度。

两种测试元件均可使用以下方式安装JMeter 插件管理器

相关内容