【问题标题】:.php-fpm-bin 100% CPU usage. How to track the exact script causing it?.php-fpm-bin 100% CPU 使用率。如何跟踪导致它的确切脚本?
【发布时间】:2017-06-15 14:24:47
【问题描述】:

我正在托管一个 wordpress 博客,自 6 月 5 日以来,我一直拥有 100% 的 CPU 负载(高于 5%),托管在 AWS 上。

现在,我添加了许多插件,主要是每个用户在每个页面加载时执行 20 个 mysql 查询的插件。问题是我在没有意识到负载的情况下添加了许多脚本,而且我无法禁用它们。

理想情况下,我会更改代码,以便恢复 CPU 负载。

【问题讨论】:

  • 如果您在顶部按c,它会显示有关该命令的更多详细信息。这对你有什么用吗?
  • php-fpm: 池 wordpress
  • ecenica.com/support/answer/fix-high-cpu-load-wordpress 可能会有所帮助。不幸的是,我不知道通过内部 PHP 进程分解 CPU 的方法。
  • 我读过,没用 :(
  • 无法告诉您它的确切脚本是什么,但是,我在为 bitnami wordpress 应用程序提供服务的 Google 计算引擎实例上遇到了同样的问题,我设法通过重新启动 PHP-FPM 来解决这个问题: /opt/bitnami/ctlscript.sh restart php-fpm.

标签: php wordpress performance cpu-usage


【解决方案1】:

我在 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 来添加任务。

【讨论】:

  • 不幸的是,这也没有帮助
【解决方案2】:

您可能很难从顶部查明问题。您可以为 PHP 安装 NewRelic 应用程序监控。这将突出显示缓慢的事务,并让您更好地了解导致高负载的原因。

我与 NR 没有任何隶属关系,但确实在我的所有服务器/应用程序上使用它以获得良好的效果。我相信你可以在没有信用卡的情况下免费试用 14 天。

很抱歉,这并没有具体回答您的问题,但希望能帮助您深入了解它。

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2012-03-14
    • 2020-09-16
    • 2013-11-30
    • 2019-01-14
    • 1970-01-01
    • 2016-07-14
    • 2012-06-06
    相关资源
    最近更新 更多