MySQL中查询当前的连接数:

mysql> show status like '%Threads_connected%';

+-------------------+-------+

| Variable_name | Value |

+-------------------+-------+

| Threads_connected | 27 |

+-------------------+-------+

1 row in set (0.00 sec)

查询最大连接数:

show variables like '%max_connections%';

set GLOBAL max_connections=800;

flush privileges

也可以修改/etc/my.cnf中的max_connections:

max_connections = 1000

在mysql客户端下执行show processlist可以看到很多sleep的进程,这些进程就是人们常说的死连接,它们会一直保持sleep,直到my.cnf里面设置的wait_timeout这个参数值的时间到了,mysql才会自己杀死它。在杀死它的时候,mysql还会在error-log里面记录一条Aborted connection xxx to db: 'xxx' user: 'xxx' host: 'xxx'的日志,用google翻译一下,会得到一个相当强悍的解释"胎死腹中的连接"!

可以通过如下命令查看系统设置的超时时间:

show global variables like '%timeout';

set global wait_timeout = 10;

那么造成sleep的原因,有三个,下面是mysql手册给出的解释:

客户端程序在退出之前没有调用mysql_close()。(写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接)

客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. (类似常连,类似于不完整的tcp ip协议构造,服务端一直认为客户端仍然存在(有可能客户端已经断掉了))

客户端程序在结束之前向服务器发送了请求还没得到返回结果就结束掉了. (参看:tcp ip协议的三次握手)

配置MySQL里的参数。超时时间设置。

max_connections:

允许的同时客户的数量。负载过大时,你将经常看到 too many connections 错误。已达到最大链接数,所以会出现这种情况。

wait_timeout

服务器在关闭连接之前在一个连接上等待行动的秒数,默认数值是28800,即如果没有事情发生,服务器在 8个小时后关闭连接。防止sleep过多而导致出现too many connections。

如果你的sleep进程数在同一时间内过多,再加上其他状态的连接,总数超过了max_connection的值,那mysql除了root用户外,就无法再继续处理任何请求无法与任何请求建立连接或者直接down了。所以,这个问题在大负载的情况下还是相当严重的。如果发现你的mysql有很多死连接存在,首先要先检查你的程序是否使用的是pconnect的方式,其次,检查在页面执行完毕前是否及时调用了mysql_close()。

还有一个办法,你可以在my.cnf里面加上wait_timeout和interactive_timeout,把他们的值设的小一些,默认情况下wait_timeout的值是8小时的时间,你可以改成1个小时,或半个小时。这样mysql会更快的杀死死连接。防止连接总数超过max_connection的值。或者把max_connection的值设置的更大,不过这样显然不妥,连接的数量越多,对你服务器的压力越大。实际上那些连接都是冗余的,把它们尽快杀死才是上策。

wait_timeout过大有弊端,其体现就是MySQL里大量的sleep进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题,通常来说,我觉得把wait_timeout设置为10是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间).

mysql sleep详解_MySQL Sleep进程相关推荐

  1. mysql同步详解_MYSQL 主从同步详解

    MYSQL 主从同步详解 作者: 稀土掘金 更新时间:2021-01-22 15:08:29 原文链接 关于MYSQL主从同步 什么是MYSQL的主从复制 主从复制是指将一个服务器作为主服务器,所有的 ...

  2. mysql between详解_MySQL中BETWEEN子句的用法实例详解

    这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下 可以使用IN子句来代替相结合的"大于等于和小于等于"的条件. 要 ...

  3. mysql sleep详解_mysql sleep链接过多的原因及解决办法

    今天收到运维同事短信,说有个线上业务"可能是数据库DB堵塞了,导致mysql链接过多,让我看一下". 回家后赶紧用家里vpn登录数据库服务器,show processlist 看了 ...

  4. redis mysql配置文件详解_mysql配置文件my.cnf详解

    basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件 ...

  5. mysql提示符详解_MySQL字符集使用详解

    查看字符集相关变量 mysql> show variables like 'character%'; +--------–+-----------+ | Variable_name | Valu ...

  6. mysql 优化详解_MySQL 优化详解

    1.缓存池 MySQL的设计是通过缓存池的方式的,也就是说将一部分的数据都储存到内存中,当我们查找一个数据的时候,如果发现在缓存池中的时候,就能够直接的 从缓存中获取,如果不在的话,那么就去磁盘中加载 ...

  7. mysql索引详解_MySQL索引详解

    导读:大家都知道,一个MySQL数据库能够储存大量的数据,如果要查找那一个数据,就得费好大劲从一大堆的数据中找到,即费时间又费力气,这时,索引的出现就大大减轻了数据库管理员的工作.本文介绍了数据库索引 ...

  8. linux mysql 实例详解_MySQL 多实例详解

    目录 一.基本概念 1.MySQL多实例 就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程.这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文 ...

  9. mysql 数据类型详解_MySQL笔记之数据类型详解

    字符型数据 字符型数据可以使用定长或变长的字符串来实现,其不同点在于固定长度的字符串使用空格向右填充,以保证占用同样的字节数;变长字符串不需要向右填充,并且所有字节数可变. char          ...

最新文章

  1. MySQL第3天:MySQL的架构介绍之linux版安装
  2. 虚拟函数的静态决议 和 RTTI 小例子
  3. java循环基础知识_Java基础知识·循环语句
  4. 运用El表达式截取字符串/获取list的长度
  5. g4900 win7 核显驱动_9代酷睿跑WIN7 你要的主板来了
  6. 充值加油卡骗局:一次伪金融诈骗为何能圈数亿
  7. Linux服务器的那些性能参数指标
  8. python实现对指定字符串补足固定长度倍数截断输出
  9. Android APP
  10. AnyForWeb告诉你什么才是“最好的”编程语言
  11. [Apio2012]dispatching 左偏树
  12. C++客户端面经总结
  13. 【DP SDOI2008 BZOJ 2037】Sue的小球
  14. 322. Coin Change
  15. Android中实现双指缩放的功能
  16. Word转PDF免费的网站——speedpdf在线免费转换器
  17. 关于cox单因素与多因素分析
  18. 手机端自适应表格table样式如何写
  19. Windows打印管理解决方案
  20. Vue自定义组件--输入框的双向绑定--自动切换输入法的录入框

热门文章

  1. 21杭电计算机考研回忆录
  2. STM32与Atmega8之间IIC通讯
  3. Android文件命名规范初版
  4. 软考可以在上海积分落户吗?很多人分不清!
  5. hypermesh 复合材料_Hyper mesh轮胎有限元仿真前处理
  6. 补贴与付费:如何完成从「补贴」到「付费」的过渡
  7. 阿里java设计模式面试题汇总(附答案),看看你都掌握了吗
  8. java 多项目_Java开发小技巧(三):Maven多工程依赖项目
  9. c语言中int的表示范围是-32768~32767!
  10. 极1s刷Padavan改华硕[N14U N54U]固件