CentOS上JMeter优化指南
/etc/security/limits.conf:提升JMeter进程的最大文件打开数和进程数,避免高并发下出现“Too many open files”错误。示例配置:* soft nofile 65535
* hard nofile 100000
* soft nproc 65535
* hard nproc 100000
/etc/sysctl.conf:调整内核参数以提升网络和内存性能。关键配置如下:vm.swappiness = 10 # 减少Swap使用优先级(值越低越优先使用物理内存)
vm.dirty_ratio = 20 # 内存脏页占比阈值(达到20%时触发后台刷脏)
vm.dirty_background_ratio = 10 # 后台刷脏页的阈值
net.core.somaxconn = 65535 # 最大连接队列长度(避免连接被拒绝)
net.ipv4.tcp_max_syn_backlog = 65535 # SYN队列长度(应对高并发连接请求)
net.ipv4.tcp_fin_timeout = 30 # FIN超时时间(快速释放连接)
net.ipv4.tcp_tw_reuse = 1 # 允许复用TIME_WAIT套接字(减少连接建立开销)
net.ipv4.tcp_slow_start_after_idle = 0 # 禁用空闲后慢启动(提升网络吞吐量)
net.core.default_qdisc = fq # 使用公平队列调度(优化多客户端网络公平性)
net.ipv4.tcp_congestion_control = bbr # 使用BBR拥塞控制算法(提升高带宽低延迟网络的吞吐量)
执行sysctl -p使配置生效。/etc/fstab中添加noatime,nodiratime选项,禁止记录文件访问时间,减少磁盘I/O开销。示例:/dev/sda1 /data xfs defaults,noatime,nodiratime 0 0
net.ipv4.tcp_congestion_control=bbr配置,提升高带宽低延迟网络的吞吐量(如10Gbps以上网络)。net.ipv4.tcp_window_size(如设置为10240000),提升网络传输效率。jmeter.sh:调整JMeter的JVM堆内存大小(根据服务器内存调整,建议-Xms和-Xmx设置为相同值,避免频繁扩容)。示例:export JVM_ARGS="-Xms4g -Xmx4g -XX:MaxMetaspaceSize=512m"
jmeter.sh中添加-XX:+UseG1GC,减少垃圾回收停顿时间,提升JMeter运行稳定性。jmeter -n -t test.jmx -l result.jtl -e -o /path/to/report
测试完成后,通过-e -o参数生成HTML报告(替代GUI中的“查看结果树”等监听器)。-l参数生成结果文件),减少内存消耗。jmeter.properties,设置server.rmi.ssl.disable=true(关闭SSL,简化配置)。jmeter.properties中添加Slave节点IP:remote_hosts=192.168.1.101:1099,192.168.1.102:1099。jmeter -n -t test.jmx -r命令启动分布式测试(-r表示自动启动所有Slave节点)。top、htop、free -h、iostat -x 1、iftop等命令监控CPU、内存、磁盘I/O、网络带宽的使用情况,及时发现瓶颈(如CPU使用率持续100%、Swap使用量过高)。setenforce 0)或永久关闭(修改/etc/selinux/config中的SELINUX=disabled),减少其对JMeter网络通信的影响。bin/results目录(存储测试结果文件),避免数据堆积占用磁盘空间。