10048 = WSAEADDRINUSE (Address already in use)。Windows 應用程序快速建立/釋放大量短連接,導致大量連接進入 TIME_WAIT 狀態 (預設 240 秒),佔用所有可用臨時端口 (預設 1024-5000),新連接無端口可用。
路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
| 值名稱 | 類型 | 推薦值 (十進制) | 說明 |
|---|---|---|---|
| TcpTimedWaitDelay | REG_DWORD | 30 | TIME_WAIT 等待秒數,預設 240 (0xF0)。降至 30 秒加速端口回收。最小 30,不可更低 (RFC 1122)。 |
| MaxUserPort | REG_DWORD | 65534 | 最大用戶端口範圍上限。預設 5000。擴至 65534 (最大) 大幅增加可用端口池。最小 32768。 |
regedit。tcpKeepAlive=true;Go: SetConnMaxLifetime。[mysqld]
max_connections = 2000 # 擴大上限
wait_timeout = 60 # 縮短空閒斷開
interactive_timeout = 60
net_read_timeout = 30
net_write_timeout = 30
# PowerShell / CMD
netstat -an | find /c "TIME_WAIT" # 應大幅下降
netstat -an | find /c "ESTABLISHED" # 正常業務連接數
「10048」是**高併發短連接場景下 Windows TCP/IP 栈默認參數不足**的典型表現。**OS 級調優 (註冊表) + 應用層連接池複用** 雙管齊下,才能徹底根治。長期建議:核心業務遷移至 Linux 環境,內核參數調優更靈活、生態更成熟。