php - ExpressionEngine 不关闭 MySQL 和 Apache 连接

标签 php mysql expressionengine

我今晚使用 ExpressionEngine 启动了一个客户端站点,它立即将 100 个可用的 MySQL 连接数增加到最大值,因此在将可用连接数增加一倍后,它继续消耗所有可用连接数。检查服务器后,它似乎也保持打开的 Apache 连接。

所以我的问题是为什么它让这些连接保持打开状态,我该怎么做才能修复它?否则,当网站加载时,网站会像糖蜜一样缓慢。谢谢。

最佳答案

mysql 连接很可能是副作用。我说这主要是因为如果你看到大量的 apache 进程也在运行 EE 正在进入一个阶段,它已经开始打开与 MySQL 的连接,但正在等待 apache/php 端的某些东西完成并关闭联系。

您可能想要在 EE 中打开模板调试,点击公共(public)站点上加载速度较慢的页面之一,但请确保您已登录 super 管理员。您应该看到 EE 为构建该页面所做的每项操作、花费的时间以及 php 内存使用量。您也许能够识别标签、第三方加载项或导致 apache 端速度变慢的因素,这些因素也会导致 MySQL 中打开连接的副作用。

在查看时我应该开始的事情:显示完整的进程列表;在 mysql 中,列出的进程是否显示长时间运行的查询,或者它们全部或大部分列为“ sleep ”。如果在 sleep ,他们很可能会陷入上述情况。

在调用外部数据源(如 RSS 提要)、外部 API(如 Twitter 等)时也看到过这种情况,但同样可能是在 EE 模板端运行时间太长导致 EE 保持这些 mysql 连接打开直到 EE/php 最终完成并准备好正确关闭连接。

关于php - ExpressionEngine 不关闭 MySQL 和 Apache 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311649/

相关文章:

c# - 如何从数据库 SQL 添加组合框值

expressionengine - 需要将 Expresso Store 中的修饰符值设置为 0

javascript - .each(function() 中包含多个函数 - jQuery

php - 表达式引擎 - PHP - 无法运行函数

php - 如何在 Laravel 中做一个简单的重定向?

php - Mysql相似文搜索

php - 为什么图像不是从 php 中的视频生成的

php - 使用 PHP 从字符串中的一行开头删除数字

Mysql - 哪个索引更好?

sql - 将列中的 CSV 记录转换为多行