Linux TIME_WAIT 太多的解决办法

版权声明:本文为博主原创文章,随便转载,但是请注明出处。 https://blog.csdn.net/sbdx/article/details/83351515

问题

MySQL经常卡死,netstat -nat看一下,TIME_WAIT成千上万……

解决

修改/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

保存完后使用sysctl -p使系统生效。

分析[转载]

客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT.主动关闭的一方在发送最后一个 ack 后,就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间,这个是TCP/IP必不可少的,也就是“解决”不了的,也就是TCP/IP设计者本来是这么设计的。

 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 = 30
//修改系統默认的 TIMEOUT 时间

猜你喜欢

转载自blog.csdn.net/sbdx/article/details/83351515
今日推荐