time_wait和close_wait

TIME_WAIT狀態能夠經過優化服務器參數獲得解決,由於發生TIME_WAIT的狀況是服務器本身可控的,要麼就是對方鏈接的異常,要麼就是本身沒有迅速回收資源,總之不是因爲本身程序錯誤致使的。服務器

若是一直保持在CLOSE_WAIT狀態,那麼只有一種狀況,就是在對方關閉鏈接以後服務器程序本身沒有進一步發出ack信號。換句話說,就是在對方鏈接關閉以後,程序裏沒有檢測到,或者程序壓根就忘記了這個時候須要關閉鏈接,因而這個資源就一直被程序佔着。對於經過服務器內核參數也沒辦法解決,服務器對於程序搶佔的資源沒有主動回收的權利,除非終止程序運行。ide

經過lsof -i | grep CLOSE_WAIT 查出哪一個進程佔用close_wait。需重啓進程才能解決。優化

相關文章
相關標籤/搜索