温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql中sleep连接过多,Ufiner查询无数据

发布时间:2020-07-15 23:08:48 来源:网络 阅读:719 作者:不良流浪者 栏目:数据库

    一大早上就接到浩子的QQ袭扰,说现场移动的人一堆的投诉,说dms连不上,查询没有数据,都快把他的电话打爆了。

    赶紧让浩子登到数据库服务器,确认数据库没有挂掉,进入数据库使用 show processlist发现有大量sleep进程,感觉很奇怪,怎么会有这么多sleep进程。

   mysql中sleep连接过多,Ufiner查询无数据

   看到IP集中在内网地址176上,登到176根据对应的端口号查看也不是应用程序出问题了,检查发现也很正常。

   看了一下最大连接数,设置的有点小,修改配置增加到1000,重启数据库后,sleep暂时消失,很快又有了许多sleep进程。

   网上找了一下原因,

   1. 使用了太多持久连接

   2. 程序中,没有及时关闭mysql连接

   3. 数据库查询不够优化,过度耗时。

   找浩子详细聊了下,移动很多用户查完数据都不会关掉Ufiner,甚至整天都不会关,造成大量进程占用。这就无语了,现实情况是咱也不能限制对方这么使用,好吧想到设置做个时间限制。


   网上搜到就是设置下面两个参数的值,就是在过期时间后自动清除sleep连接

   interactive_timeout:

   参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()    中使用CLIENT_INTERACTIVE选项的客户端。

   参数默认值:28800秒(8小时)


   wait_timeout:

   参数含义:服务器关闭非交互连接之前等待活动的秒数。

   参数默认值:28800秒(8小时)

   

   在配置文件/etc/my-ib.cnf的[mysqld]选项添加这两个参数,重启服务器,观察一段时间后问题解决。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI