jmeter压测过程中内存溢出
轉(zhuǎn)載自:https://www.cnblogs.com/imyalost/p/7901064.html? 老_張
jmeter是一個(gè)java開發(fā)的開源性能測試工具,在性能測試中可支持模擬并發(fā)壓測,但有時(shí)候當(dāng)模擬并發(fā)請求較大或者腳本運(yùn)行時(shí)間較長時(shí),壓力機(jī)會(huì)出現(xiàn)卡頓甚至報(bào)異常————內(nèi)存溢出,
這里就介紹下如何解決內(nèi)存溢出及相關(guān)的知識(shí)點(diǎn)。。。
?
首先來看看我們常說的內(nèi)存泄漏、內(nèi)存溢出是什么?
內(nèi)存泄露是指你的應(yīng)用使用資源之后沒有及時(shí)釋放,導(dǎo)致應(yīng)用內(nèi)存中持有了不需要的資源,這是一種狀態(tài)描述;
內(nèi)存溢出是指你應(yīng)用的內(nèi)存已經(jīng)不能滿足正常使用了,堆棧已經(jīng)達(dá)到系統(tǒng)設(shè)置的最大值,進(jìn)而導(dǎo)致崩潰,這事一種結(jié)果描述;
通常都是由于內(nèi)存泄露導(dǎo)致堆棧內(nèi)存不斷增大,從而引發(fā)內(nèi)存溢出。
在利用jmeter測試過程中,如果內(nèi)存溢出的話,一般會(huì)出現(xiàn)這個(gè)提示:java.lang.OutOfMemoryError:?Java?heap?space:意思就是堆內(nèi)存溢出,不夠用了。
?
說到堆棧內(nèi)存,順帶簡單介紹下堆棧的相關(guān)知識(shí):
更詳細(xì)的內(nèi)容請參照這里:百度百科:堆棧
?
內(nèi)存溢出解決方法:調(diào)整堆內(nèi)存大小
步驟:
1、打開jmeter安裝文件(可以用notepad++打開),bin目錄下的jmeter.bat文件:
2、找到set HEAP開頭的內(nèi)容,根據(jù)具體需要修改堆(heap)值大小,以及NEW分配的內(nèi)存值大小:
這里默認(rèn)值為:
set HEAP=-Xms512m -Xmx512m
set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m
將其修改為:
set HEAP=-Xms512m -Xmx4096m
set NEW=-XX:NewSize=256m -XX:MaxNewSize=512m
注意:一般而言,堆的最大值不要超過物理內(nèi)存的一半,否則容易導(dǎo)致jmeter運(yùn)行變慢、卡頓甚至內(nèi)存溢出(因?yàn)閖ava本身的垃圾回收機(jī)制是動(dòng)態(tài)分配內(nèi)存,
調(diào)整時(shí)候其本身會(huì)占用很多內(nèi)存),NEW分配的內(nèi)存,不宜太大!
3、修改完成后,關(guān)閉文件,重啟jmeter既可以:
PS:當(dāng)需要模擬的線程數(shù)較大時(shí),就需要根據(jù)具體情況采用分布式壓測的方式了,這種修改堆大小的方法只適用一部分情況,并不是萬能的!
? ? ? ? ? ?
?
?
或者另一種解決方法:
.設(shè)置jvm的參數(shù)
Windows:
? ? set JVM_ARGS="-Xms1024m -Xmx1024m -Dpropname=propvalue
? ? ?jmeter -t test.jmx …
?Linux:
? ?JVM_ARGS="-Xms1024m -Xmx1024m" jmeter -t test.jmx [etc.]
轉(zhuǎn)載于:https://www.cnblogs.com/happyliuyi/p/10755914.html
總結(jié)
以上是生活随笔為你收集整理的jmeter压测过程中内存溢出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (九)自定义控件
- 下一篇: bootstrap_bootstrap中