Jmeter-无法每秒运行1000个并发用户

时间:2019-06-28 15:58:11

标签: java azure jmeter performance-testing blazemeter

enter image description here我一直在尝试使用JMeter为10000个用户(每秒1000个用户的并发)运行性能测试,问题是我无法在服务器上达到1000个用户的吞吐量部署在Azure中。我想知道我做错了什么,enter image description here十分感谢您的帮助,谢谢?

我的用户定义了变量:

users   ${__P(USERS,10)}
seconds ${__P(SECONDS,3600)}
scale   ${__P(SCALE,2)}
env ${__P(ENV,preprod)}
wait    false

jmeter -n -t ./src/test/branchHub/agentAuthentication.jmx -JUSERS=1000 -JSECONDS=5 -JENV=preprod -JSCALE=0.2 -JLOOPS=3 -JPRODUCTS=bill -JCERTINI=1 -Djavax.net.ssl.keyStore=./src/main/resources/certificates/preprodStore.jks -Djavax.net.ssl.keyStorePassword=performance -Jhttps.use.cached.ssl.context=true -q ./src/test/user.properties -l logs/summary/394output.jtl -e -o logs/reports/394

这是控制台日志

16:14:10创建摘要器 16:14:10使用./src/test/branchHub/agentAuthentication.jmx成功创建了树 16:14:10 @ UTC星期五6月28日15:14:10开始测试(1561734850233) 16:14:10等待端口4445上的Shutdown / StopTestNow / Heapdump消息 16:14:32摘要+ 00:00:20中的17 = 0.8 / s平均:1330最小值:77最大值:2174错误:1(5.88%)活动:7开始:20完成:13 16:15:05摘要+ 29 in 00:00:30 = 1.0 / s平均:1596最小:1443最大:2868错误:0(0.00%)活动:7开始:49完成:42 16:15:05摘要= 00:00:50中的46 = 0.9 / s平均:1498最小值:77最大值:2868错误:1(2.17%) 16:15:37摘要+ 30 in 00:00:30 = 1.0 / s平均:1674分钟:1252

2 个答案:

答案 0 :(得分:2)

查看Active: 7 summarizer的输出,您似乎有不超过7个活动用户。

鉴于您只有2个Samplers,并且在Thread Group下仅定义了3个循环,我的期望是,由于线程在约3秒内完成请求并被关闭,因此您根本达不到所需的并发性而其他人尚未开始。

尝试将“循环计数”设置为-1或在“永远”框中打勾-这样,您应该能够实现所需的并发性。请查看JMeter Test Results: Why the Actual Users Number is Lower than Expected,以获取更多详细信息。

还请确保遵循JMeter Best Practices,因为默认情况下,JMeter设置不适用于产生10000个并发用户,因此您需要对其进行调整以实现最佳性能。如果调整无济于事-您将不得不使用Distributed Testing

答案 1 :(得分:0)

您已经创建了具有1000个线程的线程组。除非您的Azure实例具有1000个vCPU,否则这将导致过多的context switching,并且JVM将花费更多的时间在线程之间切换,而不是执行工作。

要么创建具有更少线程的线程组,然后在单个线程中重复测试操作,要么向您的实例添加更多vCPU。