
日期:2008-07-05 作者:喜騰小二 來源:PHPChina
作者:老王
一臺執行Apache的Web伺服器,前麵有Squid,出現大量的CLOSE_WAIT連線,直接占滿TCP隊列,導緻Apache失去回應。
一般來說,在一次正常的HTTP連線結束時,按正常的次序應該是伺服器先發出FIN信號,用戶端確認,然後用戶端再發出FIN信號,服務端確認。如果用戶端因為某種原因先於服務端發出了FIN信號,就會導緻服務端被動關閉。
-------------------------------------透過下列Linux內核參數來解決問題:sysctl -w net.ipv4.tcp_keepalive_time=30sysctl -w net.ipv4.tcp_keepalive_probes=2sysctl -w net.ipv4.tcp_keepalive_intvl=2
注意:Linux的內核參數我調整的可能有些猛,到底合不合適要注意觀察。
參考連結:
http://ipsysctl-tutorial.frozentux.net/
http://haka.sharera.com/blog/BlogTopic/32309.htm