在Jmeter中同时运行的最大线程数是多少?

时间:2009-04-19 09:07:55

标签: http web-applications load-testing jmeter

我想使用尽可能多的线程(使用更少的计算机),但不会成为客户端的瓶颈。

9 个答案:

答案 0 :(得分:27)

如果您使用它,JMeter可以模拟非常高的负载。

不要听JMeter无法处理高负荷的 Urban Legends

现在至于答案,取决于:

  • 您的机器电源

  • 您的jvm 32位或64位

  • 您的jvm已分配内存-Xmx

  • 你的测试计划(很多beanhell,后处理器,xpath ......意味着很多cpu)

  • 你的os配置(可调)

  • Gui / non gui mode

所以没有理论上的答案,但遵循Best Practices将确保JMeter表现良好。

请注意,使用jmeter,您可以通过远程测试分配负载,请阅读:

如果还不够,最后使用基于云的测试。

阅读本文以获得调整技巧:

阅读此book以进行负载测试并正确使用JMeter。

答案 1 :(得分:10)

我已经使用了JMeter,发现它在产生非常高的负载方面并不是很好。在具有2Gb内存的2Ghz Core2 Duo上,你可以合理地期望大约100个线程。

话虽如此,最好在您的硬件上运行它,以便PC的CPU不会达到100%的峰值 - 稳定的80%-90%是最好的,否则结果会受到影响。

我也试过WAPT 5 - 它成功地从同一台PC上运行了1000多个线程。它不是免费的,但它比JMeter更有用,但没有所有的功能。

  

至少版本2.6之后的过期答案请参阅https://stackoverflow.com/a/11922239/460802以获取更新的答案。

答案 2 :(得分:9)

The JMeter Wiki报告JMeter与多达1000个线程一起使用的情况。我已经使用它最多100个线程,但Wiki中的链接建议我从未尝试过减少资源。

答案 3 :(得分:4)

我们在Windows XP上运行JMeter时遇到的一个问题是Windows XP TCP连接限制。应该删除限制以便运行JMeter以充分发挥工作站的潜力 更多信息here。 AFAIK,不适用于其他操作系统。

答案 4 :(得分:3)

我从2004年开始使用JMeter,我开始进行大量的负载测试。

使用PC Windows 7 64位4Go RAM iCore5。

我认为JMeter可以为Http(Sampler)协议支持300到 400 并发线程,只有一个“Aggregate Report Listener”在日志文件结果和计时器中写入在呼叫页面之间。

对于大负载测试,您可以使用这样的从站(负载生成器)配置JMeter http://jmeter-plugins.org/wiki/HttpSimpleTableServer/

我已经使用11个PC从站进行了测试,以模拟5000个线程。

答案 5 :(得分:0)

我没有使用过JMeter,但答案可能取决于你的硬件。最好的选择可能是建立性能指标,猜测线程数,然后按如下方式运行二进制搜索。

来源是维基百科。

数字猜谜游戏......

这个相当简单的游戏开始类似于“我正在考虑四十到六十之间的整数,并且根据您的猜测,我会回复'高','低'或'是!'可能是这样。“假设N是可能值的数量(这里,21表示为“包含”),那么最多需要问题来确定数字,因为每个问题将搜索空间减半。请注意,与一般算法相比,需要少一个问题(迭代),因为该数字已经被限制在特定范围内。

即使我们猜测的数字可以任意大,在这种情况下没有上限N,我们仍然可以通过首先找到最多步骤中的数字(其中k是(未知)所选数字)重复加倍的上限。例如,如果数字是11,我们可以使用以下猜测序列来找到它:1,2,4,8,16,12,10,1

还可以将技术扩展到包含负数;例如,以下猜测可用于找到-13:0,-1,-2,-4,-8,-16,-12,-14,-13

答案 6 :(得分:0)

它更依赖于您在特定服务器上执行的性能测试(加载,尖峰,续航等)(稍微依赖硬件)

请记住这些参数 - 您针对jmeter运行的客户端计算机,将分配一定量的堆内存,确保具有健康的分配,以便脚本不会出错。我在jmeter上运行的最高值是在本地环境(客户端 - 服务器拱门)上运行1500,在Web拱门上,我运行的最高值是基于非功能性需求限制为250个线程,

所以它理想地取决于性能测试和部署风格的类型等等。

答案 7 :(得分:0)

没有标准号码。您可以从一台计算机生成的最大线程数完全取决于计算机的硬件和操作系统。默认情况下,操作系统占用一定数量的CPU和RAM。

要找出计算机可以处理的最大线程数,您可以准备一个示例测试并仅使用几个线程运行它。然后,每次测试运行周期逐渐增加线程数。在此期间,您还需要监视计算机的CPU,RAM,磁盘I / O和网络I / O.当这些中的任何一个达到或超过80%时(再次为您决定是否可以接近或超出),这是您的计算机可以处理的最大线程数。为了更安全,当资源利用率达到70%时,我会停在数字处。

答案 8 :(得分:-1)

它取决于您运行的硬件以及底层脚本。我一直觉得这种模糊性是传统负载测试工具的最大问题。如果您的预算很少(200美元左右会给您带来大量测试),请查看我公司的load testing service,BrowserMob。

除了我们的真实浏览器用户(RBU),它们在实际浏览器上控制数千个用于性能和负载测试的目的,我们还有传统的虚拟用户(VU)。脚本是用JavaScript编写的,可以进行各种HTTP调用。

我提出这个问题的原因是我总觉得尝试弄清楚你可以在你的负载硬件上安装多少个VU的游戏是危险的。如果没有意识到这一点,很容易得到糟糕的结果。

为了解决BrowserMob的问题,我们对每个CPU核心的VU和RBU数量采取了非常保守的方法:每个CPU核心不超过1个浏览器或50个线程,有时甚至更少。在云计算领域,CPU周期非常便宜,以至于尝试使机器过载是没有意义的。