在 MySQL 命令中显示 PROCESSLIST:sleep
Posted
技术标签:
【中文标题】在 MySQL 命令中显示 PROCESSLIST:sleep【英文标题】:SHOW PROCESSLIST in MySQL command: sleep 【发布时间】:2012-08-30 09:53:55 【问题描述】:当我在 mysql 数据库中运行 SHOW PROCESSLIST 时,我得到以下输出:
mysql> show full processlist;
+--------+------+-----------+--------+---------+-------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+------+-----------+-------+---------+-------+-------+-----------------------+
| 411665 | root | localhost | somedb | Sleep | 11388 | | NULL |
| 412109 | root | localhost | somedb | Query | 0 | NULL | show full processlist |
+--------+------+-----------+-------+---------+-------+-------+------------------------+
我想知道命令下的进程“睡眠”。这是什么意思?为什么它运行了很长时间并显示为NULL?它使数据库变慢,当我终止进程时,它可以正常工作。请帮帮我。
【问题讨论】:
它什么都不做,它只是坐在那里“等待”连接。 我们能找到哪个查询正在等待连接吗?我的问题有意义吗?以及为什么它会减慢我的数据库速度? 它不是一个等待连接的查询。它是一个等待超时终止的连接指针。并且对性能没有影响。它唯一使用的是每个连接都使用的几个字节。最糟糕的情况是使用池的一个连接,如果您通过控制台客户端连接多次并关闭客户端而不关闭连接,您可能会用完所有连接并且必须等待超时才能再次连接...但这不太可能:-) @Rufinus,我也有同样的问题。为什么你说但这不太可能?以及my.cnf中哪些参数与配置超时休眠连接有关? @hamidreza66 见***.com/questions/2407732/… 和dba.stackexchange.com/questions/1558/… 【参考方案1】:这不是等待连接的查询;这是一个等待超时终止的连接指针。
它对性能没有影响。它唯一使用的是每个连接都使用的几个字节。
真正最糟糕的情况:它正在使用您的池的一个连接;如果您要通过控制台客户端连接多次并关闭客户端而不关闭连接,您可能会用完所有连接并且必须等待超时才能再次连接......但这不太可能:-)
请参阅MySql Proccesslist filled with "Sleep" Entries leading to "Too many Connections"? 和https://dba.stackexchange.com/questions/1558/how-long-is-too-long-for-mysql-connections-to-sleep 了解更多信息。
【讨论】:
问题可能在于您与数据库的连接有限。因为即使这些连接对性能没有影响,它们仍然算作一个连接。【参考方案2】:“睡眠”状态连接通常由维护与数据库的持久连接的代码创建。
这可能包括由应用程序框架创建的连接池或客户端数据库管理工具。
正如上面在 cmets 中提到的,真的没有理由担心这些连接......当然,除非你不知道连接来自哪里。
(警告:如果您有一长串此类连接,则可能存在同时连接不足的危险。)
【讨论】:
【参考方案3】:我在这里找到了这个答案:https://dba.stackexchange.com/questions/1558。简而言之,使用以下(或在 my.cnf 中)将消除超时问题。
SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;
如果连接保持在睡眠状态 3 分钟(或任何您定义的时间),这将允许连接结束。
【讨论】:
【参考方案4】:睡眠意味着线程什么也不做。 时间过长,因为anthor线程查询,但没有断开服务器, 默认 wait_timeout=28800;因此您可以将值设置得更小,例如 10。 你也可以杀死线程。
【讨论】:
以上是关于在 MySQL 命令中显示 PROCESSLIST:sleep的主要内容,如果未能解决你的问题,请参考以下文章