②找到set HEAP开头的内容,根据具体需要修改堆(heap)值大小,以及NEW分配的内存值大小:
set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
根据经验,heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU.
注意:JDK32位的电脑Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会报错
[attach]118246[/attach]
③修改完成后,关闭文件,重启jmeter即可。
PS:当需要模拟的线程数较大时,就需要根据具体情况采用分布式压测的方式了,这种修改堆大小的方法只适用一部分情况,并不是万能的!
2、linux环境下,修改jmeter.sh:
java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"
3、如果查看JDK的位数
# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment
(build 1.6.0_26-b03)
Java HotSpot(TM) Server VM
(build 20.1-b02, mixed mode)
如果是64位的话,最后一行会显示64-Bit
#java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment
(build 1.6.0_26-b03)
Java HotSpot(TM)
64-BitServer VM
(build 20.1-b02, mixed mode)
结束语
Jmeter是一个Java开发的开源性能测试工具,在性能测试中可支持模拟并发压测,但有时候当模拟并发请求较大或者脚本运行时间较长时,压力机会出现卡顿甚至内存溢出,这篇文档是我这两个星期执行性能测试以来的一些分析研究和总结,归纳整理出来,供以后需要的同学研究使用,提升工作效率,同时也是我们本身工作的一种积累和归档,希望能为后来人提供一些参考和借鉴。