一、單擊壓測過程當中使用過多的線程,官網建議1000-2000。具體看機器的配置和啓動應用的狀況。(A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of test.)html
(官網:http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html)java
二、監聽器裏面配置寫入到文件,不寫入到文件的話所用監聽結果存放在內存。還要注意不要使用「察看結果樹」監聽器。apache
三、運行壓測過程當中使用no-gui模式,不要使用界面壓測,使用jmeter -n -t這樣的命令去運行。
app
在咱們測試的過程當中,線程數過多時經常會致使內存溢出,接下來小編爲你們提供內存溢出的解決方法:測試
1.在jmeter的bin目錄下面找到jmeter.properties文件,以記事本形式打開進行編輯ui
2.在文件中找到如下字段進行修改spa
Windows環境下面進行修改線程
將htm
set HEAP =-Xms256m -Xmx256mblog
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時會出現下面的報錯
下面介紹下在Linux系統上面如何進行修改:
Linux環境上面修改jmeter (不用jmeter.sh)
1.方法1:
在jmeter文件開頭加上
JAVA_HOME=/apps/jdk1.8.0_121 #若是須要指定java版本能夠,可使用加上
JVM_ARGS="$JVM_ARGS -Xms2G -Xmx10G -XX:MaxPermSize=4096m"
方法2:
替換jmeter文件的最後一句話爲:
java $JVM_ARGS -Xms2G -Xmx10G -XX:MaxPermSize=512m -jar `dirname $0`/ApacheJMeter.jar "$@"
若是是 jdk8+,去掉-XX:MaxPermSize=512m參數, 這個參數jdk7如下支持
若是查看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)
內存泄露是指你的應用使用資源以後沒有及時釋放,致使應用內存中持有了不須要的資源,這是一種狀態描述;
內存溢出是指你應用的內存已經不能知足正常使用了,堆棧已經達到系統設置的最大值,進而致使崩潰,這事一種結果描述;
一般都是因爲內存泄露致使堆棧內存不斷增大,從而引起內存溢出。
在利用jmeter測試過程當中,若是內存溢出的話,通常會出現這個提示:java.lang.OutOfMemoryError: Java heap space:意思就是堆內存溢出,不夠用了。