針對死鏈結占用資源的情況的解決方法

2022-09-24 01:09:12 字數 527 閱讀 9955

針對死鏈結占用資源的情況的解決方法,tcp連線中可能由於網路的問題導致客戶端斷開連線,但是伺服器還存在和他的連線,針對死連線占用資源的情況,如何消除這些占有資源的死連線。

如果客戶端因為網路原因或者崩潰等許多原因斷開了與服務端的連線,然而服務端卻不知道客戶端已經斷開了連線並等待客戶端給他傳送資料占用著系統資源,我們稱這樣的情況為「死連線」。 在tcp連線通過三次握手連線上了以後,就會服務端就會啟動保活計時器,並且服務端每次收到資料都會對保活計時器的超時時間進行更新。比如保活計時器的超時時間設定是兩個小時,如果兩個小時中服務端並沒有收到客戶端的資料,那麼服務端就認為客戶端有可能已經異常斷開連線了,然後服務端會向客戶端傳送乙個「探測報文段」,如果收到響應,那麼更新保活計時器的超時時間。如果沒有收到響應,服務端每隔75秒給客戶端傳送1個探測報文段,連發10個,如果還是沒有響應,那麼服務端就認為客戶端已經關閉了連線,隨即也斷開連線,釋放因為連線所占用的記憶體。

如果客戶端崩潰後重新啟動,這是服務端將收到乙個對其保活探查的響應,但是這個響應是乙個復位,使得服務端終止這個連線,他們將進行三次揮手的重新連線工作。

解決mysql占用cpu資源100 的問題

乙個win2003伺服器,以前就跑了乙個tomcat例項也沒用nginx做前端 這個tomcat裡面帶了不少 但是訪問量並不是很大,基本屬於業務集中型。解決的過程其實也挺easy,這裡記錄一下思路。首先把mysql伺服器公升級到最新的版本,盡量避免是mysql本身問題。然後在my.ini裡面mysq...

80等埠被占用情況的解決

安裝或執行程式時提示 80等埠被占用情況的解決 巫師日記 發表於 2007 9 5 11 02 00 今天家裡電腦上架設的 不能訪問,進入 iis6 後 windows 2003系統 看到裡面的站點都不能啟動,提示有另乙個程式正在執行。在網上搜過之後,解決 在win2003的cmd命令視窗輸入net...

tcp異常關閉後埠被占用情況的解決

乙個服務端程序向作業系統申請乙個socket來監聽,但是當程序退出後,還未關閉的連線不會立即消失,而是會留給作業系統處理。作業系統會嘗試關閉這個連線。但是如果關閉時出現問題,這個連線就會一直處於time wait或其他非正常狀態,而這是相應的埠還處於占用狀態,如果這個時候再重新啟動這個服務端程式,就...