Windows操作系統(tǒng)TIME_WAIT狀態(tài)的TCP連接快速回收時間(性能測試時端口不夠用)
大規(guī)模Windows環(huán)境下,采用Nginx反向代理服務(wù)后,操作系統(tǒng)會產(chǎn)生較多TIME_WAIT的TCP(Transmission Control Protocol)連接,操作系統(tǒng)默認(rèn)TIME_WAIT的TCP連接回收時間是4分鐘,TCP默認(rèn)動態(tài)端口范圍為開始端口49152,結(jié)束端口65535。這樣會使回收TCP過慢導(dǎo)致系統(tǒng)吞吐量下降,甚至出現(xiàn)502訪問失敗問題。如何修改操作系統(tǒng)內(nèi)核參數(shù)來縮短TIME_WAIT狀態(tài)TCP連接回收時間和添加TCP動態(tài)端口范圍,保證在大并發(fā)場景下操作系統(tǒng)的端口資源可用?
回答
以Administrator用戶登錄Windows操作系統(tǒng)。
修改TCP回收時間。
在Windows開始菜單中,單擊“運(yùn)行”。
在“運(yùn)行”對話框中,輸入“regedit”后按“Enter”打開注冊表編輯器。
在“注冊表編輯器”中打開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”路徑。
在“編輯”菜單中,選擇“新建?>?DWORD (32-位)值”,輸入名稱“TcpTimedWaitDelay”。
右鍵單擊TcpTimedWaitDelay,選擇“修改”。
在“編輯 DWORD(32位)值”對話框的“基數(shù)”區(qū)域中,選擇十進(jìn)制值為“30”,并“確定”。
關(guān)閉注冊表編輯器。
修改端口范圍。
在Windows開始菜單中,單擊“運(yùn)行”。
輸入“cmd”并按“Enter”打開命令執(zhí)行窗口。
執(zhí)行如下命令修改端口范圍。
netsh int ipv4 set dynamicportrange tcp startport=5000 numberofports=60000
重啟操作系統(tǒng)。