JMeter分布式压测无结果返回至服务端问题求助
JMeter分布式压测结果不返回+RMI错误修复方案
核心排查与修复步骤
1. 修正RMI端口配置逻辑
你之前在客户端设置server.rmi.localport是错误的——这个参数是远程服务端节点用来指定RMI本地监听端口的,客户端不需要配置。正确操作:
- 打开每个远程服务端的
jmeter.properties,添加/修改:server.rmi.localport=1234 - 同时给服务端配置固定的结果回传端口,避免随机端口被防火墙拦截:
server.rmi.port=1235 - 客户端只需要在
jmeter.properties里指定远程节点:remote_hosts=服务端IP:1099 - 确保服务端防火墙/安全组放行1099、1234、1235这三个端口,客户端和服务端互相用
telnet 对方IP 端口验证连通性。
2. 修正RMI密钥与SSL配置
“no such object in table”错误常和RMI对象传输异常有关,建议重新检查密钥配置:
rmi_keystore.jks必须同时放在客户端和所有服务端的bin目录,之前只放客户端是错误的- 确保服务端运行JMeter的用户有读取该密钥文件的权限
- 恢复SSL配置(禁用SSL易导致对象传输问题),客户端和服务端的
jmeter.properties保持一致:server.rmi.ssl.disable=false rmi.keystore.file=rmi_keystore.jks rmi.keystore.password=changeit
3. 解决服务端卡顿与结果回传问题
服务端卡顿但日志无信息,先升级日志级别抓细节:
- 在服务端
jmeter.properties设置:log_level.jmeter=DEBUG - 重启服务端后执行测试,查看
jmeter-server.log中的RMI相关错误栈,定位连接超时或对象传输失败的具体原因。
4. 用CLI模式做最小化验证
排除GUI干扰,用最简测试计划(线程组+HTTP请求+查看结果树)测试:
- 服务端启动命令:
手动指定IP避免服务端返回回环地址导致客户端无法连接jmeter-server -Djava.rmi.server.hostname=服务端实际IP - 客户端启动命令:
jmeter -n -t testplan.jmx -r
5. 排查版本与组件兼容性
- 再次核对客户端和服务端的JMeter、Java版本,小版本也要完全一致(比如Java 11.0.15 vs 11.0.16可能存在序列化差异)
- 测试计划中如果有自定义插件,确保所有服务端都安装了相同版本的插件,否则会导致结果对象无法序列化传输。
内容的提问来源于stack exchange,提问作者Le Phuc
相关产品推荐
相关产品推荐

