引入:
TIMEWAIT 连接数more than > 50000 报警楼!!!!
截图截取部分

现象:
非高峰阶段数据
[root@hotel01-162 ~]# netstat -an|awk -F ' ' '{print $NF}'|sort|uniq -c|sort -rn|more
37607 TIME_WAIT
2307 ESTABLISHED
我就想知道大多数time_wait都是和谁交互的,netstat一查果不其然是3306端口,其实和数据库没什么关系,我们程序是有回收机制的,那就是系统回收参数是否有问题。
[root@hotel01-162 ~]# netstat -an|grep -i time_wait|awk -F ' ' '{print $5}'|sort|uniq -c|sort -rn|more
20866 172.xx.32.xx:3306
3794 39.xx.14.xx:80
1067 113.xx.86.xx:5039
1051 172.xx.14.xx:6379
342 113.xx.61.xx:5032
101 42.xx.248.xx:5032
101 36.xx.78.xx:5039
99 116.xx.81.xx:443
56 61.xx.14.xx:5039
数量确实有些异常,这个机器到底怎么了呢?之前写过一篇关于TIME_WAIT的介绍文章可以参考了解“你好,TIME_WAIT
解决:
参考“你好,TIME_WAIT后基本上也能知道大概哪些参数是可以调整的,入手查看修改
- 参数介绍
net.ipv4.tcp_tw_recycle
是否开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_fin_timeout
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间(秒)。对方可能会断开连接或一直不结束连接或不可预料的进程死亡默认是60s,可以调整为30s
net.ipv4.tcp_tw_reuse
是否允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
[root@hotel01-162 ~]# vim /etc/sysctl.conf
net.ipv4.tcp_tw_recycle = 1 #添加
net.ipv4.tcp_fin_timeout = 30 #添加
net.ipv4.tcp_tw_reuse = 1 #添加
[root@hotel01-162 ~]# sysctl -p #使配置文件生效
网友评论