一、系統級基礎優化
/etc/sysctl.conf
中的net.ipv4.tcp_tw_reuse=1
(重用TIME_WAIT連接)、net.core.somaxconn=4096
(增加連接隊列長度);關閉SELinux(setenforce 0
),減少其對JMeter網絡通信的限制;增大系統文件句柄限制(ulimit -n 65535
),避免高并發下出現“Too many open files”錯誤;同步服務器時間(ntpdate ntp.aliyun.com
),確保分布式測試時間一致性。二、JMeter自身配置優化
jmeter
啟動腳本(bin/jmeter
)中的HEAP
參數,設置合理的堆內存大?。ㄈ?code>HEAP="-Xms4g -Xmx4g -XX:MaxMetaspaceSize=512m"),避免頻繁垃圾回收導致的停頓;可進一步優化新生代比例(-XX:NewRatio=2
)和Survivor區比例(-XX:SurvivorRatio=8
),提升GC效率。jmeter -n -t test.jmx -l result.jtl -e -o ./report
),避免GUI模式的圖形渲染消耗大量內存(約30%額外開銷);測試完成后通過-e -o
參數生成HTML報告,替代GUI中的實時監聽器。三、分布式測試配置
jmeter.properties
中的remote_hosts
參數(如remote_hosts=192.168.1.101:1099,192.168.1.102:1099
),指定所有分布式節點的IP和端口;設置server.rmi.ssl.disable=true
,關閉SSL加密以減少通信開銷;確保所有節點時間同步(使用NTP服務)。四、性能監控與問題排查
top
(查看CPU、內存占用)、free -h
(查看內存使用)、df -h
(查看磁盤空間)、netstat -tulnp
(查看網絡連接)等命令實時監控系統狀態;安裝htop
(增強版top)、iotop
(查看磁盤I/O)等工具,更直觀地分析資源瓶頸。jmeter -n -t test.jmx -l result.jtl -j jmeter.log
),通過日志排查請求失敗、超時等問題;使用grep "ERROR" jmeter.log
過濾錯誤日志,快速定位異常。jstat -gcutil <pid> 1000
(每秒監控GC情況)、jvisualvm
(圖形化工具查看堆內存)等工具,觀察堆內存是否持續增長(如Old區占比超過70%且不下降);若存在內存泄漏,檢查腳本中是否有未關閉的資源(如HTTP連接、文件流),或優化集合使用(避免靜態集合無限增長)。五、其他優化技巧
result.jtl
、HTML報告),避免磁盤空間耗盡。