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

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

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

最近在實現介面壓力測試的時候遇到這樣的一個問題

當執行緒數持續上升到一個點的時候,執行指令碼的時候有很多報錯,如圖:

java.net.BindException: Address already in use: connect

開始以為是單機執行指令碼執行不過來,所以另加了一臺負載機同時執行指令碼

分散式環境部署參考:

https://www.cnblogs.com/whitewasher/p/6946207.html

 

但是依然還是會報錯,後面查閱了相關資料後發現,是因為windows本身提供的埠訪問機制的問題。

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

 

 

解決方案為:

1.cmd中,用regedit命令開啟登錄檔

2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,

  1 .右擊parameters,新增一個新的DWORD,名字為MaxUserPort

  2 .然後雙擊MaxUserPort,輸入數值資料為65534,基數選擇十進位制(如果是分散式執行的話,控制機器和負載機器都需要這樣操作哦)

3.修改配置完畢之後記得重啟機器才會生效