您的位置:首页 > 大数据 > 人工智能

命令查看TIME_WAIT连接数 netstat -ae|grep "TIME_WAIT" |wc -l

2018-01-25 14:04 549 查看
命令查看TIME_WAIT连接数

netstat -ae|grep "TIME_WAIT" |wc -l

早上登陆服务器的时候输入netstat
-an|grep mysql

发现存在大量TIME_WAIT状态的连接

tcp        0      0 127.0.0.1:3306              127.0.0.1:41378             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:41379             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:39352             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:39350             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:35763             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:39372             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:39373             TIME_WAIT

tcp        0      0 127.0.0.1:3306              127.0.0.1:41176             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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: