【问题标题】:Too many sleeping processes (MySQL) [closed]睡眠进程太多(MySQL)[关闭]
【发布时间】:2021-02-27 00:38:57
【问题描述】:

我在高峰时段遇到问题,我得到“建立数据库连接时出错”。在日志中,它是“连接太多”。如果不先重新启动 mysql,我无法手动连接到数据库。

我检查了数据库中发生的情况,看起来它主要是处于睡眠状态的进程。我不知道为什么。

在服务器上,我运行 10 多个带有各种主题和插件的 Wordpress 站点(全部通过 https://spinupwp.com/)。我现在所做的是运行MySQLTuner-perl 并实施了它的建议,因为 MySQL 处于默认设置中。而且我正在等待高峰时段,这不是我认为的最聪明的时间。

你能推荐我一种方法来识别哪个 PHP 文件或 http 请求对此负责吗?

mysql> show processlist;
+-------+-------+-----------+-----------------------+---------+------+----------+------------------+
| Id    | User  | Host      | db                    | Command | Time | State    | Info             |
+-------+-------+-----------+-----------------------+---------+------+----------+------------------+
|   423 | dbuser | localhost | NULL                  | Query   |    0 | starting | show processlist |
|   448 | dbuser | localhost | my_dbname_wp | Sleep   |  242 |          | NULL             |
|   452 | dbuser | localhost | my_dbname_wp | Sleep   |  242 |          | NULL             |
|   455 | dbuser | localhost | my_dbname_wp | Sleep   |  241 |          | NULL             |
|   936 | dbuser | localhost | my_dbname_wp | Sleep   |  217 |          | NULL             |
|  5715 | dbuser | localhost | my_dbname_wp | Sleep   |  164 |          | NULL             |
|  8669 | dbuser | localhost | my_dbname_wp | Sleep   |  139 |          | NULL             |
| 10353 | dbuser | localhost | my_dbname_wp | Sleep   |  125 |          | NULL             |
| 10631 | dbuser | localhost | my_dbname_wp | Sleep   |  123 |          | NULL             |
| 10724 | dbuser | localhost | my_dbname_wp | Sleep   |  122 |          | NULL             |
| 10867 | dbuser | localhost | my_dbname_wp | Sleep   |  121 |          | NULL             |
| 11084 | dbuser | localhost | my_dbname_wp | Sleep   |  119 |          | NULL             |
| 11102 | dbuser | localhost | my_dbname_wp | Sleep   |  119 |          | NULL             |
| 11226 | dbuser | localhost | my_dbname_wp | Sleep   |  118 |          | NULL             |
| 11669 | dbuser | localhost | my_dbname_wp | Sleep   |  114 |          | NULL             |
| 11726 | dbuser | localhost | my_dbname_wp | Sleep   |  114 |          | NULL             |
| 11851 | dbuser | localhost | my_dbname_wp | Sleep   |  113 |          | NULL             |
| 11994 | dbuser | localhost | my_dbname_wp | Sleep   |  112 |          | NULL             |
| 12006 | dbuser | localhost | my_dbname_wp | Sleep   |  112 |          | NULL   

【问题讨论】:

  • 请发布新的“显示完整进程列表;”与您的原始版本进行比较。
  • 显示完整的进程列表;将包括正在运行的 QUERY。并发布整个输出,而不仅仅是第一页。您可能需要发布到 pastebin.com 并分享链接,拜托。还要发布用于连接、处理、断开连接的 PHP 代码。好像有人忘记“关闭”连接了。

标签: php mysql nginx devops


【解决方案1】:

似乎是这个插件 - https://wordpress.org/plugins/disable-json-api/。它阻止了一些闲置的 /wp-admin/admin-ajax.php 请求。禁用插件不是一个正确的解决方案,但它有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多