linux服务器出现大量的TIME_WAIT状态的TCP连接的处理办法
2013-06-24 19:05
686 查看
根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket,
甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务
发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,vi /etc/sysctl.conf http://www.server-cn.com/
编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。 h
p://www.server-cn.com/
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; http://www.server-cn.com/
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间
参考资料:http://server-cn.com/a/fuwuqijishu/SQL_server/2012/0219/2059.html
TCP各种连接状态的转换:http://eriol.iteye.com/blog/1184929
相关文章推荐
- Linux网络tcp连接大量CLOSE_WAIT和TIME_WAIT状态的出现和解决方法
- 系统出现大量TIME_WAIT状态的连接的解决办法
- 当出现大量timewait状态的连接时,该如何处理?
- TCP连接出现大量TIME_WAIT的解决办法
- TCP连接出现大量TIME_WAIT的解决办法
- TCP连接出现大量TIME_WAIT的解决办法
- TCP连接大量TIME_WAIT状态问题排查
- Linux服务器web相关内核参数注解及TIME_WAIT状态的连接过多解决办法
- mysql服务器,大量tcp连接状态TIME_WAIT
- linux服务器出现大量CLOSE_WAIT状态的连接
- linux服务器出现大量CLOSE_WAIT状态的连接
- Linux服务器web相关内核参数注解及TIME_WAIT状态的连接过多解决办法
- Linux服务器web相关内核参数注解及TIME_WAIT状态的连接过多解决办法
- [总结]数据库连接池设置不当导致大量的本地连接出现time_wait状态。
- TCP连接中的TIME_WAIT状态
- 对服务器上出现大量的SYN_RCVD状态的TCP连接的问题分析
- tcp time_wait过多的处理办法
- 解决Linux下大量FIN_WAIT2 &TIME_WAIT 处理办法
- 为什么建立TCP连接需要三次握手,为什么断开TCP连接需要四次握手,TIME_WAIT状态的意义
- 一个解除TCP连接的TIME_WAIT状态限制的简便方法