jmeter.bat配置(主要关于OOM)

  jmeter.bat是jmeter在windows系统下的启动文件。在使用jmeter压测,线程数设置过多时可能会报内存溢出(Out Of Memory Error),这时候可以去尝试调整一下jmeter.bat文件里面默认的配置。

  注:我使用的jmeter版本是3.2,有时候在Q群看到有人问安装一个插件之后为什么报错,这时候需要注意是不是版本兼容性问题,很多插件都比jmeter版本滞后了。

1、堆值(Heap)

一般来说,堆值Heap最多设置为物理内存的一半,默认为512M。如果此值超过物理内存的一半,jmeter运行速度会变慢,甚至会出现“内存溢出”错误。(Xms、Xmx的含义看下面)

我设置的为【set HEAP=-Xms256m -Xmx1024m】。说明:jdk32位的电脑Xmx不能超过1400,最高为1378。

----------------------------------------------------------分割线---------------------------------------------------------------

如果服务器端报错“内存溢出”,进入Tomcat,修改JVM的maxheapmemory。在%CATALINA_HOME%\bin目录下,catalina.bat文件:echo Using CATALINA_BASE: %CATALINA_BASE%之前,加上:

set JAVA_OPTS=%JAVA_OPTS% -server –Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M

参数说明:

Xms:Tomcat中JVM内存初始设置参数,默认为512M;

Xmx:Tomcat中JVM内存最大设置参数,默认为512M;

-XX:PermSize=256M
设置永久域(非堆内存)的初始值,默认是物理内存的1/64, 建议不要超过256M;
-XX:MaxPermSize=512M
设置永久域的最大值,默认是物理内存的1/4,建议修改为512M;

----------------------------------------------------------------------------------------------------------------------------------

2、GC相关设置

这个是JVM中GC算法的一个相关设置,其中:

1)MaxGCPauseMillis:每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。(此参数请谨慎使用!)

2)G1ReservePercent:使用g1收集器时设置的保留java堆大小,防止JVM在回收存活或者晋升对象的时候,栈区域溢出发生失败。范围是0到50,默认是10%。

 

3、发生OOM时,生成分析文件

在发生OOM时dump出当前的内存转储快照,生成dump文件(可用mat分析),默认存储在jvm运行环境目录。后面也可以添加参数-XX:HeapDumpPath=/path/heap/dump,说明dump文件存储的路径。

 

posted @ 2018-12-29 15:47  zzz紫川  阅读(3821)  评论(0编辑  收藏  举报