JMeter 在 CentOS 上的故障排查手册
一 快速定位路径
二 常见故障与修复
启动报错: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 主机名解析错误、端口不一致。排查步骤:
文件缺失 rmi_keystore.jks
分布式 SSL 未配置导致。修复:在 jmeter.properties 将 server.rmi.ssl.disable 设为 true,或放置正确的密钥库文件。
结果不准确或无响应数据
常见原因:参数化/外部文件未同步、TCP 取样器类名不匹配、监听器过重。修复:
生成 HTML 报告报错 Mismatch between expected number of columns
强制结束压测导致 jtl 尾部记录不完整。修复:删除 jtl 最后一行不完整记录后,再执行 jmeter -g test.jtl -e -o <report_dir> 生成报告。
ServerAgent 端口冲突 Address already in use
默认 4444 端口被占用。修复:
三 性能与稳定性调优
JVM 内存
编辑 bin/jmeter 或 bin/jmeter.sh,为压测机设置合适的堆(不超过物理内存的约 2/3)。示例:在 jmeter.sh 中设置 JVM_ARGS=“-Xms2g -Xmx8g”,或在 jmeter 脚本中调整 HEAP 参数。
文件句柄与进程数
临时:ulimit -n 102400;永久:在 /etc/security/limits.conf 增加
端口与 TCP 参数
扩大本地端口范围并优化回收:在 /etc/sysctl.conf 增加
HTTP 客户端空闲超时
在 jmeter.properties 设置 httpclient4.idletimeout=10000(毫秒),减少连接闲置导致的异常。
监听器与脚本策略
非 GUI 场景禁用 View Results Tree;使用 CSV 输出并减少保存字段;用 Groovy 替代 Beanshell;通过 定时器 控制节奏,避免突发洪峰。
四 分布式压测快速检查清单