首页主机资讯Debian下JMeter如何进行分布式测试

Debian下JMeter如何进行分布式测试

时间2025-12-05 08:53:03发布访客分类主机资讯浏览555
导读:在 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_portremote_hosts 一致;必要时抓包或日志排查 RMI 连接问题
  • Master 负载:压测时尽量让 Master 只负责调度与聚合,不承担并发负载
  • 网络与带宽:大量结果回传会占用带宽,必要时减少监听器项或仅保留必要指标,避免 Master 成为瓶颈

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian下JMeter如何进行分布式测试
本文地址: https://pptw.com/jishu/764394.html
Debian系统如何解决JMeter内存溢出 Debian JS如何进行日志记录

游客 回复需填写必要信息