`

linux服务器出现大量TIME_WAIT的解决方法

阅读更多

今天突然发现系统的访问速度变得缓慢,反复查找原因,发现服务器存在大量的TIME_WAIT连接。怀疑加速乐出现问题!

通过netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’命令进行查询,反馈结果为:

TIME_WAIT 236849
ESTABLISHED 1321
LISTEN 1133

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

修改之后,再用命令查看TIME_WAIT连接数
netstat -ae|grep “TIME_WAIT” |wc –l

发现大量的TIME_WAIT 已不存在,mysql进程的占用率很快就降下来的,网站访问正常。 不过很多时候,出现大量的TIME_WAIT状态的连接,往往是因为网站程序代码中没有使用mysql.colse(),才导致大量的mysql  TIME_WAIT。

如果你的服务器是Windows平台,可以修改下面的注册表键值:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
“TcpTimedWaitDelay”=dword:0000001e

一般情况下,使用虚拟空间的用户不太需要担心此类问题,如果是使用VPS的用户,建议按照此类方法进行排查和设置,可以有效的提升mysql服务的查询速度。

分享到:
评论
1 楼 909012142 2014-03-17  

相关推荐

    CentOS解决服务器存在大量time_wait的问题

    近期服务器出现大量time_wait的TCP连接造成服务器连接数过多而最终导致tomcat假死状态。连接服务器查看连接数的时候提示如下。 [root@test apache-tomcat-7.0.53]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a...

    服务器大量TIME_WAIT解决方法

    linux 服务器大量TIME_WAIT解决方法

    减少Linux服务器过多的TIME_WAIT

    减少Linux服务器过多的TIME_WAIT TIME_WAIT状态的意义: 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口 状态为TIME_WAIT 是不是所有执行主动关闭的socket都会进入TIME_WAIT状态呢? 有...

    解决linux下大量TIME WAIT的方法详解

    解决方法:通过修改Linux内核参数,可以减少linux服务器的IME_WAIT套接字数量。vi /etc/sysctl.conf增加以下几行: 代码如下:net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200...

    探讨如何减少Linux服务器TIME_WAIT过多的问题

    本篇文章是对如何减少Linux服务器TIME_WAIT过多的问题进行了详细的分析介绍,需要的朋友参考下

    linux下2个检查tcp连接的命令

    1 检测web服务器的链接数量及状态: netstat -ant|awk '{print $5 \t $6}'|grep ::ffff:|sed -e 's/::ffff://' -e 's/:[0-9]*//' |sort|uniq -c| sort -rn|head -10 结果: 122 125.162.71.199 TIME_WAIT 99 79.119...

    [服务器性能优化]Linux下高并发socket最大连接数和sysctl(time_wait)设置

    sysctl.conf 博文链接:https://zhengdl126.iteye.com/blog/1717016

    Linux高性能服务器编程

    内容简介《Linux高性能服务器编程》是Linux服务器编程领域的经典著作,由资深Linux软件开发工程师撰写,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、...

    Linux高性能服务器编程清晰PDF+源码

    3.4.2 TIME_WAIT状态 3.5 复位报文段 3.5.1 访问不存在的端口 3.5.2 异常终止连接 3.5.3 处理半打开连接 3.6 TCP交互数据流 3.7 TCP成块数据流 3.8 带外数据 3.9 TCP超时重传 3.10 拥塞控制 ...

    Linux网络编程 视频 教程

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程...

    C++教程网《Linux网络编程》视频百度云地址

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程...

    c++教程网的linux网络编程视频下载

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程...

    linux网络编程

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程...

    LINUX FTP设置方法

    wait = no user = root server = /usr/sbin/vsftpd port = 21 log_on_success += PID HOST DURATION log_on_failure += HOST } #重启服务 service xinetd restart 注:该配置是对以前服务的一个加深的理解...

    linux 下 结合ftp 和部分telnet 功能的服务器源码

    (wait for sequential secs no data arrives ) case E_F_C_ERR : file create error! case E_REV_ERR : rev socket data error case E_BAD_SOCK_FD : default : unknown error! 6 bugs ...

    C++教程网视频:linux网络编程

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用...

    linux下动态网站维护基本命令小结

    TCP连接数,TIME_WAIT 等 (2).服务运行情况 用户能否访问 代码如下: tail -f 查看apache访问日志与错误日志 查看系统日志/var/log/messages 查看服务器与Mysql数据库的连接情况 3.故障处理 (1).PHP类动态网站 服务...

    Linux-FTP配置说明及安装源文件

    wait = no user = root server = /usr/sbin/vsftpd port = 21 log_on_success += PID HOST DURATION log_on_failure += HOST } #重启服务 service xinetd restart 注:该配置是对以前服务的一个加深的理解,也...

Global site tag (gtag.js) - Google Analytics