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

2022-12-07 14:04:31 來源:51CTO博客


【資料圖】

一、現象描述

在windows環境下,使用jmeter進行性能測試時,在并發量較大的情況下,發現有大量的接口報錯報錯內容為:java.net.BindException: Address already in use: connect

二、原因

經查詢資料得知,windows提供給TCP/IP鏈接的端口為 1024-5000,并且要四分鐘來循環回收它們,就導致我們在短時間內跑大量的請求時將端口占滿了,導致如上報錯。同時對比TPS報錯及監控平臺連接數,佐證了這一點。

TPS圖表,紅色框框內為基本全部報錯。

同一時間監控平臺監控到的連接數情況

對照可以看出,當連接數超過5000左右的時候,開始大量報錯。在連接數釋放的過程中,又會有請求成功,當再次達到5000的時候,后續的連接又幾乎全部失敗。

三、解決辦法

1.cmd中輸入regedit命令打開注冊表;2.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右鍵Parameters;3.添加一個新的DWORD,名字為MaxUserPort;4.然后雙擊MaxUserPort,輸入數值數據為65534,基數選擇十進制;5.完成以上操作,重新進行測試,就可以解決問題

四、重新測試

TCP沒有再報錯

連接數達到了8K+

標簽: 幾乎全部 的情況下 一個新的

上一篇:【JMETER后置處理器--json提取器】
下一篇:天天快資訊丨我用iPad編了個Python貪吃蛇,附源碼!