在 jmeter 中处理 1,50,000 个线程

问题描述 投票:0回答:3

在对应用程序进行性能测试时,我无法继续使用 JMeter 处理大量线程,因此,我想知道 Jmeter 中允许的最大线程数,jmeter 是否能够处理 1,50,000 个线程?

jmeter performance-testing
3个回答
3
投票

没有上限,它很大程度上取决于您的测试在做什么、响应大小是多少等。

还要记住,真正的用户不会不停地敲打应用程序,他们需要一些时间在操作之间“思考”,而且他们必须等待响应才能开始“思考”下一步操作。

例如,假设用户“思考”10秒,响应时间为2秒,这意味着每个虚拟用户每分钟将执行5个请求。

在上述场景中,1 50 000 个用户每分钟将执行 7 50 000 个请求 - 即每秒 12 500 个请求 - > 模拟用户数减少 10 倍。

所以:

  • 首先确保您的 JMeter 配置是最佳的,默认设置有利于测试开发和调试,但不太适合负载测试执行。你需要

    • 调整 Java 参数(堆大小、GC 等)
    • 禁用所有监听器
    • 确保您只有绝对需要的断言和后处理器
    • 您只存储您需要的指标,并且不保存任何过多的结果,尤其是响应数据

    请参阅 JMeter 负载测试“内存不足”失败的 9 个简单解决方案文章,了解上述要点的全面解释和更多提示

    • 即使您应用上述调整,我也不认为您能够从单个主机处理 1 50 000 个用户的负载(除非您的 QA 实验室中有一台超级计算机),所以我希望您需要考虑JMeter 分布式测试 当一台主机编排多个负载生成器(又名“从机”)充当单个实例时 - 这样您将能够按等于从机数量的系数增加负载

0
投票

是的,当然,这很大程度上取决于运行 Jmeter 的机器,但如果里程数很重要,我可以给你一些提示。

  • JMeter 允许您在同一个框中运行多个进程,并且通常非常可靠,每个 JMeter 实例生成多达 200-300 个线程。如果您需要更多,我建议使用多个 JMeter 实例

  • 使用下面的链接可以更好地描述 Jmeter 如何处理多个实例的 1,50,000 个线程

  • https://blazemeter.com/blog/how-run-load-test-50k-concurrent-users

0
投票

也许这个插件可以对 Jmeter 有帮助 https://github.com/nirmal-mewada/jmeter-loom 更多细节: https://dzone.com/articles/unveiling-the-secret-achieving-50k-concurrent-user PS:我是这个插件的作者

© www.soinside.com 2019 - 2024. All rights reserved.