又遇TIMEWAIT more than

引入:

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

image.png
现象:

非高峰阶段数据

[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  #使配置文件生效
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。