一、背景:
在进行大数据、高并发压测的过程性,有时会遇上JMeter卡死现象,使得测试无法进行,查看日志显示:java.lang.OutOfMemoryError: Java heap space
原因:运行jmeter机器的内存,占用较高,超过了jmeter设置的内存上限,内存溢出。
我们需要给jmeter配置足够大的内存。
二、win环境下修改jmeter内存
1、查找jmeter安装路径
可以去环境变量配置文件查看安装位置,或者使用命令
which jmeter
2、修改/apache-jmeter-5.4.3/bin/ 目录下的 jmeter.bat文件
将jmeter.bat 中的,这一行
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
HEAP 堆
-Xms:JVM初始分配的堆内存。表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JAVA堆将会自动扩容到-Xmx大小。
-Xmx:JVM最大允许分配的堆内存,按需分配。表示java堆可以扩展到的最大值,在很多情况下,通常将-Xms和-Xmx设置成一样的,因为当堆不够用而发生扩容时,会发生内存抖动影响程序运行时的稳定性。
这里我们将 -Xms -Xmx设置成 1个g
MaxMetaspaceSize:jvm中的元数据区。 一般256m就够了。
三、mac&linux环境下修改jmeter内存
1、查找jmeter安装路径
可以去环境变量配置文件查看安装位置,或者使用命令
which jmeter
2、修改/apache-jmeter-5.4.3/bin/ 目录下的 jmeter文件
HEAP 堆:
-Xms:JVM初始分配的堆内存。表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JAVA堆将会自动扩容到-Xmx大小。
-Xmx:JVM最大允许分配的堆内存,按需分配。表示java堆可以扩展到的最大值,在很多情况下,通常将-Xms和-Xmx设置成一样的,因为当堆不够用而发生扩容时,会发生内存抖动影响程序运行时的稳定性。
这里我们将 -Xms -Xmx设置成 1个g。通常将-Xms和-Xmx设置成一样的
MaxMetaspaceSize:jvm中的元数据区。 一般256m就够了。
将jmeter文件(注意不是jmeter.bat文件),这一行
: "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
修改 -Xms -Xmx
四、验证内存是否修改成功
1、修改完成后重新启动jmeter
2、启动jconsole 查看jmeter的内存
win 启动 jconsole:
Program Files\Java\jdk1.8.0_211\bin\jconsole.exe
mac 启动jconsole:
直接在终端中输入 jconsole (忘了是否需要配置jconsole环境变量了)
1、(先启动jmeter)再启动 jconsole
2、本地进程,选择ApacheJMeter.jar
选择不安全的连接
选择VM概要
XX:MaxMetaspaceSize=1024m
这里显示我们修改后的值,则修改成功。
版权归原作者 做测试的喵酱 所有, 如有侵权,请联系我们删除。