首页主机资讯如何在CentOS上部署JMeter集群进行测试

如何在CentOS上部署JMeter集群进行测试

时间2026-01-19 19:46:03发布访客分类主机资讯浏览646
导读:在 CentOS 上部署 JMeter 分布式集群 一 架构与前置准备 架构说明:选择一台作为控制机 Master,其余作为执行机 Slave。Master 负责分发脚本、启停与汇总结果;Slave 仅执行请求并把结果回传。为提高稳定性,...

在 CentOS 上部署 JMeter 分布式集群

一 架构与前置准备

  • 架构说明:选择一台作为控制机 Master,其余作为执行机 Slave。Master 负责分发脚本、启停与汇总结果;Slave 仅执行请求并把结果回传。为提高稳定性,建议 Master 与 Slave 分离部署,且 Master 默认不参与发压
  • 版本一致:所有节点使用相同版本的 JDK 与 JMeter,混用版本可能导致兼容性问题。
  • 网络与时间:所有主机在同一网段,并开启时间同步(如 chrony/ntpd),避免 RMI 与证书校验异常。
  • 资源基线:在约2–3 GHz CPU的单机上,单个 JMeter 客户端通常可支撑约1000–2000 线程(取决于取样器类型与业务复杂度)。

二 安装与基础配置

  • 安装 JDK 与 JMeter(所有节点)
    • 安装 JDK 8(推荐 64 位),配置环境变量(/etc/profile 或 ~/.bashrc):
      • export JAVA_HOME=/usr/java/jdk1.8.0_xxx
      • export PATH=$JAVA_HOME/bin:$PATH
    • 安装 JMeter(解压至如 /opt/apache-jmeter-5.x),配置环境变量:
      • export JMETER_HOME=/opt/apache-jmeter-5.x
      • export PATH=$JMETER_HOME/bin:$PATH
    • 验证:java -version 与 jmeter -v 正常返回版本号。
  • 内存调优(所有节点)
    • 编辑 JMeter 启动脚本(如 bin/jmeter 或 jmeter.sh),调整 HEAP,例如:-Xms2g -Xmx2g(建议 Xms 与 Xmx 一致;通常不超过物理内存的 50%–80%,视机器资源而定)。
  • 时间同步(所有节点)
    • 例如:sudo yum install -y chrony & & sudo systemctl enable --now chronyd & & sudo chronyc sources。

三 集群配置步骤

  • Slave 节点配置
    • 关闭 RMI SSL(内网压测常用):在 bin/jmeter.properties 或 bin/user.properties 中设置
      • server.rmi.ssl.disable=true
    • 固定 RMI 端口(便于防火墙放行):在 bin/jmeter.properties
      • server_port=1099
      • server.rmi.localport=1099
    • 指定本机 RMI 主机名(多网卡/虚 IP 场景尤为重要):编辑 bin/jmeter-server,设置
      • RMI_HOST_DEF=-Djava.rmi.server.hostname=本机内网IP
    • 启动:nohup ./jmeter-server -Djava.rmi.server.hostname=本机IP &
  • Master 节点配置
    • 关闭 RMI SSL(与控制机一致):server.rmi.ssl.disable=true
    • 配置远程节点列表:在 bin/jmeter.properties
      • remote_hosts=slave1_ip:1099,slave2_ip:1099,slave3_ip:1099
  • 防火墙与端口(所有节点按需)
    • 放行 1099(RMI)与 Slave 的 server.rmi.localport(如 1099/2099 等):
      • firewall-cmd --zone=public --add-port=1099/tcp --permanent
      • firewall-cmd --zone=public --add-port=2099/tcp --permanent
      • firewall-cmd --reload
  • 依赖文件与路径
    • 脚本中如有 CSV 参数化/依赖文件,需在各 Slave 相同路径放置同名文件,否则会报文件未找到或数据不一致。

四 执行测试与结果收集

  • 非 GUI 命令行(推荐)
    • 基本执行(指定 Slave 列表):
      • jmeter -n -t your_plan.jmx -R slave1_ip:1099,slave2_ip:1099 -l result.jtl -j run.log
    • 生成 HTML 报告(Dashboard):
      • jmeter -n -t your_plan.jmx -R slave1_ip:1099,slave2_ip:1099 -l result.csv -e -o report
    • 说明:-R 覆盖 remote_hosts;-l 输出 JTL/CSV;-e -o 生成报告目录;-j 指定日志。
  • GUI 方式(仅用于调试)
    • 在 Master 启动 GUI:jmeter
    • 菜单 Run → Remote Start/Remote Start All 选择目标 Slave 或全部节点执行。
  • 结果汇总与校验
    • 总样本数 ≈ 线程数 × 循环次数 × Slave 数量(不含控制器自带线程组)。
    • 报告关注:Aggregate Report(Samples、Average、90%/95%/99% Line、Error%、Throughput)与 Dashboard(响应时间分布、TPS 等)。

五 常见问题与优化建议

  • 版本与依赖
    • Master 与 Slave JMeter/JDK 版本必须一致;若脚本使用插件/自定义 JAR,需在各 Slave 的 lib/ext 同步相同依赖,避免解析失败。
  • 内存与 GC
    • 出现 OutOfMemoryError 时增大 HEAP(如 -Xms2g -Xmx2g),并优先使用非 GUI模式执行;必要时减少监听器(如关闭查看结果树)。
  • 多网卡/虚 IP
    • 明确设置 Slave 的 java.rmi.server.hostname 为与控制机通信的内网 IP,否则 Master 可能连不通或回传异常。
  • 端口与防火墙
    • 固定 server_port 与 server.rmi.localport,并在防火墙放行;如仍不通,检查云安全组/本机 iptables。
  • 文件与路径
    • CSV/附件/证书等依赖必须在所有 Slave 同路径;否则会出现空数据或 0 样本。
  • Master 负载
    • Master 仅做调度与汇总,建议不要参与发压;大规模集群时可考虑多 Master 分担或仅保留轻量汇总职责。
  • 网络与端口耗尽
    • 大规模短连接压测时,注意本机/中间设备端口与连接回收策略,必要时扩大可用端口范围与优化 TCP 参数。

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


若转载请注明出处: 如何在CentOS上部署JMeter集群进行测试
本文地址: https://pptw.com/jishu/786136.html
CentOS系统中JMeter测试报告如何生成 CentOS HDFS文件系统特点

游客 回复需填写必要信息