来自 5 个 WP 站点的 LAMP 服务器 CPU 使用率达到 100%

来自 5 个 WP 站点的 LAMP 服务器 CPU 使用率达到 100%

我在 Google Cloud 上托管了一台服务器,配置为在 LAMP 堆栈上提供网站服务。目前,所有这些网站都是基于 WordPress 的,其中只有 5 个。

我有一台n1-standard-1服务器,它有 1 个 vCPU 和 3.75 GB 内存。考虑到服务器上的网站负载很小(即访客数量),这应该足够了。

现在,CPU 几乎总是处于 100% 或以上。见图。

服务器CPU使用率

服务器使用mpm_prefork及配置如下所示:

<IfModule mpm_prefork_module>
    StartServers                    2
    MinSpareServers                 2
    MaxSpareServers                 5
    MaxRequestWorkers               50
    ServerLimit                     50
    MaxConnectionsPerChild          0
</IfModule>

当我重新启动时apache2,总​​是出现以下错误/var/log/apache2/error.log

[Mon Jun 06 15:01:58.204747 2016] [mpm_prefork:notice] [pid 18177] AH00163: Apache/2.4.10 (Debian) configured -- resuming normal operations
[Mon Jun 06 15:01:58.204791 2016] [core:notice] [pid 18177] AH00094: Command line: '/usr/sbin/apache2'
[Mon Jun 06 15:02:18.815485 2016] [mpm_prefork:error] [pid 18177] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

此时运行htop,我看到 50 个线程已启动,每个线程的 CPU 使用率约为 2%(范围是 1.9% - 2.9%,但大多数线程为 1.9% 或 2.0%)。我确信此时访客流量不会造成很大负担 - 事实上,如果有的话。

然而,在我使用的另一台几乎完全相同但为不同公司服务的服务器上,我只看到少数几个 apache2 线程htop,每个线程几乎不使用 CPU。这台服务器没有问题,并且处理流量正常。

因此,我相信某些东西正在耗尽第一台机器上的所有资源 - 要么是恶意软件,要么是应用程序级的东西,例如 WP 插件。

所以,我的问题是:

我该如何具体查看导致此问题的原因?问题是 apache2 线程本身就占用了 100% 以上的 CPU。

我推测是某个插件导致了问题,例如缓存插件或图像处理插件或类似的东西,这些插件占用大量 CPU。如果有帮助的话,我可以提供完整的插件列表,但我如何从服务器级别开始工作,而不是从应用程序级别开始工作?

编辑:

参见顶部输出图像:

top 命令的输出

查看 XML-RPC 攻击,我发现 All In One WP Security 插件周围有大约 2000 个错误。我想这就是我可以从这里开始寻找问题的地方。如果需要,我会问一些新问题,如果我可以更具体一点。谢谢

答案1

事实证明该网站已从另一台服务器迁移过来,但旧服务器仍保留着。

wp-cron.php旧服务器每秒调用大约 10 次通过域名并因此调用新的服务器。

这会导致大量的 CPU 占用。

我关闭了旧服务器。

相关内容