Jmeter 踩坑记录(七)
1.master连不上Slave机
解决方法:telnet 192.168.xx.xx 1099 看IP 端口通不通,如果通 OK,不通,检查关闭防火墙或者开放端口
2.salve 连不上 master
解决方法:
(1)查看 jmeter-server 这个服务绑定该 agent机的IP是否正确
(2)或者修改Jmeter-server文件下的RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.xx.xx(salve 本地内网IP)
3.master可以ping通salve,salve也可以ping通master主机
遇到的问题:
启动remote测试后,Agent 机器 收到任务,且控制台显示:”Starting the test on host 192.168.xx.xx:1099 @ ***“,
说明控制机分派上agent机上的测试成功,但是一直卡在这里不动了,控制机一直没有显示,任务执行状况以及收到测试结果(任务一直不结束,卡住了)。
查看 salve 机上,日志文件:jmeter-server.log
推断原因是 agent 连不了控制机192.168.xx.xx,被拒绝,连接超时
解决方法:
因为本地多网段原因agent默认返回IP非内网IP,所以被拒
如Jmeter启动需要指定本机内网IP启动JUI
jmeter -Djava.rmi.server.hostname=本机内网IP
远程启动Linux执行机,Salve执行机接收指令并执行脚本,执行结果回传master主机
4.命令行指定IP执行参考
jmeter -n -t sometest.jmx -Djava.rmi.server.hostname=clientpublicip -Dclient.rmi.localport=4001 -Rremoteip1,remoteip2 -Gmyproperty=123 -l results.jtl
参考官方链接:http://gerardnico.com/wiki/jmeter/remote
5. Linux配置文件读取问题
解决方法:
将配置文件copy到jmeter/bin目录即可
6.单机端口不够用报错 java.net.BindException: Address already in use: connect
解决办法(在jmeter所在服务器操作):
(1)cmd中输入regedit命令打开注册表;
(2)在 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters右键Parameters;
(3)添加一个新的DWORD,名字为MaxUserPort;
(4)然后双击MaxUserPort,输入数值数据为65534,基数选择十进制;再添加TcpTimedWaitDelay,数值为30-300 选择十进制
(5)完成以上操作,务必重启机器
(6)可能还会出现,jmeter请求中的Use KeepAlive去掉勾选
7.单机性能限制,java.lang.outOfMemoryError: unnable to create new native thread 通常都是由于内存泄露导致堆栈内存不断增大,从而引发内存溢出
原因:
(1)内存泄露,应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源
(2)内存溢出,应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最大值,进而导致崩溃
解决方法:
调整jmeter jvm值:
linux: cd /usr/local/jmeter/apache-jmeter-5.2.1/bin/jmeter文件
修改前:"${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
修改后:"${HEAP:="-Xms8g -Xmx8g -XX:MaxMetaspaceSize=2048m"}" //8g为物理机内存的一半
windows同理修改jmeter.bat 切记不超过物理内存的一半
-----------------待补充-----------------------