一探膊、現(xiàn)象描述
在windows環(huán)境下,使用jmeter進(jìn)行性能測試時,在并發(fā)量較大的情況下,發(fā)現(xiàn)有大量的接口報錯
報錯內(nèi)容為:java.net.BindException: Address already in use: connect
image.png
二巷折、原因
經(jīng)查詢資料得知,windows提供給TCP/IP鏈接的端口為 1024-5000崖咨,并且要四分鐘來循環(huán)回收它們锻拘,就導(dǎo)致我們在短時間內(nèi)跑大量的請求時將端口占滿了,導(dǎo)致如上報錯击蹲。
同時對比TPS報錯及監(jiān)控平臺連接數(shù)署拟,佐證了這一點(diǎn)。
TPS圖表歌豺,紅色框框內(nèi)為基本全部報錯推穷。
image.png
同一時間監(jiān)控平臺監(jiān)控到的連接數(shù)情況
image.png
對照可以看出,當(dāng)連接數(shù)超過5000左右的時候世曾,開始大量報錯缨恒。在連接數(shù)釋放的過程中谴咸,又會有請求成功轮听,當(dāng)再次達(dá)到5000的時候,后續(xù)的連接又幾乎全部失敗岭佳。
三血巍、解決辦法
1.cmd中輸入regedit命令打開注冊表;
2.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右鍵Parameters珊随;
3.添加一個新的DWORD述寡,名字為MaxUserPort;
4.然后雙擊MaxUserPort叶洞,輸入數(shù)值數(shù)據(jù)為65534鲫凶,基數(shù)選擇十進(jìn)制;
5.完成以上操作衩辟,重新進(jìn)行測試螟炫,就可以解決問題
四、重新測試
TCP沒有再報錯image.png
連接數(shù)達(dá)到了8K+
image.png