0

我正在尝试使用 JMeter 测试我的 https 端点。我想每秒至少发出 10000 个请求,但是当我将线程数设置为 10000 时,我得到的 rps 更少,大约 500。

我尝试将线程数设置为 1000 和 100,令人惊讶的是我得到了相同数量的 rps。我正在使用 HTTP 采样器,并且“使用 Keep-Alive”设置为 true。当我查看统计数据时,我看到当使用 100 个线程时,它使用了 Keep-Alive 并且 connect_time 大约是 100 毫秒,但是当线程数更高时,connect_time 增长,就像它停止重用连接一样。

我知道这不是服务器问题,因为我尝试使用 Yandex.Tank 和 phantom 测试同一个端点,它可以轻松地保持每秒 10 000 个请求,问题是它不能使用响应数据发出更多请求,这就是为什么我必须使用 JMeter 来完成这项任务。

4

2 回答 2

0

我希望您正在尝试使用一台机器来实现这一目标。尝试使用多机或 jmeter 分布式模式。

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf https://www.blazemeter.com/blog/how-to-perform-distributed-testing-in-jmeter/ https://blazemeter.com/blog /3-common-issues-when-running-jmeter-scripts-and-how-solve-them/

我假设这是机器无法产生那么多负载的问题。通常,我每台机器最多使用 300 个线程,但这取决于机器配置。只需检查机器是否有问题并且多台机器能够产生更多负载,考虑到服务器没有任何问题。

希望这可以帮助。

更新:-我的现代机器通常可以处理 200-500。请检查以下链接以获取更多信息:-

1.线程和迭代次数如何影响测试以及JMeter的最大值是多少。线程限制
2. https://www.blazemeter.com/blog/what%e2%80%99s-the-max-number-of-users-you-can-test-on-jmeter/

于 2019-06-19T09:43:22.897 回答
0

这可以通过使用“步进线程组”来完成。它将允许您在指定时间内每秒发送 10000 个请求。参考下图。

步进线程组

从下面的链接下载 jar。

https://jmeter-plugins.org/wiki/SteppingThreadGroup/

于 2019-06-19T12:28:18.837 回答