我托管了一个wordpress博客,自6月5日以来,我一直在AWS上托管100%的CPU负载(高于5%)。
现在,我添加了许多插件,主要是每个用户每个页面加载20个mysql查询的插件。问题是我添加了许多脚本而没有意识到负载,因此无法禁用它们。
理想情况下,我将更改代码,以便恢复CPU负载。
最佳答案
我看到的导致此问题的原因在wordpress上尤其是在具有许多插件的网站上是wp-cron.php
。这是一个伪cron作业,它运行每个请求,并且随着它的执行越来越多,这些作业可以彼此排成队列,在下一轮启动之前从未完成,从而导致CPU失控。
在wp-config.php
中,可以通过添加以下内容来禁用此功能:
define('DISABLE_WP_CRON', true);
但是,这将阻止某些依赖它的事物起作用。因此,您可以将cron添加到服务器以每5分钟运行一次:
*/5 * * * * wget -q -O - "http://example.com/wp-cron.php" > /dev/null 2>&1
如果您不熟悉cron,则可以通过在服务器控制台中运行
crontab -e
来添加任务。