版本: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、調整內存,建議加大,並查看磁盤空間是否足夠。
未完待續。