原贴:http://blog.chinaunix.net/u/26011/showart_332604.html
解决TIME_WAIT连接太多 |
|
|
前言:经常检查Apache的连接数,同样会发现很多无用的Time_Wait连接。有人说这是正常的,是因为一个请求中途中断造成的;还有人说微软的 IE连接时产生的Time_wait会比用Firefox连接时多。个人认为有一定的Time_wait是正常的,如果超过了连接数的比例就不是很正常, 所以还是找来方法解决一下。
检查net.ipv4.tcp_tw当前值,将当前的值更改为1分钟:
[root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
[root@aaa1 ~]#
vi /etc/sysctl 增加或修改net.ipv4.tcp_tw值: net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
使内核参数生效: [root@aaa1 ~]# sysctl -p
[root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
用netstat再观察正常 这里解决问题的关键是如何能够重复利用time_wait的值,我们可以设置时检查一下time和wait的值 #sysctl -a | grep time | grep wait net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
| |