Jmeter測試會出現端口占用情況
這邊在這里做個記錄,每次都要百度查詢,剛好需要整理下,我就也記錄一份到這里吧。感謝大佬的文章。
因Windows環境下的Jmeter測試時,往往會大量出現“端口占用”情況,所以需要去注冊表修改一些參數。
原因分析:
windows 環境下的端口循環回收需要消耗2~4分鍾。由此猜測可能是由於 windows下壓測端口數有限,端口資源被占滿,沒有及時循環回收,導致報錯)windows下的端口Time_Wati導致端口無法使用
Close_Wait會占用一個連接,網絡可用連接小。當數量過多時,可能會引起網絡性能下降,並占用系統非換頁內存。尤其是在有連接池的情況下,比如HttpRequest,會耗盡連接池的網絡連接數,導致無法建立網絡連接。
CLOSE_WAIT產生原因:
一般情況下因為TCP連接沒有調用關閉方法,需要應用來處理網絡鏈接關閉。如果是Web請求,經常因為Response的BodyStream沒有調用Close。TCP的KeepAlive功能,操作系統默認7200秒(2小時)自動清理一次CLOSE_WAIT的連接,滿足不了高並發下的端口需求數。
解決方案:
l 擴大端口數量;
l 縮短TIME_WAIT的等待時間,提高端口的使用率;
l 配置合理的Keepalive參數
注冊表目錄:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
右鍵新建參數(DWORD),並設置值。
l MaxUserPort 十進制 65534
l TcpTimedWaitDelay 十進制 30
l KeepAliveTime 006ddd00
l KeepAliveInterval 000003e8
l MaxDataRetries 5