首页 > 其他分享 >解决系统中大量的TIME_WAIT连接

解决系统中大量的TIME_WAIT连接

时间:2022-12-15 11:47:36浏览次数:45  
标签:time tcp ipv4 TIME net 连接 WAIT


查看每个ip建立的ESTABLISHED/TIME_OUT状态的连接数

[root@cp-nginx ~]# netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn

     24 103.56.195.17

     19 45.116.147.186

     18 103.56.195.18

     17 45.116.147.178

 

 

解决time_wait连接数大量问题

查询到time_wait连接数过多情况下,调整内核参数:/etc/sysctl.conf

vim /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 = 300

 

/sbin/sysctl -p 让参数生效,调优完成

 

参数详解:

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 时间

 

 经过上面的设置后,发现网站time_wait连接数慢慢减少,网站速度也快多了!

如果以上配置调优后性能还不理想,可继续修改一下配置:
vi /etc/sysctl.conf


net.ipv4.tcp_keepalive_time = 1200 #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets = 5000 #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
默认为180000,改为5000。
对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

转自:https://www.cnblogs.com/feng18/p/9544559.html

标签:time,tcp,ipv4,TIME,net,连接,WAIT
From: https://www.cnblogs.com/xjzyy/p/16984598.html

相关文章

  • 解决使用SSH连接Linux服务器时连接失败的故障
    最近使用Xshell连接Linux服务器,报错:Connectionclosedbyforeignhost.Disconnectedfromremotehost,详细报错信息是:[C:\~][email protected]......
  • 罗克韦尔(AB)PLC远程维护连接不上网关怎么办?
    对很多使用罗克韦尔(AB)PLC的工厂来说,PLC具备成熟系统和稳定性能等特点,可以适应厂内设备的控制指令,需要细心保养,认真维护。随着无线通信技术和物联网技术的发展,PLC的数据上云......
  • webpack——The top-level-await experiment is not enabled (set experiments.topLev
    前言在搏皮中通过动态的引入CDN资源,来减少搏皮制品的大小,但是webpack没有开启topLevelAwait所以产生了报错;experiments:https://webpack.docschina.org/configuration/......
  • 504 gateway timeout 两种 情况与解决方案
    HttpClient 客户端访问服务器,产生的超时现象clientHttpClient(connectionTimeout,socketTimeout)->server若socketTimeout<server响应时间,则报异常Readtimedout(java.......
  • VC++判断网络连接状态
    在开发中,需要判断是否有网络连接,实现函数如下:#include<Wininet.h>BOOLCMFCDemoDlg::DoHaveInternetConnection(){BOOLbRet=FALSE;//如果函数返回FALSE,则肯定......
  • pycharm SSH远程连接服务器
    开始连接首先呢,我们思考两个问题。为什么项目在自己的PC上,但却能在服务器上运行呢?那是因为服务器上也有一个和你PC上的项目一模一样的项目。那么,问题又来了,为什么我修改......
  • java Date和Timestamp类型的相互转换
    重要的概念:日期类和时间戳类都是用一个时间数值——日期相对于基准日期(1970年1月1日GMT时间(格林尼治时间)0时0分0秒)的时间间隔(以毫秒为单位)long类型来构造的通过Date对象......
  • mobexterm SSH连接服务器错误
    错误:  Remotesideunexpectedlyclosednetworkconnection  远端连接未知异常关闭了网络连接。解决方法:  1.测试之后发现是因为本地IP被屏蔽,需要通过代......
  • mybatis的连接池
    mybatis的连接池连接池:我们在实际开发中都会使用连接池因为它可以减少我们获取连接所消耗的时间连接池就是用于存储连接的一个容器容器其实就是一个集合对象该集合必须......
  • 《Pytorch - BP全连接神经网络模型》
    2020年10月4号,国内已经5号凌晨了,依然在家学习。今天是我写的第三个Pytorch程序,从今天起也算是入门了。这一次我想把之前自己手写的matlab实现的简易的传统的BP神经网络在......