当出现大量TIME_WAIT系统做的调整

当出现大量TIME_WAIT系统做的调整

   张吉吉     2019年10月8日 00:53     1682    

1、查看linux链接TIME_WAIT的数量

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

image.png


2、当系统出现大量的TIME_WAIT时的操作

vi /etc/sysctl.conf

编辑文件,加入以下内容:

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 让参数生效。


3、详解

(1)net.ipv4.tcp_syncookies = 1    

表示开启SYN Cookies。

当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

(2)net.ipv4.tcp_tw_reuse = 1       

 表示开启重用。

允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

(3)net.ipv4.tcp_tw_recycle = 1 

表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

(4)net.ipv4.tcp_fin_timeout 

修改默认的 TIMEOUT 时间,默认的时间是60s,改为30s。


也可以采用长连接的方式减少 TCP 的连接与断开,在长连接的业务中往往不需要考虑 TIME-WAIT 状态,但其实在长连接的业务中并发量一般不会太高。


文章评论

0

其他文章