一、jmeter分布式部署
控制机和执行机的版本要相同。
官方说jdk版本也需要相同,但是目前jdk版本不同也未发现异常
master:
1.jmeter.properties文件修改如下:
remote_hosts=
注释:加上控制机的ip地址
server.rmi.ssl.disable=true
注释:1.本次使用禁用的方式从默认的 false 改成true 。
2.使用基本ssl的rmi部署目前未实际验证。
2.启动jmeter_server.bat
3.启动 jmeter.bat 监测执行机返回的结果
agent:
1.meter.properties文件修改如下:
server.rmi.ssl.disable=true
修改端口
server_port=1099
server.rmi.localport=1099
2.启动jmeter_server.bat
二、测试过程的问题
1.jmeter 报内存溢出
jmeter.bat中修改内存,可按照执行机的配置做调整,本次执行机 16g内存,做了如下修改
set HEAP=-Xms8g -Xmx8g -XX:MaxMetaspaceSize=4098m
2.控制机收到的结果 response body 中是空的
修改 jmeter.properties
mode=Standard
注释:默认前面有注释,去掉即可
3.开始只用了聚合报告,对于响应出错的数据无法详细分析
加上 监听器中的 用表格查看结果 ,每一条请求有详细记录,不过加的监听越多对资源的消耗也是越大的。
![]()
4.超时问题
1.线程和集合点数量加之前需要先看下测试系统已经已经有的限制,本次发现resis只最大支持 1000 所以后面 10万线程每组 1500 本身就是超出服务配置所能承载的范围的
5.JMeter Address already in use 错误解决
报错原因:
1、windows系统为了保护本机,限制了其他机器到本机的连接数.
2、TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。
修改操作系统注册表
1、打开注册表:regedit
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters
3、新建 DWORD值,name:TcpTimedWaitDe,value:30(十进制) ——> 设置为30秒(默认240)
4、新建 DWORD值,name:MaxUserPort,value:65534(十进制) ——> 设置最大连接数65534
注意:修改时先选择十进制,再填写数字。
5、重启系统
三、补充
误解了控制机分配的线程数,把控制机的线程数当成是分配的,其实是每个执行机执行的同样的线程数
![]()
四、附录
这篇文章中提及的错误,本次测试都遇到过。
https://www.cnblogs.com/jane4321/p/11013042.html
本文详细介绍了如何在JMeter中进行分布式部署,包括设置remote_hosts、启用SSL、解决内存溢出、空响应体问题、超时及并发限制,以及针对常见错误的解决方法。重点讨论了线程管理和监听器配置。
1万+

被折叠的 条评论
为什么被折叠?



