今天,偶然间发现后台服务与数据库之间有大量的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. NoSQl简介(转)

    NoSQL,全称是“Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的目的是为了大规模web应用,这场全新的数据库革命运动 ...

  2. 自定义带动画的Toast

    一.style样式: 1.  // 移动和透明渐变结合的动画 <style name="anim_view">        <item name="@ ...

  3. Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)

    http://codeforces.com/contest/737 A: 题目大意: 有n辆车,每辆车有一个价钱ci和油箱容量vi.在x轴上,起点为0,终点为s,中途有k个加油站,坐标分别是pi,到每 ...

  4. Hibernate实体关系映射(OneToMany单边)——完整实例

    单边一对多关系:电子邮件管理 单边一对多关系:指一方有集合属性,包含多个多方,而多的一方没有一方的引用. 比如:用户(一)与电子邮件(多).一个用户可以有多个电子邮件记录. 目的:通过OneToMan ...

  5. python 打印 网格

    #/usr/bin/python # -*- coding:utf-8 -*- # width 单个网格有多少个 - 宽度# height 单个网格有多少个 | 高度# lateral 横向有多少个网 ...

  6. JSP内置对象---用户登录页面(get和post)

    Login.jsp 页面: <%@ page language="java" import="java.util.*" contentType=" ...

  7. React学习笔记

    1.React的一开始出发点是:用于开发数据不断变化的大型应用程序(Building large applications with data that changes over time) 2.生命 ...

  8. adb shell

    1.获取进程ID adb shell ps |findstr packagename 2.获取cpu的值 adb shell dumpsys cpuinfo |findstr packagename ...

  9. C++线程池

    之前一直在找一个开源的C++线程池库,找了很久也没有找到一个好用的,后来项目需要, 本想自己写一个,但是无意中在github上面找了一个采用boost库实现的threadpool,后来研究 了一下源码 ...

  10. 【转】 Easy RadControl 之 RadGridView(Silverlight)

    1.不显示第1列即列指示器(Row Indicators) 在 telerik:RadGridView中设置属性   RowIndicatorVisibility="Collapsed&qu ...