使用Jmeter进行压力测试会遇到一段时间后报内存溢出的错误,导致Jmeter卡死。这是因为Jmeter默认的HEAP配置的太小了,解决办法如下:
1、Windows环境
修改jmeter.bat,如下两行:
set HEAP=-Xms512m -Xmx512m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms512m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=1024m
根据经验:HEAP最多设置为物理内存的一半,如果HEAP超过物理内存的一半,会导致Jmeter运行变慢甚至内存溢出,原因是Java比较吃内存,占CPU。
注意:JDK32位的电脑Xms不能超过1500M,最多1378M,否则启动Jmeter会报错。
2、Linux环境
修改jmeter.sh:
java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"
3、查看JDK位数
如果JDK是64位的话,最后一行会显示64-Bit,如果没有,则是32位的