Windows Server端口用盡服務不能訪問

Windows Server端口用盡服務不能訪問

問題

應用程序頁面有時訪問正常,有時不能訪問。

查詢結果

網上說是有連接沒有關閉,佔用了端口資源,查一查,果然,進程都結束了,依然後很多TIME_WAIT狀態的連接未釋放,再查看所有的time_wait連接,直接過去好幾屏,計數也不用了,肯定有問題。

#  windows下查看當前所有的tcp連接
netstat -ano  
 
# windows下查看所有8080端口的tcp連接
netstat -ano |findstr "8080"  
 
#  windows下查看所有的“TIME_WAIT”狀態的tcp連接
netstat -ano |findstr "TIME_WAIT" 

# windows下統計time_wait出現的次數(按行統計) /i 忽略大小寫 
netstat -ano |find /i /c "TIME_WAIT"   

設置TIME_WAIT

隨即,查看一下有沒有設TIME_WAIT的自動關閉時間(默認4分鐘)、還有windows下的大端口服務(雖然系統總共可使用的Ports有65536個,但從本機連到外部網路(Outbound Connections)的連線數最多隻會使用到5000個而已【此爲系統默認值】)。

  • cmd--->regedit 進入註冊表

  • 進入 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters

  • 新建 DWORD類型的註冊表項,命名爲:MaxUserPort 值數據: 60000(用十進制的格式錄入進去,此值的有效範圍爲5000-65534

  • 新建DWORD類型的註冊表項,命名爲:TCPTimedWaitDelay值數據: 30TIME_WAIT的自動斷開時間,默認爲4分鐘)

設置完大端口及time_wait時間後,重新啓動tomcat,能正常啓動了,訪問應用也正常了。但是有個現象就是time_wait的連接數似乎沒有降低,同事說是微軟操作系統的bug,然後重新啓動服務器,再觀察time_wait的鏈接,發現變少了,而且也能自動釋放了。

結論

由於大量的TIME_WAIT連接未被釋放,導致佔用的端口資源一直未被回收,出現了緩衝區空間不足的問題,應用也總是自動斷線。

參考https://blog.csdn.net/woshiji594167/article/details/81874095?utm_source=app

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章