在进行大数据、高并发压测的过程性,有时会遇上JMeter卡死现象,使得测试无法进行,查看日志显示:java.lang.OutOfMemoryError: Java heap space
原因:运行jmeter机器的内存,占用较高,超过了jmeter设置的内存上限,内存溢出。
解决方案:
1、优化脚本,去除占用内存较大的组组件,通常包括:
1.1、避免单次压测过程中使用过多的线程,官网建议1000-2000。具体看机器的配置和启动应用的情况。(官网)
1.2、监听器里面配置写入到文件,不写入到文件的话所用监听结果存放在内存。还要注意不要使用“察看结果树”监听器。
1.3、运行压测过程中使用no-gui模式,不要使用界面压测,使用jmeter -n -t这样的命令去运行。
2、除了上面的注意事项,我们还可以通过修改jmeter内存设置,增大内存运行空间。下面是操作步骤
(1)windows下在jmeter.bat文件里面修改,如下图:
(2)linux下修改bin\jmeter文件,如下图
(3)启动时显示“ Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file”不是设置好的内存,这个可能会误导。
可以通过本地安装的JDK下的bin\jconsole.exe查看jmeter内存设置是否成功