Debian下JMeter如何进行分布式测试
导读:在 Debian 上进行 JMeter 分布式测试 一 架构与前提 架构说明:使用一台控制机 Master分发测试计划,多台执行机 Slave并行执行并把结果回传,由 Master 汇总。适合单机资源不足或需要更高并发的场景。 版本一致:...
在 Debian 上进行 JMeter 分布式测试
一 架构与前提
- 架构说明:使用一台控制机 Master分发测试计划,多台执行机 Slave并行执行并把结果回传,由 Master 汇总。适合单机资源不足或需要更高并发的场景。
- 版本一致:所有节点安装相同版本的 Java 与 JMeter(含插件),避免兼容性问题。
- 网络连通:Master 与所有 Slave 之间网络低延迟、稳定可达;同一局域网优先。
- 资源规划:每台 Slave 的并发能力受 CPU/内存/网络 限制,合理分配线程数,避免把 Master 也作为负载机参与压测。
二 环境准备与安装
- 安装 Java(Debian 推荐 OpenJDK 11):
- sudo apt-get update
- sudo apt-get install -y openjdk-11-jdk
- 安装 JMeter(示例为 5.4.3,可按需调整版本):
- wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
- tar -xzf apache-jmeter-5.4.3.tgz
- sudo ln -sfn $PWD/apache-jmeter-5.4.3 /opt/jmeter
- 环境变量(可选,便于全局执行):
- echo ‘export JMETER_HOME=/opt/jmeter’ > > /etc/profile.d/jmeter.sh
- echo ‘export PATH=$JMETER_HOME/bin:$PATH’ > > /etc/profile.d/jmeter.sh
- source /etc/profile.d/jmeter.sh
- 验证安装:
- java -version
- jmeter -v
三 配置 Master 与 Slave
- 在所有节点编辑 JMeter 配置:
- 打开文件:$JMETER_HOME/bin/jmeter.properties
- 建议统一关闭 RMI SSL(测试环境):server.rmi.ssl.disable=true
- 如需自定义端口,设置:server_port=1888(示例端口,确保各 Slave 唯一且未被占用)
- Slave 节点:
- 可选:固定本机 RMI 主机名/IP,编辑 $JMETER_HOME/bin/jmeter-server,取消注释并设置 RMI_HOST_DEF,例如:RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.101
- 启动服务:cd $JMETER_HOME/bin & & ./jmeter-server
- Master 节点:
- 配置 remote_hosts,填入所有 Slave 的 IP:端口(端口与 Slave 的 server_port 一致):remote_hosts=192.168.1.101:1888,192.168.1.102:1888
- 如需指定仅启动部分节点:remote_hosts=192.168.1.101:1888
- 防火墙放行(Debian 常用 UFW):
- 放行 RMI 端口(示例 1888):sudo ufw allow 1888/tcp
- 如启用 RMI SSL 需放行 1099/tcp;如使用 NTP 同步时间,放行 123/udp
- 验证:sudo ufw status
四 运行测试
- GUI 方式(仅用于调试,压测请用 CLI):
- 在 Master 执行:jmeter
- 菜单 Run → Remote Start/Remote Start All,选择目标 Slave 或全部启动
- 非 GUI 方式(推荐):
- 启动全部 Slave:jmeter -n -t testplan.jmx -r
- 启动指定 Slave:jmeter -n -t testplan.jmx -R 192.168.1.101:1888,192.168.1.102:1888
- 输出报告:jmeter -n -t testplan.jmx -r -l result.jtl -e -o report
- 结果说明:
- 汇总结果在 Master 端生成;如需更细粒度分析,可结合 Aggregate Report/Summary Report 查看响应时间、吞吐量等指标
五 常见问题与最佳实践
- 时间同步:分布式场景建议启用 NTP,避免时间戳跳跃影响分析
- 安装与启动:sudo apt-get install -y ntp & & sudo systemctl enable --now ntp
- 验证:ntpq -p;必要时手动校时(如 ntpdate),确保节点间偏差尽可能小
- 参数化与资源文件:CSV/数据文件需在所有 Slave 相同路径各放一份,脚本中 CSV Data Set Config 的 Filename 使用一致路径
- 版本与插件一致:Master/Slave 保持 JMeter 与插件版本一致,减少序列化/执行差异
- 端口与连通性:确认 server_port 与 remote_hosts 一致;必要时抓包或日志排查 RMI 连接问题
- Master 负载:压测时尽量让 Master 只负责调度与聚合,不承担并发负载
- 网络与带宽:大量结果回传会占用带宽,必要时减少监听器项或仅保留必要指标,避免 Master 成为瓶颈
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下JMeter如何进行分布式测试
本文地址: https://pptw.com/jishu/764394.html
