最近在實現接口壓力測試的時候遇到這樣的一個問題
當線程數持續上升到一個點的時候,運行腳本的時候有很多報錯,如圖:
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.修改配置完畢之后記得重啟機器才會生效
