我今晚使用ExpressionEngine启动了一个客户端站点,它立即启动了100个可用的MySQL连接,因此在将可用连接数增加一倍后,它继续消耗所有可用连接。检查服务器后,它似乎也保持打开的Apache连接。
所以我的问题是为什么它会打开这些连接,我该怎么做才能解决它?否则,当站点加载时,站点作为糖蜜的速度很慢。感谢。
答案 0 :(得分:4)
mysql连接最有可能产生副作用。我之所以这么说,主要是因为如果你看到大量的apache进程也运行EE正在进入一个阶段,它已经开始打开与MySQL的连接但是正在等待apache / php端的东西来完成东西并关闭连接。
您可能想要打开EE中的模板调试,点击公共站点上的一个慢速加载页面,但请确保您已登录超级管理员。您应该看到EE正在构建该页面的每个操作,所花费的时间以及php内存使用量。您可能能够识别标记,第三方加载项或导致Apache缓存减慢的因素,这也会导致MySQL中打开连接的副作用。
我应该在开始时看到的东西:show full processlist;在mysql中,列出的进程显示长时间运行的查询,或者它们全部或大部分列为“休眠”。如果睡觉,他们很可能会陷入上述情况。
在调用外部数据源(如RSS源,外部API,如Twitter等)时也看到过这种情况,但再一次只能在EE模板端运行太长时间,导致EE保留这些mysql连接打开直到EE / php最终完成并准备好正确关闭连接。
答案 1 :(得分:0)
在EE控制面板中,转到管理员→系统管理→数据库设置,并确保持久性数据库连接设置为否
您还需要确保 /system/exoressionengine/config/config.php 文件中没有$config['pconnect']
行。