Ubuntu 运行 Apache 服务器 (Prefork) PHP Fast-CGi CPU 使用率过高

Ubuntu 运行 Apache 服务器 (Prefork) PHP Fast-CGi CPU 使用率过高

我的服务器由于 CPU 使用率过高而运行非常缓慢。我认为这肯定是配置问题,但我说不出原因。该服务器正在运行 Plesk,我已将 PHP 配置为作为 Fast CGi 应用程序运行。

服务器规格:

Quad-Core AMD 2.2GHz
4GB RAM
Ubuntu 10.04
Apache 2.2.14
PHP 5.3.2

网站:

1 x Drupal 7
2 x WordPress 3.x

Apache 配置:

KeepAlive On
Timeout 30
MaxKeepAliveRequests 0
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    StartServers          4
    MinSpareServers       5
    MaxSpareServers       10
    MaxClients            20
    MaxRequestsPerChild   5000
</IfModule>

注意高 CPU

我启用了 APC,并且 Drupal 站点已打开所有缓存,包括视图中的缓存。我在 CentOS 上还有另一台服务器,运行着 100 多个站点,CPU 使用率非常低。有什么想法可能导致这种情况吗?

这是 mod_status 输出的截图

在此处输入图片描述

除了超出 MaxClients 之外,apache error.log 中也没有其他输出。

top CPU 和内存线4月25日添加 在此处输入图片描述

答案1

Apache 或 PHP 调优再多也无济于事,是时候看看是什么让 Drupal 或 Wordpress 如此缓慢了。我猜你在其中的一个或两个中有一些自定义模块,而一些自定义模块正在拖累性能。尝试逐个禁用自定义模块,看看是否有帮助。还可以在数据库中启用日志记录,并找出缓慢和/或过多的查询。

说到 Drupal,促进可以极大地提高性能。使用 WordPress,W3TC往往会有很大帮助。

答案2

我的问题现在已经解决,下面是我采取的步骤。

  • 将服务器迁移到 Ubuntu 14 LTS,并安装最新软件(包括 PHP 5.5)
  • 将 MySQL 负载拆分到其自己的服务器实例上
  • 卸载不需要的 Drupal 模块

笔记:以上方法均未解决我的 CPU 问题

添加蜜罐来自http://www.projecthoneypot.org/然后 BOOM,CPU 负载降低到 10% 以下。所以我的问题归结于 HTTP 垃圾邮件以每秒超过 5 个请求(每天 400,000 个)的速度涌入一个包含大量 SQL 查询的页面,但有一个问题仍然存在...我的网站似乎无法很好地扩展,我想如果这是合法的流量,我必须尽可能地优化/缓存,正如 Janne 所建议的那样。

感谢大家的建议。

相关内容