CentOS上提升JMeter稳定性的实用清单
一 运行环境与JVM
jmeter -n -t test.jmx -l result.jtl。在JMeter 5.x中,建议JDK 8及以上版本以获得更好的兼容性与GC表现。为JMeter设置合理的堆内存:在bin/jmeter或bin/jmeter.sh中调整HEAP,如-Xms2g -Xmx4g(一般不超过物理内存的2/3),并启用G1GC降低停顿:HEAP="-Xms2g -Xmx4g -XX:+UseG1GC"。同时设置JMETER_OPTS="-Djava.awt.headless=true"以彻底关闭AWT相关开销。二 操作系统与网络
/etc/security/limits.conf并重启会话或系统:* soft nofile 65536
* hard nofile 65536
* soft nproc 65565
* hard nproc 65565
root soft nofile 65536
root hard nofile 65536
root soft nproc 65565
root hard nproc 65565
/etc/sysctl.conf并执行sysctl -p:net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65000
net.core.somaxconn = 1024
这些设置有助于在高并发下减少端口耗尽、连接堆积与半开连接问题,从而提升稳定性与可预测性。三 JMeter关键配置
httpclient4.retrycount=1或0),避免重试干扰指标与放大后端压力。httpclient4.max_total=200、httpclient4.default.max_per_route=20),减少频繁建连带来的抖动。jmeter.save.saveservice.response_data),控制台摘要间隔可缩短(如summariser.interval=10),以降低I/O与GC压力并更快发现问题。四 分布式压测稳定性
jmeter.properties中统一关闭RMI SSL(便于排障):server.rmi.ssl.disable=true;在Slave启动前显式指定本机IP:RMI_HOST_DEF=-Djava.rmi.server.hostname=<SLAVE_IP>,并在remote_hosts中配置<SLAVE_IP>:<PORT>;必要时固定端口(如server_port=1567、server.rmi.localport=1567)并放通防火墙。多网卡环境下确保RMI绑定到业务可达IP,避免因回环地址或错误网卡导致Connection refused/超时。五 监控与常见故障排查
top/htop、vmstat、iostat观察CPU、内存、I/O、网络是否成为瓶颈;必要时调整I/O调度器(如deadline/noop)、适度降低swappiness以减少换页抖动(如设置为10),并优先保障压测机的资源独占与稳定性。jmeter-server.log、RMI端口连通性、以及是否存在双网卡/错误hostname导致的通信异常。