首页主机资讯jmeter在centos上的故障排查

jmeter在centos上的故障排查

时间2025-12-04 13:48:03发布访客分类主机资讯浏览1061
导读:JMeter 在 CentOS 上的故障排查手册 一 快速定位路径 查看 JMeter 自身日志:在 JMETER_HOME/bin/jmeter.log 中定位插件加载、配置解析、启动失败等线索。 非 GUI 运行并输出日志:使用命令...

JMeter 在 CentOS 上的故障排查手册

一 快速定位路径

  • 查看 JMeter 自身日志:在 JMETER_HOME/bin/jmeter.log 中定位插件加载、配置解析、启动失败等线索。
  • 非 GUI 运行并输出日志:使用命令 jmeter -n -t test.jmx -l test.jtl;如需在报告中查看请求/响应,先在 bin/user.properties 开启保存项(见下文“结果不准确/无响应数据”)。
  • 远程执行与端口:分布式压测时使用 -r;确认 jmeter.propertiesremote_hosts 已正确填写执行机地址;必要时调整 server_portserver.rmi.localport 并放通防火墙。
  • 环境校验:执行 jmeter -vjava -version 确认版本匹配;JMeter 5.4.3 要求 Java 8+

二 常见故障与修复

  • 启动报错:Cannot start. Unable to get local host IP address(本地回环地址)
    原因多为 /etc/hosts 将本机名映射到了 127.0.0.1。修复:在 /etc/hosts 为本机名添加可路由的 IP 映射(如 10.x.x.x 主机名),确保解析到非回环地址。

  • 权限拒绝 Permission denied
    执行机目录权限不足。修复:对 JMeter 安装目录执行 chmod -R 755 apache-jmeter-

  • 分布式连接被拒或超时 Connection refused / timeout
    常见原因:防火墙未放行、RMI 主机名解析错误、端口不一致。排查步骤:

    1. 放通端口(示例): firewall-cmd --state 查看;systemctl stop firewalld 临时关闭或配置放行策略;
    2. jmeter-server 启动前设置本机 IP:导出变量 RMI_HOST_DEF=-Djava.rmi.server.hostname=< 本机IP>
    3. jmeter.properties 统一设置 server.rmi.ssl.disable=true(测试环境),并确认 server_portserver.rmi.localport 一致且未被占用;
    4. 若本机存在多网卡,确保 RMI 绑定到业务网卡的 IP。
  • 文件缺失 rmi_keystore.jks
    分布式 SSL 未配置导致。修复:在 jmeter.propertiesserver.rmi.ssl.disable 设为 true,或放置正确的密钥库文件。

  • 结果不准确或无响应数据
    常见原因:参数化/外部文件未同步、TCP 取样器类名不匹配、监听器过重。修复:

    1. 将参数文件同步到所有 slave 且内容一致;
    2. TCP 取样器按数据格式设置 TCPClient classname(文本:org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl;二进制:org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl;十六进制需设置结束符);
    3. 非 GUI 场景禁用 View Results Tree 等重监听器,并在 user.properties 开启必要字段:
      • jmeter.save.saveservice.output_format=xml
      • jmeter.save.saveservice.response_data=true
      • jmeter.save.saveservice.samplerData=true
      • jmeter.save.saveservice.requestHeaders=true
      • jmeter.save.saveservice.url=true
      • jmeter.save.saveservice.responseHeaders=true
  • 生成 HTML 报告报错 Mismatch between expected number of columns
    强制结束压测导致 jtl 尾部记录不完整。修复:删除 jtl 最后一行不完整记录后,再执行 jmeter -g test.jtl -e -o < report_dir> 生成报告。

  • ServerAgent 端口冲突 Address already in use
    默认 4444 端口被占用。修复:

    1. 查找并结束占用进程:lsof -i:4444kill -9
    2. 或修改 ServerAgent 的启动端口后重启。

三 性能与稳定性调优

  • JVM 内存
    编辑 bin/jmeterbin/jmeter.sh,为压测机设置合适的堆(不超过物理内存的约 2/3)。示例:在 jmeter.sh 中设置 JVM_ARGS=“-Xms2g -Xmx8g”,或在 jmeter 脚本中调整 HEAP 参数。

  • 文件句柄与进程数
    临时:ulimit -n 102400;永久:在 /etc/security/limits.conf 增加

      • soft/hard nofile 65536
      • soft/hard nproc 65565
  • 端口与 TCP 参数
    扩大本地端口范围并优化回收:在 /etc/sysctl.conf 增加

    • net.ipv4.ip_local_port_range = 1024 65000
    • net.ipv4.tcp_tw_reuse = 1
    • net.ipv4.tcp_fin_timeout = 30
      执行 sysctl -p 生效。
  • HTTP 客户端空闲超时
    jmeter.properties 设置 httpclient4.idletimeout=10000(毫秒),减少连接闲置导致的异常。

  • 监听器与脚本策略
    非 GUI 场景禁用 View Results Tree;使用 CSV 输出并减少保存字段;用 Groovy 替代 Beanshell;通过 定时器 控制节奏,避免突发洪峰。

四 分布式压测快速检查清单

  • 版本一致:控制机与执行机的 JMeter 版本 与 **JDK 版本(≥1.8)**保持一致。
  • 网络连通:控制机可 ping 通执行机;必要时关闭防火墙或放行 RMI/ServerAgent 端口。
  • 主机名解析:执行机 hostname/etc/hosts 映射一致,且 RMI 绑定到正确的 非回环 IP
  • 关键配置:
    • jmeter.propertiesremote_hosts 正确、server.rmi.ssl.disable=true(测试环境)、端口一致;
    • 启动执行机前导出 RMI_HOST_DEF=-Djava.rmi.server.hostname=< 本机IP>
    • 参数化/数据文件在 所有 slave 上一致。
  • 资源监控:使用 PerfMon 插件监控 CPU/内存/IO,便于定位瓶颈。

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


若转载请注明出处: jmeter在centos上的故障排查
本文地址: https://pptw.com/jishu/763500.html
如何在centos上优化jmeter内存使用 如何在centos上集成jmeter与CI/CD

游客 回复需填写必要信息