我在jmeter测试结束时遇到了一些怪异的行为。
我正在使用主奴隶,其中4个从另一个盒子上托管的4个单独的VM上运行的奴隶。
测试在"持有"期间运行良好,此测试为3分钟。但是随后它只是坐在那里约5分钟,偶尔会报告少数响应,即使所有线程都"完成"。
。./jmeter.sh -n -t /root/wordpress32sites_url2.jmx -l csvfilename -e -o htmlfoldername -R jmeter01,jmeter02,jmeter03,jmeter04
Creating summariser <summary>
Created the tree successfully using /root/wordpress32sites_url2.jmx
Configuring remote engine: jmeter01
Configuring remote engine: jmeter02
Configuring remote engine: jmeter03
Configuring remote engine: jmeter04
Starting remote engines
Starting the test @ Fri Mar 01 17:25:07 PST 2019 (1551489907760)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 12305 in 00:00:18 = 695.3/s Avg: 85 Min: 23 Max: 560 Err: 0 (0.00%) Active: 320 Started: 288 Finished: 0
summary + 49400 in 00:00:30 = 1648.4/s Avg: 322 Min: 26 Max: 7698 Err: 0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 61705 in 00:00:48 = 1294.5/s Avg: 275 Min: 23 Max: 7698 Err: 0 (0.00%)
summary + 48300 in 00:00:30 = 1607.5/s Avg: 402 Min: 28 Max: 10509 Err: 0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 110005 in 00:01:18 = 1415.5/s Avg: 331 Min: 23 Max: 10509 Err: 0 (0.00%)
summary + 48200 in 00:00:30 = 1603.1/s Avg: 404 Min: 32 Max: 9567 Err: 0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 158205 in 00:01:48 = 1467.9/s Avg: 353 Min: 23 Max: 10509 Err: 0 (0.00%)
summary + 47100 in 00:00:30 = 1574.4/s Avg: 415 Min: 33 Max: 10351 Err: 0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 205305 in 00:02:18 = 1491.0/s Avg: 367 Min: 23 Max: 10509 Err: 0 (0.00%)
summary + 48400 in 00:00:30 = 1615.0/s Avg: 403 Min: 33 Max: 10830 Err: 0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 253705 in 00:02:48 = 1513.2/s Avg: 374 Min: 23 Max: 10830 Err: 0 (0.00%)
summary + 46500 in 00:00:30 = 1546.4/s Avg: 412 Min: 32 Max: 10453 Err: 0 (0.00%) Active: 324 Started: 608 Finished: 316
summary = 300205 in 00:03:18 = 1518.2/s Avg: 380 Min: 23 Max: 10830 Err: 0 (0.00%)
summary + 3717 in 00:05:01 = 12.3/s Avg: 384 Min: 29 Max: 8782 Err: 0 (0.00%) Active: 0 Started: 608 Finished: 640
summary = 303922 in 00:08:19 = 608.8/s Avg: 380 Min: 23 Max: 10830 Err: 0 (0.00%)
summary + 87 in 00:00:00 = 7909.1/s Avg: 473 Min: 36 Max: 5197 Err: 0 (0.00%) Active: 0 Started: 608 Finished: 640
summary = 304009 in 00:08:19 = 608.9/s Avg: 380 Min: 23 Max: 10830 Err: 0 (0.00%)
Tidying up remote @ Fri Mar 01 17:33:31 PST 2019 (1551490411593)
... end of run
Creating summariser <summary>
jmeter奴隶没有任何关注:
./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[10.1.1.28:21458,SSLRMIServerSocketFactory(host=jmeter09.ovirt.pb.lab/10.1.1.28, keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi)](local),objID:[-5880d2c8:169394dd3fb:-7fff, -3132663786122032135]]]
Starting the test on host jmeter09 @ Fri Mar 01 12:54:27 UTC 2019 (1551444867945)
Finished the test on host jmeter09 @ Fri Mar 01 13:02:52 UTC 2019 (1551445372516)
如果我在最后5分钟(实际3.5分钟之后它已经运行)之前,奴隶在主人上打断了测试,则在我可以再次使用它们之前。
这是我在JMX文件中提到的详细信息:
<stringProp name="TargetLevel">5</stringProp>
<stringProp name="RampUp">0.5</stringProp>
<stringProp name="Steps">1</stringProp>
<stringProp name="Hold">3</stringProp>
我认为这是一个无关的说明,但是:除上述测试外,尽管它报告了我的"主动"线程更加"启动",但该测试的运行良好 - 它似乎并没有实际影响测试,并且似乎在斜坡时间发生了变化(下面是0.5)。0坡道时间仅在320次开始,1个斜坡显示全部开始。
首先,请确保所有节点(客户端和服务器):
- 正在运行与Jmeter完全相同的版本。
- 在所有系统上使用相同版本的Java。使用不同版本的Java可能会起作用,但灰心。
第二,检查采样器发件人属性:
测试计划中的侦听器将结果发送给客户端Jmeter,该结果将结果写入指定文件,默认情况下,示例在生成时会同步发送。 这可能会影响服务器测试的最大吞吐量;在线程继续之前,必须将样本结果发送回。可以设置一些Jmeter属性来改变此行为。
默认示例发送模式(自2.9)为 StrippedBatch
- 从成功的示例中删除响应data,然后使用Batch
发送者发送它们。
当计数(num_sample_threshold
)或时间(time_threshold
)超过阈值时,Batch
发送者发送保存的样品,此时样品是同步发送的。
可以使用以下属性在服务器上配置阈值:
-
num_sample_threshold
- 累积样本数,默认100。 -
time_threshold
- 时间阈值,默认为60000 ms = 60秒。
因此,检查此属性的值。
缩放测试的其他方法 - 在云服务中运行Jmeter测试。