JMeter依赖Java运行,需确保CentOS上安装了JDK 1.8及以上版本(推荐JDK 1.8),并正确配置JAVA_HOME环境变量。
java -version(若未安装,使用yum install -y java-1.8.0-openjdk-devel安装)。/etc/profile,添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
执行source /etc/profile使配置生效。JMeter连接失败常因端口被占用或系统端口耗尽(Address already in use、Cannot assign requested address)。
netstat -lnp | grep <端口号>(如1099)查看端口是否被占用,若被占用,修改JMeter端口(见下文)或关闭占用进程。jmeter.properties(位于JMETER_HOME/bin),调整以下参数:server_port=1099  # RMI服务端口(默认1099)
server.rmi.localport=1099  # RMI本地端口(默认随机,设为固定值)
/etc/sysctl.conf):net.ipv4.ip_local_port_range = 1024 65535  # 扩大可用端口范围
net.ipv4.tcp_tw_reuse = 1  # 允许TIME_WAIT端口复用
net.ipv4.tcp_fin_timeout = 30  # 缩短TIME_WAIT等待时间(秒)
执行sysctl -p使配置生效。JMeter 4.0及以上版本默认启用RMI SSL加密,若未配置密钥库,会报FileNotFoundException: rmi_keystore.jks错误。
jmeter.properties,设置:server.rmi.ssl.disable=true
rmi_keystore.jks:keytool -genkeypair -alias rmi -keyalg RSA -keystore rmi_keystore.jks -validity 365
将生成的rmi_keystore.jks复制到JMETER_HOME/bin目录,或在jmeter.properties中指定路径:server.rmi.ssl.keystore.file=rmi_keystore.jks
分布式测试时,Master需能访问Slave节点,需正确配置remote_hosts。
jmeter.properties(JMETER_HOME/bin),添加Slave的IP和端口(默认1099):remote_hosts=192.168.1.100:1099,192.168.1.101:1099  # 多个Slave用逗号分隔
./jmeter.sh -n -t test.jmx -R192.168.1.100:1099,192.168.1.101:1099
Slave节点启动jmeter-server时,可能因主机名解析或端口随机导致连接失败。
jmeter-server(JMETER_HOME/bin),取消注释并修改以下行:RMI_HOST_DEF=-Djava.rmi.server.hostname=<Slave本机IP>  # 如192.168.1.100
jmeter.properties,添加:server.rmi.localport=1099  # 设为固定端口,避免防火墙频繁修改规则
CentOS的firewalld或SELinux可能阻止JMeter的RMI通信(默认端口1099)。
systemctl stop firewalld
systemctl disable firewalld  # 永久关闭
firewall-cmd --permanent --add-port=1099/tcp
firewall-cmd --reload
setenforce 0)或添加端口规则:semanage port -a -t http_port_t -p tcp 1099  # 将1099端口加入http端口类型
确保Master与Slave之间网络可达,使用ping或telnet测试:
ping <Slave IP>  # 测试网络连通性
telnet <Slave IP> 1099  # 测试端口是否开放
若telnet失败,需检查网络配置(如防火墙、路由器ACL)。
JMeter的日志文件(JMETER_HOME/bin/jmeter.log)会记录详细的连接错误信息(如SocketTimeoutException、ConnectException),通过日志可快速定位问题根源(如端口被占用、Slave未启动、网络不通)。
通过以上步骤,可解决CentOS上JMeter常见的连接问题。若仍有异常,建议参考JMeter官方文档或社区论坛(如Stack Overflow)获取进一步帮助。