首页主机资讯JMeter分布式测试如何在Debian上实现

JMeter分布式测试如何在Debian上实现

时间2025-11-27 20:07:03发布访客分类主机资讯浏览438
导读:在 Debian 上部署 JMeter 分布式压测 一 架构与准备 架构说明:由一台主节点 Controller负责分发测试计划与汇总结果,多台从节点 Agent执行虚拟用户;默认情况下Controller 不参与发压,如需参与需将其也作...

在 Debian 上部署 JMeter 分布式压测

一 架构与准备

  • 架构说明:由一台主节点 Controller负责分发测试计划与汇总结果,多台从节点 Agent执行虚拟用户;默认情况下Controller 不参与发压,如需参与需将其也作为 Agent 启动。为减少兼容性问题,建议所有节点使用相同版本的 Java 与 JMeter。网络层面需保证节点间可互通,且开放必要端口(默认 RMI 1099 等)。
  • 安装 Java(Debian 示例,任选其一稳定版本):
    • OpenJDK 11:sudo apt-get update & & sudo apt-get install -y openjdk-11-jdk
    • OpenJDK 8:sudo apt-get update & & sudo apt-get install -y openjdk-8-jdk
  • 安装 JMeter(所有节点一致版本):
    • 下载并解压:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz & & tar -xzf apache-jmeter-5.4.3.tgz
    • 可选环境变量(便于全局执行):echo ‘export PATH=/opt/apache-jmeter-5.4.3/bin:$PATH’ > > /etc/profile & & source /etc/profile
  • 版本校验:java -version 与 jmeter -v 应返回一致且可用的版本信息。

二 节点配置

  • 主节点 Controller 配置(JMETER_HOME/bin/jmeter.properties):
    • 指定从节点:remote_hosts=192.168.1.101:1099,192.168.1.102:1099
    • 如各节点间证书不一致或仅内网测试,可临时关闭 RMI SSL:server.rmi.ssl.disable=true
  • 从节点 Agent 配置(JMETER_HOME/bin/jmeter.properties):
    • 指定服务端口(保持与主节点 remote_hosts 一致):server_port=1099
    • 关闭 RMI SSL:server.rmi.ssl.disable=true
    • 可选(多网卡/云主机):在 JMETER_HOME/bin/jmeter-server 中设置 RMI 主机名,例如:RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.101
  • 说明:
    • JMeter 不会在运行时做负载均衡,每台从节点都会完整执行一遍测试计划;Controller 默认不发压,如需参与发压,也在该机器启动 jmeter-server。

三 启动与执行

  • 启动从节点(各 Agent 上):
    • 前台:./jmeter-server
    • 后台:nohup ./jmeter-server -Djava.rmi.server.hostname=本机IP > jmeter-server.log 2> & 1 &
  • 在主节点执行测试:
    • 非 GUI 启动全部从节点:jmeter -n -t testplan.jmx -r -l result.jtl -e -o report
    • 非 GUI 指定从节点:jmeter -n -t testplan.jmx -R 192.168.1.101,192.168.1.102 -l result.jtl -e -o report
    • GUI 方式(仅用于调试):jmeter,在菜单 Run > Remote Start/Remote Start All 选择目标从节点
  • 结果查看:非 GUI 模式通过 -l 指定 JTL 结果文件,使用 -e -o 生成 HTML 报告;也可将 JTL 导入 GUI 的聚合报告等监听器查看。

四 常见问题与排查

  • 连接被拒绝或超时:检查从节点是否已启动 jmeter-server、网络是否可达、以及 1099 等端口是否放通(云主机需配置安全组/防火墙)。
  • 版本不一致导致异常:确保 Java 版本JMeter 版本在 Controller 与所有 Agent 上完全一致。
  • CSV 参数化路径不一致:JMeter 不会自动分发 CSV,需在所有从节点放置同名同路径的参数文件,或使用绝对路径并在各节点保持一致。
  • Controller 也参与发压:如需让 Controller 产生压力,需在该机器同样启动 jmeter-server,并将其 IP 加入 remote_hosts。
  • 总样本量计算:总样本数 = 线程数 × 循环次数 × 执行机总数(不含 Controller,除非它也作为 Agent 参与)。

五 网络与防火墙要点

  • 开放端口:至少放行 1099/TCP(RMI);如使用 SSL 或自定义端口,需同步放行对应端口。
  • 主机名解析:确保节点之间可通过主机名或 IP互相访问;多网卡/云环境建议在 jmeter-server 中显式设置 java.rmi.server.hostname 为本机对外 IP,避免回环或错选网卡。

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


若转载请注明出处: JMeter分布式测试如何在Debian上实现
本文地址: https://pptw.com/jishu/758229.html
如何挂载HFS+分区 Debian系统下如何解决JMeter连接问题

游客 回复需填写必要信息