轉載自:https://www.cnblogs.com/pgf622/p/9109521.html
最近在實現接口壓力測試的時候遇到這樣的一個問題
當線程數持續上升到一個點的時候,運行腳本的時候有很多報錯,如圖:
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.修改配置完畢之後記得重啓機器纔會生效