Jmeter 需要什么设置才能使 Jmeter 和服务器分析中的并发用户相等
What settings Jmeter require so that concurrent users in Jmeter and on server analysis gets equal
我遇到了一些问题,不确定是我遗漏了什么还是开发人员方面的问题。
我的 Jmeter 计划是[我正在使用 Ultimate 线程组]:
Start Threads Count: 2000
Initial Delay : 0
Startup Time : 400 Seconds
Hold for Load : 600 Seconds
Shutdown Time : 60 Seconds
根据以上计划,服务器上应该有2000个并发用户至少600秒。我可以在 jmeter 中看到所有用户都处于活动状态 600 秒并向服务器发送请求。
问题:
服务器团队说:他们在服务器端只能看到 10 - 15 个并发用户。
负载平衡和数据库团队也这么说。
我问过他们关于网站并发用户的设置,他们已经允许 10k。
现在这可能是个问题?为什么 Jmeter 显示 2000 个活跃用户,但在服务器上他们只能看到 10-15 个?
我是否应该在我的并发负载测试计划中使用任何其他插件或控件?
I can see in jmeter that all users are active
在哪里可以看到?使用 JMeter GUI 右上角的绿色方块?使用监听器?使用 HTML Reporting Dashboard?
JMeter 默认配置仅适用于测试开发和调试,当涉及到运行 负载测试时,您需要调整一些参数以获得最佳性能。您需要做的主要事情是:
- 增加 JMeter 启动脚本中的 JVM 堆大小
- Run your test in command-line non-GUI mode
- Disable all the listeners
并发用户数与您在终极线程组中定义的用户数不同,但它是整个测试的结果以及您如何配置测试计划。
以下是决定并发性的一些关键因素:
- 总用户数:用户数越多,并发用户数越多。成正比
- Loop Count:它是在整个测试过程中保持线程活跃的主要因素。检查您指定的值。通常它会被设置为
Forever
以便线程在整个测试过程中处于活动状态。
- User Think Times(测试计划中的计时器):您指定的思考时间越多,并发度越低。间接成比例。
- 服务器响应时间:服务器响应请求的时间越长,并发越少。间接成比例。
- 系统资源(客户端机器(JMeter)和服务器机器):资源利用率越高,服务器响应时间越长,最终导致并发性越低。
- 服务器配置:服务器配置肯定会影响系统。在高配置机器中保持较少数量的线程会导致低并发性,反之亦然。关注服务器的以下属性,
maxThreads
(可以 运行 在服务器上支持多个客户端),maxConnections
,acceptCount
等(我提供的名称是根据tomcat server
并且命名可能因服务器而异)
因此,请检查这些因素如何决定测试的并发性。
使用 Listener jp@gc Active Threads Over Time
了解活动线程。
并非所有 vuser 都保持连接已建立。我想你可以检查是否建立了真正的 2000 个连接。当你运行你的测试时,只需在Linux中使用"netstat"命令来显示Jmeter进程的tcp连接数。 "ESTABLISHED" 状态下的连接应与服务器相同。
我遇到了一些问题,不确定是我遗漏了什么还是开发人员方面的问题。
我的 Jmeter 计划是[我正在使用 Ultimate 线程组]:
Start Threads Count: 2000
Initial Delay : 0
Startup Time : 400 Seconds
Hold for Load : 600 Seconds
Shutdown Time : 60 Seconds
根据以上计划,服务器上应该有2000个并发用户至少600秒。我可以在 jmeter 中看到所有用户都处于活动状态 600 秒并向服务器发送请求。
问题:
服务器团队说:他们在服务器端只能看到 10 - 15 个并发用户。 负载平衡和数据库团队也这么说。
我问过他们关于网站并发用户的设置,他们已经允许 10k。
现在这可能是个问题?为什么 Jmeter 显示 2000 个活跃用户,但在服务器上他们只能看到 10-15 个?
我是否应该在我的并发负载测试计划中使用任何其他插件或控件?
I can see in jmeter that all users are active
在哪里可以看到?使用 JMeter GUI 右上角的绿色方块?使用监听器?使用 HTML Reporting Dashboard?
JMeter 默认配置仅适用于测试开发和调试,当涉及到运行 负载测试时,您需要调整一些参数以获得最佳性能。您需要做的主要事情是:
- 增加 JMeter 启动脚本中的 JVM 堆大小
- Run your test in command-line non-GUI mode
- Disable all the listeners
并发用户数与您在终极线程组中定义的用户数不同,但它是整个测试的结果以及您如何配置测试计划。
以下是决定并发性的一些关键因素:
- 总用户数:用户数越多,并发用户数越多。成正比
- Loop Count:它是在整个测试过程中保持线程活跃的主要因素。检查您指定的值。通常它会被设置为
Forever
以便线程在整个测试过程中处于活动状态。 - User Think Times(测试计划中的计时器):您指定的思考时间越多,并发度越低。间接成比例。
- 服务器响应时间:服务器响应请求的时间越长,并发越少。间接成比例。
- 系统资源(客户端机器(JMeter)和服务器机器):资源利用率越高,服务器响应时间越长,最终导致并发性越低。
- 服务器配置:服务器配置肯定会影响系统。在高配置机器中保持较少数量的线程会导致低并发性,反之亦然。关注服务器的以下属性,
maxThreads
(可以 运行 在服务器上支持多个客户端),maxConnections
,acceptCount
等(我提供的名称是根据tomcat server
并且命名可能因服务器而异)
因此,请检查这些因素如何决定测试的并发性。
使用 Listener jp@gc Active Threads Over Time
了解活动线程。
并非所有 vuser 都保持连接已建立。我想你可以检查是否建立了真正的 2000 个连接。当你运行你的测试时,只需在Linux中使用"netstat"命令来显示Jmeter进程的tcp连接数。 "ESTABLISHED" 状态下的连接应与服务器相同。