今天,偶然间发现后台服务与数据库之间有大量的TIME_WAIT的连接:

[root@localhost logs]# netstat -an | grep TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: c.c.c.c: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: TIME_WAIT
tcp a.a.a.a: b.b.b.b: 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 时间
 
修改后,再次查看:
[root@rj- logs]# netstat -an | grep
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED
tcp a.a.a.a: b.b.b.b: ESTABLISHED

发现之间到数据库的TIME_WAIT连接不存在了。

PS:尽管可以解决TIME_WAIT问题,但是这里建议还是需要找到产生TIME_WAIT的本质原因,比如应用系统中哪里忘记调用close方法等。

临时解决系统中大量的TIME_WAIT连接的更多相关文章

  1. 解决系统中大量的TIME_WAIT连接

    今天发现网站特别卡!! 查看网络连接数: netstat -an |wc -l netstat -an |grep xx |wc -l        查看某个/特定ip的连接数 netstat -an ...

  2. Windows系统中Xshell与Linux连接时遇到的问题

    前提条件:在Windows系统中已经安装了Xshell,并且安装了虚拟机软件和Linux系统 步骤1.在Linux系统中root用户下,使用ifconfig命令查看虚拟系统Linux的IP地址.如图1 ...

  3. win8系统中PL/SQL Developer连接Oracle出现的问题

    注意:所有软件最后不要安装在program files (x86)下  PL/SQL Developer显示Not logged on 以管理员的身份打开PL/SQL Developer 2.   t ...

  4. Ubuntu系统中登陆阿里云服务器的方法

    如果您购买了阿里云服务器,恰巧又在使用Ubuntu操作系统,那么恭喜你来对地方了,今天给大家分享一下如何在Ubuntu中登陆阿里云服务器: 主要使用两款软件:1.SecureCRT:2.SecureF ...

  5. 在X64系统中PowerDesigner无法连接MySQL的解决方法

    在MySQL的官网http://dev.mysql.com/downloads/connector/odbc/下载,下个X64版本的,顺带也下了个X86的. 下载完成安装一切顺利(因为是X64系统,自 ...

  6. nginx+php产生大量TIME_WAIT连接解决办法

    问题:当启动nginx和php-fpm时,使用netstat -tunap查看到大量TIME_WAIT连接 由于不知道原因,害怕是受到攻击,马上killall nginx 和php-fpm 会不会是8 ...

  7. Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。

    Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法. 在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首 ...

  8. TIME_WAIT连接过多解决办法

    问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放.看了一下18888,当时吓到了. 现象: 1.外部机器不能正常连接S ...

  9. MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题

    前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功,这给初学者带来了一定烦恼,我也是为此烦恼过 ...

随机推荐

  1. 在 Linux 上配置一个 syslog 服务器

    syslog服务器可以用作一个网络中的日志监控中心,所有能够通过网络来发送日志的设施(包含了Linux或Windows服务器,路由器,交换机以及其他主机)都可以把日志发送给它. 通过设置一个syslo ...

  2. socket.io与redis构建实时推送

    准备工作 1:准备nodejs环境 2:使用npm工具安装 socket.io  npm install socket.io 3:下载客户端socket.io文件 解压附件中的文件 node app. ...

  3. Python之路,Day7 - 面向对象编程进阶

    本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 经典类vs新式类 把下面代 ...

  4. 用JS修改checkbox的选中状态

    代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- function change() { var c=document.myfo ...

  5. 第二篇:Retrofit调用流程图和使用到的设计模式

    2016-05-08 09:35:58 这篇文章解析一下Retrofit的调用流程 1. 先看一下我们是如何使用Retrofit的,代码如下: public interface WeatherData ...

  6. Scipy学习笔记 矩阵计算

    Scipy学习笔记 非本人原创  原链接 http://blog.sina.com.cn/s/blog_70586e000100moen.html 1.逆矩阵的求解 >>>impor ...

  7. Linux学习 :移植linux-4.7.4到JZ2440开发板

    一.编译环境搭建: 1.linux源码下载:https://www.kernel.org/2.安装交叉编译工具链: ①手动下载配置工具链: (1):解压 arm-linux-gcc-3.4.1.tar ...

  8. IOS调用系统声音(键盘声音)

    #import <AudioToolbox/AudioToolbox.h> AudioServicesPlaySystemSound(1106); 注:括号中为系统声音的id,详见 htt ...

  9. HBase查找一条数据的过程

    HBase中的Client如何路由到正确的RegionServer 在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的 Regi ...

  10. freeCAD预选项编辑器

    freeCAD的预选项系统在 Edit 目录 -> Preferences. freecad的功能分成不同的模块,每一模块负责一个特定的工作台工作.freecad还使用了一个概念叫晚加载,这意味 ...