jmeter centos集群怎么部署
小樊
41
2025-12-25 15:24:40
JMeter CentOS 集群部署指南
一 架构与准备
- 角色划分:部署 1 台 Master(控制机) + N 台 Slave(负载机),所有节点处于同一内网网段,建议 千兆互联。
- 版本一致:所有节点统一 JDK 8 或 JDK 11,统一 JMeter 版本(如 5.4.x/5.5),避免混用导致 RMI 不兼容。
- 系统与安全:建议创建专用用户 jmeter 运行 JMeter;各节点开启 NTP 时间同步;内网 DNS 不稳定时在各节点配置 /etc/hosts 主机名映射;必要时仅开放指定端口而非关闭防火墙。
- 资源基线:单台 2–3GHz CPU 的 JMeter 实例通常可支撑约 1000–2000 线程(取决于协议与处理逻辑)。
二 安装与基础配置
- 安装 JDK 与 JMeter(所有节点)
- 安装 JDK 并设置 JAVA_HOME;下载解压 JMeter 至 /opt/apache-jmeter-,设置 JMETER_HOME 与 PATH。
- 示例(以 JMeter 5.4.1 为例):
- 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 解压:tar -xzf apache-jmeter-5.4.1.tgz -C /opt
- 环境变量(/etc/profile 或 ~/.bashrc):
- export JAVA_HOME=/usr/java/jdk1.8.0_201
- export JMETER_HOME=/opt/apache-jmeter-5.4.1
- export PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin
- 启动脚本权限(所有节点)
- chmod +x $JMETER_HOME/bin/jmeter $JMETER_HOME/bin/jmeter-server
- 建议:使用 非 root 用户(如 jmeter)运行 JMeter,便于权限与审计管理。
三 关键配置
- 关闭 RMI SSL(所有节点,简化内网部署)
- 在 $JMETER_HOME/bin/jmeter.properties 中设置:
- server.rmi.ssl.disable=true
- Slave 节点配置(每台负载机)
- 固定 RMI 端口,便于防火墙放行:
- 在 jmeter.properties:server_port=1099;server.rmi.localport=1099
- 指定本机 RMI 主机名(避免解析错误):
- 编辑 $JMETER_HOME/bin/jmeter-server,在文件顶部加入(示例为内网 IP):
- RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.10.11
- Master 节点配置(控制机)
- 声明所有 Slave:在 jmeter.properties 设置
- remote_hosts=192.168.10.11:1099,192.168.10.12:1099,192.168.10.13:1099
- 固定 Master 本地 RMI 端口(可选,便于防火墙):
- client.rmi.localport=60000
- 脚本与数据文件
- 将 .jmx 脚本与各 CSV/依赖文件 放到所有 Slave 的相同路径下(或使用相对路径并在各 Slave 保持一致的工作目录)。
四 端口与防火墙
- 常用端口
- 1099/TCP:RMI 注册端口(Master 连接 Slave 使用)。
- server.rmi.localport(示例 1099/TCP):Slave 本地 RMI 端口。
- client.rmi.localport(示例 60000/TCP):Master 本地 RMI 端口(可选)。
- firewalld 放行示例(CentOS 7)
- 在每台 Slave:
- firewall-cmd --zone=public --add-port=1099/tcp --permanent
- firewall-cmd --reload
- 在 Master(若固定了 client.rmi.localport):
- firewall-cmd --zone=public --add-port=60000/tcp --permanent
- firewall-cmd --reload
- 云环境:同时放行 安全组 对应端口。
- 连通性自检:在 Master 执行 telnet slave_ip 1099 验证端口可达。
五 启动与验证
- 启动顺序
- 各 Slave:nohup $JMETER_HOME/bin/jmeter-server &(或使用 systemd 托管为服务)
- Master:
- GUI:jmeter,菜单 Run → Remote Start/Remote Start All
- 非 GUI(推荐):
- jmeter -n -t test.jmx -R 192.168.10.11:1099,192.168.10.12:1099 -l result.jtl -e -o report/
- 结果校验
- 总样本数 = 线程数 × 循环次数 × 负载机数量(示例:2 线程 × 2 循环 × 2 台 = 8 次样本)。
- 查看 聚合报告 与 jmeter.log/jmeter-server.log 定位问题。
- 常见问题速查
- 连接被拒绝/超时:检查 Slave 是否运行 jmeter-server、端口是否放行、网络与 hosts 解析是否正确。
- 找不到 rmi_keystore.jks:确认已设置 server.rmi.ssl.disable=true。
- 文件找不到(CSV/依赖):确认各 Slave 路径与 Master 一致。
- Master 也参与发压:如需 Master 参与,在 GUI 勾选 “Run test on localhost” 或在命令行包含 Master 的 remote_hosts 项。