You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure容器主节点执行Taurus命令无法连接从节点,报java.rmi.MarshalException错误

Error at master node trying to connect to remote jmter slave node in same network
报错截图

排查步骤
  • 版本一致性校验:分别在主节点执行bzt -l查看Taurus内置JMeter版本,从节点执行jmeter -v确认部署的JMeter版本,两者大版本、小版本必须完全匹配,同时确认主从节点的JDK版本一致,避免跨版本导致RMI序列化不兼容。
  • 网络连通性校验:Azure容器环境默认限制跨容器端口访问,JMeter分布式测试默认需要开放1099(RMI注册端口)、4000-5000(RMI数据通信端口范围)的TCP通信,需确认容器所属NSG规则、容器组网络策略未屏蔽上述端口,可在主节点执行telnet <从节点IP> 1099验证端口连通性。
  • Hostname解析校验:RMI通信依赖hostname反向解析正常,需确认主节点可直接访问从节点的IP/hostname,从节点也可正常解析主节点的IP/hostname,解析异常可手动在容器/etc/hosts文件中添加主从节点的IP与hostname映射。
  • 配置项校验:检查Taurus调用JMeter的配置文件,是否正确配置了远程通信参数,包括RMI主机IP、远程从节点地址、SSL开关等。
解决方案

对应排查到的问题,可通过以下方式修复:

  • 版本不匹配:统一主从节点的JMeter版本和JDK版本,从节点安装和Taurus内置版本完全一致的JMeter,同时将主节点JMeter的lib/ext目录下所有第三方插件、自定义Jar包同步拷贝到所有从节点的对应目录,避免类找不到导致序列化失败。
  • 端口不通:可修改JMeter配置固定RMI通信端口,减少需要开放的端口数量:在主从节点的jmeter.properties中添加server_port=1099、server.rmi.localport=50000,再放开Azure容器的1099和50000端口的入站出站规则即可。
  • 配置错误:在Taurus的YAML配置文件中添加以下JMeter属性配置,确保RMI通信参数正确:
modules:
  jmeter:
    properties:
      server.rmi.ssl.disable: true
      client.rmi.ssl.disable: true
      java.rmi.server.hostname: <主节点实际内网IP>
      remote_hosts: <从节点1IP:1099,从节点2IP:1099>

从节点启动jmeter-server时添加参数:jmeter-server -Djava.rmi.server.hostname=<从节点实际内网IP>

内容的提问来源于stack exchange,提问作者divya kamath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:15:02