jmeter.bat配置(主要關於OOM)

zzz紫川發表於2018-12-29

  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檔案儲存的路徑。

 

相關文章