Jmeter5.1.1 壓測過程中遇到問題流水日記

版本:Jmeter5.1.1

1、Java heap space OutOfMemoryError

jmeter壓測一段時間後,可能出現溢出情況,根據實際情況修改一下JMeter的jmeter.bat文件的HEAP和NEW的參數即可。

if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
	set HEAP=-Xms1024m -Xmx4096m
	set NEW=-XX:NewSize=512m -XX:MaxNewSize=1024m
)

2、No buffer space available (maximum connections reached?)

從網上瀏覽了大量的帖子,發現基本上都說是因爲機器端口號用盡導致tcp無法申請新的端口去建立連接。查看機器端口號使用情況,如果大量的端口處於TIME_WAIT狀態,初步估計可能是客戶端每次去請求服務端都創建了一次tcp連接,使用完就關閉連接,但是tcp協議中如果客戶端主動關閉,爲了確保發送的報文不影響下一次連接,主動關閉的一方需要停留在TIME_WAIT狀態2*MSL(Max Segment Lifetime)。當併發高的時候,就會產生大量TIME_WAIT,而處於TIME_WAIT狀態的端口是不能馬上去建立新的連接的,這就導致No buffer space available (maximum connections reached?)這個異常。

可能解決方案:

1、重啓。排除硬件導致的溫恩提

2、調整tcp/ip的延遲等待時間參數,可以減少狀態爲:time_wait的連接:【TcpTimedWaitDelay】調小,例如:30s、

以Windows爲例,調整tcp/ip:
1>.註冊表編輯器:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2>.添加參數:
(1)新建
值名稱:MaxUserPort
值類型:DWORD
值數據:65534(十進制)

(2)新建
值名稱:MinUserPort
值類型:DWORD
值數據:5000(十進制)

(3)新建
值名稱:TCPTimedWaitDelay
值類型:DWORD
值數據:30(十進制)

3、調整內存,建議加大,並查看磁盤空間是否足夠。

未完待續。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章