减少tcp TIME_WAIT 的数量

服务器大量连接,大概2w,不正常的,平时稳定在3,4千而已

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 


LAST_ACK 6
SYN_RECV 574
ESTABLISHED 46
FIN_WAIT1 1451
FIN_WAIT2 822
SYN_SENT 5
CLOSING 3915
TIME_WAIT 15619

TIME_WAIT 最大,达到了令人发指的地步,

网上搜啊搜,基本上是修改内核,/etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1  //关键点
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_tw_recycle 可以循环利用,wait也是wait了~

改完以后立马下来了不少

 

netstat -na|wc -l
7573
--------------

#### 老文章,现在不建议修改,可能会引起nat转发的一些问题。
posted @ 2012-09-27 18:17  过去的我  阅读(224)  评论(0编辑  收藏  举报