1. 程式人生 > >修改JMeter記憶體以適應更高的併發測試

修改JMeter記憶體以適應更高的併發測試

Jmeter做併發測試時,報錯 java.lang.OutOfMemoryError:gc overhead limit exceeded。

原因是jmeter預設分配記憶體的引數很小,256M吧。故而解決方法,就是增加記憶體。如果是用windows系統,用記事本開啟jmeter.bat檔案,修改:

使用jmeter進行壓力測試時遇到一段時間後報記憶體溢位outfmenmory錯誤,導致jmeter卡死了,先嚐試在jmeter.bat中增加了JVM_ARGS="-Xmx2048m -Xms2048m -Xmn256m -XX:PermSize=128m -Xss256k",但結果執行時間增加了,但最終還是報記憶體溢位,百度後按照網友的建議更改了如下設定後jmeter就沒有再卡了:

1、windows環境下,修改jmeter.bat

set HEAP=-Xms256m -Xmx256m set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 改為: set HEAP=-Xms256m -Xmx1024m set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m 根據經驗,heap最多設定為實體記憶體的一半,預設設定為512M.如果heap超過實體記憶體的一半,可能執行jmeter會慢,甚至出現記憶體溢位,原因java比較吃記憶體,佔CPU.
注意:JDK32位的電腦Xmx不能超過1500m,最大1378m.否則在啟動Jmeter時會報錯:

2、linux環境下,修改jmeter.sh: java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "[email protected]" 3、如果檢視JDK的位數
# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)

如果是64位的話,最後一行會顯示64-Bit
#java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit
Server VM (build 20.1-b02, mixed mode)