【问题标题】:How to get high rps with JMeter load testing https endpoint如何使用 JMeter 负载测试 https 端点获得高 rps
【发布时间】:2019-11-01 05:44:18
【问题描述】:

我正在尝试使用 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 来完成这项任务。

【问题讨论】:

    标签: jmeter load-testing yandex-tank


    【解决方案1】:

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

    Stepping Thread Group

    从下面的链接下载jar。

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

    【讨论】:

    • 谢谢你的建议,我试试看。
    【解决方案2】:

    我希望您尝试使用一台机器来实现这一目标。尝试多机或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.How do threads and number of iterations impact test and what is JMeter’s max. thread limit
    2.https://www.blazemeter.com/blog/what%e2%80%99s-the-max-number-of-users-you-can-test-on-jmeter/.

    【讨论】:

    • 我使用的机器足够强大,它有 4 个内核和 64gb 内存,但问题是,当我运行只有 16 个线程的 JMeter 时,它已经使用了所有可用的 CPU 和只有大约 10% 的 RAM。当我将线程数从 50 更改为 100 或 1000 时,RPS 似乎没有改变。您认为这台机器应该能够处理多少线程?关于我缺少的线程号,是否有一些 jmeter 选项?
    • 请检查上面更新的链接......为了清楚起见,我有一段时间没有挖掘这个话题了。但是,我知道我对不的期望。的线程和 RPS 永远不会相遇。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2018-09-28
    • 2012-07-29
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多