MySQL的TIME_WAIT连接过多的解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的TIME_WAIT连接过多的解决方法相关的知识,希望对你有一定的参考价值。
今天上mysql服务器看了下并发,发现了以下情况
MySQL的TIME_WAIT连接过多,吓了我一跳,因为这个服务器我很少去管理,今天突然想上来看看,发现了这个问题。以下是我的解决方法
[[email protected] data]# ss -an | grep 3306 | wc -l
1402
[[email protected] data]#mysql -uroot -p
mysql> show variables like "time_timeout";
| wait_timeout | 28800 |
然后我就使用以下的步骤解决了。
1、在/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
然后使用sysctl -p命令将其生效
2、在/etc/my.cnf中添加以下内容
#在[mysqld]中添加
[mysqld]
#这个参数是修改上面查询到的28800秒,我修改为了30秒
wait_timeout = 30
3、重启服务器即可
当然了,这个方法很笨,如果是线上的服务器就不要用这个方法了。
如果不能重启服务的可以直接修改全局变量
mysql> set global wait_timeout=30;
本文出自 “小莫” 博客,请务必保留此出处http://xiaofengmo.blog.51cto.com/10116365/1752160
以上是关于MySQL的TIME_WAIT连接过多的解决方法的主要内容,如果未能解决你的问题,请参考以下文章