
日期: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