失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux 链接 time wait linux 大量的TIME_WAIT解决办法

linux 链接 time wait linux 大量的TIME_WAIT解决办法

时间:2020-03-02 18:00:52

相关推荐

linux 链接 time wait linux 大量的TIME_WAIT解决办法

统计在一台前端机上高峰时间TCP连接的情况,统计命令:

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

结果:

image

除了ESTABLISHED,可以看到连接数比较多的几个状态是:FIN_WAIT1, TIME_WAIT, CLOSE_WAIT, SYN_RECV和LAST_ACK;下面的文章就这几个状态的产生条件、对系统的影响以及处理方式进行简单描述。

发现存在大量TIME_WAIT状态的连接

tcp 0 0 127.0.0.1:3306 127.0.0.1:41378 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:41379 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:39352 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:39350 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:35763 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:39372 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:39373 TIME_WAIT

tcp 0 0 127.0.0.1:3306 127.0.0.1:41176 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让参数生效。

net.ipv4.tcp_syncookies = 1表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

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

net.ipv4.tcp_fin_timeout修改系統默认的TIMEOUT时间

如果觉得《linux 链接 time wait linux 大量的TIME_WAIT解决办法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。