Linux
執行 lsof -i 在 CLOSE_WAIT 中顯示很多連接?我應該擔心嗎
所以我
lsof -i | wc -l
定期執行,它告訴我在 420 行中,有 240 到 255 行處於CLOSE_WAIT
狀態。TCP 連接是如何進入這種狀態的?我應該擔心,我應該如何解決它?
(我打算編輯 mikegrb 的答案,但決定我有點過分了)
CLOSE_WAIT 的意思幾乎與它所說的完全一樣——核心正在等待本地程序在刪除條目之前關閉它的文件描述符。TCP 連接已完全斷開,遠端可能會認為連接是有限的,但你的一端正在堅持。
唯一需要擔心的是,很多 CLOSE_WAIT 條目會消耗核心記憶體和文件描述符表條目,如果它們有很多,這可能會成為問題。如果您正在查看的條目是短暫的,那麼可能只是您循環了很多的 TCP 連接,並且您在連接關閉和程序開始關閉文件描述符之間的一小段時間內看到其中的一小部分。另一方面,如果它們是永久性的(埠和 IP 地址不會隨著時間而改變),那麼某些東西正在洩漏描述符,需要對其進行修復,以便在完成它們時始終關閉它的 fds。正如 mikegrb 所說,較新的版本可能已經解決了該問題,因此可能需要在相關郵件列表上提出問題或檢查變更日誌。