jMeter负载测试:单一测试与分布式测试-结果大不相同

jMeter负载测试:单一测试与分布式测试-结果大不相同,jmeter,load-testing,blazemeter,jmeter-4.0,distributed-testing,Jmeter,Load Testing,Blazemeter,Jmeter 4.0,Distributed Testing,对50个虚拟用户执行负载测试的结果之间存在巨大差异: 方法1)单个Linux机器(m3.medium) 方法2)JMeter一次二次分布式测试 i) server - linux machine (m3.medium) ii) client1 - linux machine (m3.medium) - No of Threads: 25, Ramp up time: 60 sec iii) client2 - linux machine (m3.medium) - No of Threads:

对50个虚拟用户执行负载测试的结果之间存在巨大差异:

方法1)单个Linux机器(m3.medium)

方法2)JMeter一次二次分布式测试

i) server - linux machine (m3.medium)
ii) client1 - linux machine (m3.medium) - No of Threads: 25, Ramp up time: 60 sec
iii) client2 - linux machine (m3.medium) - No of Threads: 25, Ramp up time: 60 sec
jMeter版本:每种情况下为4.0

分布式测试花费的时间大约是单个测试的四倍。即使经过几次测试,我也找不到原因


50个并发用户需要多少台机器? TL;DR 1

仅当一台机器不够时才使用分布式测试

仅当必须时才使用分布式测试,设置有其开销和调整


它与1K及以上并发用户相关

您确定所有这些源请求都实际命中目标计算机吗?50个线程看起来可能很多。如果在一台机器上尝试24个线程,然后在分布式机器上尝试12个和12个线程,会发生什么?或者10,然后是5和5?所有的内存和java堆空间是否都相同?它们是否位于同一子网中?“需要比单个测试多4倍的时间”-基于什么?你能分享一下在两种环境中运行了什么、花了什么时间的实际例子吗?所有的请求都会命中目标机器。所有计算机也在同一子网中。还有足够的ram和堆。@kiril我的意思是,在单机API上,在分布式环境上运行大约需要几百毫秒,而在单机API上运行大约需要4x毫秒。我计划加载多达1000个并发用户的测试,因此最初尝试使用较少的用户。@Shashank Shah,这将是一个完全不同的问题,因为你不能在一台机器上执行1K
i) server - linux machine (m3.medium)
ii) client1 - linux machine (m3.medium) - No of Threads: 25, Ramp up time: 60 sec
iii) client2 - linux machine (m3.medium) - No of Threads: 25, Ramp up time: 60 sec