短時(shí)間內(nèi)new socket操作過(guò)多 而socket.close()操作并不能立即釋放綁定的端口 而是把端口設(shè)置為T(mén)IME_WAIT狀態(tài) 過(guò)段時(shí)間(默認(rèn)240s)才釋放(用netstat -na可以看到) 最后系統(tǒng)資源耗盡 (windows上是耗盡了pool of ephemeral ports 這段區(qū)間在1024-5000之間) 可以考慮增加端口數(shù)量來(lái)解決,不過(guò)你為何不考慮用Socket池呢?讓一個(gè)Socket重復(fù)利用呢? 以下是修改方法 默認(rèn)最大數(shù)量的短暫 TCP 端口為 5000 ' 適用于 ' 部分中包含產(chǎn)品中。 這些產(chǎn)品中已添加新參數(shù)。 要增加最大值是短暫端口, 請(qǐng)按照下列步驟操作: 1. 啟動(dòng)注冊(cè)表編輯器。 2. 注冊(cè)表, 中找到以下子項(xiàng), 然后單擊 參數(shù) : HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 3. 在 編輯 菜單, 單擊 新建 , 然后添加以下注冊(cè)表項(xiàng): MaxUserPort 值名稱: 值類型: DWORD 值數(shù)據(jù): 65534 有效范圍: 5000 - 65534 (十進(jìn)制) 默認(rèn): 0x1388 5000 (十進(jìn)制) 說(shuō)明: 此參數(shù)控制程序從系統(tǒng)請(qǐng)求任何可用用戶端口時(shí)所用最大端口數(shù)。 通常, 1024 的值和含 5000 之間分配臨時(shí) (短期) 端口。 4. 退出注冊(cè)表編輯器, 并重新啟動(dòng)計(jì)算機(jī)。 gpupdate /force /wait:0 注意 一個(gè)附加 TCPTimedWaitDelay 注冊(cè)表參數(shù)決定多久關(guān)閉端口等待可以重用關(guān)閉端口。 1.組策略更新后.立即生效的命令:Gpupdate
語(yǔ)法 gpupdate [/target:{computer | user}] [/force] [/wait:Value] [/logoff] [/boot] 參數(shù) /target:{computer | user} 只處理 Computer 設(shè)置或當(dāng)前的 User 設(shè)置。默認(rèn)情況下,將同時(shí)處理計(jì)算機(jī)設(shè)置和用戶設(shè) 置。 /force 忽略所有處理優(yōu)化并重新應(yīng)用所有設(shè)置。 /wait:Value 策略處理等待完成的秒數(shù)。默認(rèn)值是 600 秒。0 等于“不等待”,而 -1 等于“無(wú)限期等 待”。 /logoff 刷新完成后才注銷。如果客戶端的組策略擴(kuò)展沒(méi)有在后臺(tái)刷新周期內(nèi)進(jìn)行處理,但在用戶登錄時(shí)進(jìn)行處理,例如對(duì)于用戶組策略軟件安裝和文件夾重定向,這時(shí)需要使用該選項(xiàng)。如果沒(méi)有調(diào)用要求...... gpupdate /force /wait:0 不需要注銷和重啟電腦,也不需要結(jié)束explorer.exe進(jìn)程,只要在修改完注冊(cè)表后,運(yùn)行此命令就可立即刷新注冊(cè)表生效。 |
|