用jmeter处理1,50,000个螺纹

时间:2016-02-10 11:49:41

标签: jmeter performance-testing

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

2 个答案:

答案 0 :(得分:3)

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

另外请记住,真正的用户不要直接锤击应用程序,他们需要一些时间来思考"在操作之间加上他们必须在开始之前等待响应"思考"关于下一步行动。

例如,给定用户"思考" 10秒,响应时间为2秒,表示每个虚拟用户每分钟执行5个请求。

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

所以:

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

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

    See 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure上面提到的文章全面解释和一些提示

    • 即使您已经应用了上述调整,我也不认为您能够从一台主机上承载1 50 000名用户(除非您的QA实验室中有超级计算机)所以我希望如此当一台主机协调多个负载生成器,即#34;奴隶"时,您需要考虑JMeter Distributed Testing作为单个实例 - 这样您就可以通过等于从属数量的因子来增加负载

答案 1 :(得分:0)

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

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

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

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