1. 程式人生 > 其它 >jmeter壓力測試報錯:java.net.BindException: Address already in use: connect

jmeter壓力測試報錯:java.net.BindException: Address already in use: connect

jmeter進行壓力測試時,在長期執行緒較高的進行測試時會報如下錯誤:

排除問題:

首先先檢視伺服器的日誌,發現沒有報錯。

然後檢視nginx資料,發現請求數和測試發出的請求數不一致,伺服器接收到的少,就想到丟失請求。

後來經過查詢資料瞭解是windows 機器的問題,

原因:windows提供給TCP/IP連結的埠為 1024-5000,並且要四分鐘來迴圈回收它們,就導致我們在短時間內跑大量的請求時將端口占滿了,導致如上報錯。

解決辦法(在jmeter所在伺服器操作):

1.cmd中輸入regedit命令開啟登錄檔;

2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右鍵Parameters;

3.新增一個新的DWORD,名字為MaxUserPort;

4.然後雙擊MaxUserPort,輸入數值資料為65534,基數選擇十進位制;

5.完成以上操作,務必重啟機器,問題解決。

PS:雖然可以進行正常測試,但是過了幾天增加執行緒數後又出現同樣的問題,還需要進行以下配置:

在上述第三步後,再新增TcpTimedWaitDelay,數值為30-300 選擇十進位制。

同樣還是需要重新啟動電腦。