博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql出现大量TIME_WAIT状态端口占用的解决方法 windows/linux/centos
阅读量:5780 次
发布时间:2019-06-18

本文共 1828 字,大约阅读时间需要 6 分钟。

windows篇

1.查看一下占用情况.在cmd输入命令

netstat -ano | findstr "3306"

发现 Mysql 的 3306 端口存在大量 TIME_WAIT 状态连接,考虑到近期考勤人数的突然增多,且指纹机打卡为实时上传等原因,初步猜测是在短时间内指纹机大量请求接口操作数据库,而端口并未释放所导致。

解决问题

修改Mysql配置

[mysqld]# 服务器关闭交互式连接前等待活动的秒数interactive_timeout=30# 服务器关闭非交互连接之前等待活动的秒数wait_timeout=30

注意:需要同时配置interactive_timeout与wait_timeout才可生效!

修改Windows服务器TCP连接配置

由于Windows下默认Socket连接为5000个,且预设TIME_WAIT时间为4分钟。我们同时需要修改服务器配置。

打开注册表 regedit

找到路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在该路径下修改或新建注册表
类型: DWORD值 名称:MaxUserPort 值(十进制):65543
类型: DWORD值 名称:TcpTimedWaitDelay 值(十进制):30

保存后重启Windows服务器,发现3306的 TIME_WAIT端口数量正常,项目恢复正常使用。

Linux篇

用命令进行查询,

netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

反馈结果为:

TIME_WAIT 236

ESTABLISHED 13
LISTEN 11

显然TIME_WAIT 的数量过于异常。

通过编辑配置文件,调整内核参数解决问题。

使用命令:

vi /etc/sysctl.conf

编辑文件,加入以下内容:

net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_timestamps

然后执行/sbin/sysctl -p让参数生效。

修改之后可以命令查看修改后的值

cat /proc/sys/net/ipv4/tcp_syncookiescat /proc/sys/net/ipv4/tcp_tw_reusecat /proc/sys/net/ipv4/tcp_tw_recyclecat /proc/sys/net/ipv4/tcp_timestamps

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

1、开启tcp_timestamp是开启tcp_tw_recycle,tcp_tw_reuse和tcp_timestamp的前提条件。

2、但是在nat模式下,不用将tcp_tw_recycle和tcp_timestamp同时开启,这会造成tcp超时引发故障。

修改之后,再用命令查看TIME_WAIT连接数

 

netstat -ae|grep "TIME_WAIT" |wc -lnetstat -ae |grep mysql

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

转载于:https://my.oschina.net/xiaogg/blog/2874453

你可能感兴趣的文章
sshd_config设置参数笔记
查看>>
循序渐进Docker(一)docker简介、安装及docker image管理
查看>>
jsp页面修改后浏览器中不生效
查看>>
大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(四)高效的后台权限判断处理...
查看>>
Oracle HRMS,PeopleSoft HR,SAP HR区别
查看>>
信号量实现进程同步
查看>>
Spring4-自动装配Beans-通过构造函数参数的数据类型按属性自动装配Bean
查看>>
iPhone图标
查看>>
hdu 3308 LCIS
查看>>
Anterior and posterior commissures
查看>>
win10.64位wnmp-nginx1.14.0 + PHP 5. 6.36 + MySQL 5.5.59 环境配置搭建 结合Thinkphp3.2.3
查看>>
字符串-操作
查看>>
如何查看python selenium的api
查看>>
Python_Mix*random模块,time模块,sys模块,os模块
查看>>
iframe刷新问题
查看>>
数据解码互联网行业职位
查看>>
我所见的讲的最容易理解,逻辑最强的五层网络模型,来自大神阮一峰
查看>>
vue-cli项目打包需要修改的路径问题
查看>>
js实现复选框的操作-------Day41
查看>>
数据结构化与保存
查看>>