JMeter分布式测试:从Master启动Slave时遇连接超时求助
JMeter远程启动Slave连接超时问题排查方案
问题描述
从Master机器GUI通过Run-->Remote Start启动Slave机器时,出现以下错误:
Connection refused to host: 172.xx.x.xx; nested exception is: java.net.ConnectException: Connection timed out: connect
已尝试取消server.rmi.ssl.disable注释并设为true、开放TCP4000端口、确保JMeter/Java版本一致等操作,问题仍未解决。
排查与解决步骤
1. 确认Slave端JMeter Server启动状态
- 手动在Slave机器的命令行中进入JMeter bin目录,执行
jmeter-server.bat(Windows)或jmeter-server(Linux),观察控制台输出:- 若启动失败,根据报错信息先解决启动问题(如端口占用、配置加载错误);
- 若启动成功,会显示类似
Remote engines have started的提示。
2. 修正RMI端口配置
JMeter默认RMI端口不固定,需手动指定避免随机端口导致的防火墙拦截:
- Slave端:在
jmeter.properties中添加以下配置,然后重启JMeter Server:server.rmi.localport=4000 server_port=1099 - Master端:在
jmeter.properties中添加以下配置,然后重启JMeter GUI:client.rmi.localport=4001 remote_hosts=172.xx.x.xx:1099 - 防火墙需开放1099(RMI注册端口)、4000、4001的双向通行(入站+出站),同时检查杀毒软件自带防火墙是否拦截端口。
3. 解决create-rmi-keystore.bat无响应问题
- 不要双击运行,打开命令行cd到JMeter bin目录,手动执行
create-rmi-keystore.bat,查看命令行报错信息(常见原因:JAVA_HOME路径含空格未加引号、JDK版本不兼容)。 - 若仍无法运行,手动生成密钥对:
执行以下命令:
按提示输入信息后,将生成的keytool -genkey -alias rmi -keyalg RSA -storetype JKS -keystore rmi_keystore.jksrmi_keystore.jks复制到Master和Slave的JMeter bin目录,然后在双方的jmeter.properties中添加:server.rmi.ssl.keystore.type=JKS server.rmi.ssl.keystore.file=rmi_keystore.jks server.rmi.ssl.keystore.password=你的密钥密码 server.rmi.ssl.truststore.type=JKS server.rmi.ssl.truststore.file=rmi_keystore.jks server.rmi.ssl.truststore.password=你的密钥密码
4. 测试网络连通性
- 在Master机器执行:
若连接失败,说明网络或防火墙仍存在拦截,需进一步排查;telnet 172.xx.x.xx 1099 telnet 172.xx.x.xx 4000 - 执行
ping 172.xx.x.xx确认机器间基础网络连通,不通则先解决网络问题。
5. 强制生效SSL禁用配置
启动JMeter时直接添加参数确保配置生效,避免配置文件加载异常:
- Master启动GUI:
jmeter.bat -Jserver.rmi.ssl.disable=true - Slave启动Server:
jmeter-server.bat -Jserver.rmi.ssl.disable=true
6. 分析JMeter日志定位问题
查看Master和Slave端bin/jmeter.log文件,搜索RMI或Connection关键词,获取更具体的报错信息(如SSL初始化失败、端口绑定失败等)。
内容的提问来源于stack exchange,提问作者Chinni
相关产品推荐
相关产品推荐

