Jmeter配置内存的教程很多,但是很多都没说怎么查看是否生效,记录一下
windows下:
修改jmeter.bat文件内Xmx为3g
rem http://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
if not defined HEAP (
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms1g -Xmx3g -XX:MaxMetaspaceSize=256m
)
重启jmeter发现GLI里显示的还是Xmx1g
查找资料发现这里的HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m,只是做展示做,修改的配置不影响这里的,要想看是否生效,需要查看bin目录下jmeter.log文件,这里看到重启后内存已经显示最大为3g了
Linux同理:
修改jmeter文件下这段
# This is the base heap size -- you may increase or decrease it to fit your
# system's memory availability:
: "${HEAP:="-Xms1g -Xmx3g -XX:MaxMetaspaceSize=256m"}"
重启后查看jmeter.log文件
另外搜了下内存配置的资料,一并贴下
HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
-Xms1g
:这个参数设置JVM初始堆内存大小为1GB。-Xms
代表初始堆大小(Initial Heap Size),1g
表示1GB。这是JVM启动时分配给Java应用程序的内存量,用于存储对象实例。初始堆内存大小影响JVM的启动时间和性能;
-Xmx1g
:这个参数设置JVM最大堆内存大小为1GB。-Xmx
代表最大堆大小(Maximum Heap Size),1g
表示1GB。最大堆内存大小是JVM为Java应用程序分配的内存量的上限。如果应用程序需要的堆内存超过这个限制,将抛出OutOfMemoryError
异常;
-XX:MaxMetaspaceSize=256m
:这个参数设置JVM元空间(Metaspace)的最大大小为256MB。元空间是一种用于存储已被加载的类信息、常量、静态变量等数据的新兴垃圾回收器(Garbage Collector,简称GC)内存管理策略。它使用本地内存而不是传统的堆内;
举一个例子:假设你正在开发一个内存占用较大的Java应用程序,你可以根据实际需求调整这些参数。例如,将初始堆内存设置为512MB(-Xms512m
),最大堆内存设置为2GB(-Xmx2g
),元空间最大大小设置为512MB(-XX:MaxMetaspaceSize=512m
)。这样,JVM启动时会分配512MB的堆内存,随着应用程序的运行,如果堆内存使用量接近最大值,JVM会根据垃圾回收策略进行内存清理,以确保应用程序可以正常运行。如果应用程序需要的堆内存超过2GB,将抛出OutOfMemoryError
异常。同时,元空间最大大小设置为512MB,以确保元空间内存足够使用,避免GC暂停。