繁体   English   中英

Apache HTTP消耗过多的CPU

[英]Apache HTTP consuming too much CPU

我在使用Apache Web Server加载CPU时遇到了一些麻烦。

我们正在虚拟机上运行Ubuntu Server 12.04 LTS 我们的服务器具有以下规格:

  • 8GB RAM;
  • 4个vCPU( 12ghz );

我们将服务器配置为运行基于Drupal(7.23)的网站 因此,我们安装了Apache,PHP,MySQL ...以下版本:

  • Apache 2.2.22;
  • PHP 5.3.10( PHP作为Apache模块运行。 );
  • APC 3.1.7;
  • MySQL 5.5.31(所有innodb表);

我也正在运行一些Apache模块 看一下( apachectl -M ):

  • core_module(静态)
  • log_config_module(静态)
  • logio_module(静态)
  • mpm_prefork_module(静态)
  • http_module(静态)
  • so_module(静态)
  • actions_module(共享)
  • alias_module(共享)
  • authz_host_module(共享)
  • deflate_module(共享)
  • dir_module(共享)
  • env_module(共享)
  • include_module(共享)
  • mime_module(共享)
  • php5_module(共享)
  • proxy_module(共享)
  • proxy_http_module(共享)
  • reqtimeout_module(共享)
  • rewrite_module(共享)
  • setenvif_module(共享)
  • ssl_module(共享)
  • status_module(共享)

apache2.conf上 ,我们有以下配置:

    Timeout 90
    KeepAlive On
    MaxKeepAliveRequests 80
    KeepAliveTimeout 5
    HostnameLookups Off
    LogLevel warn

    <IfModule mpm_prefork_module>
        StartServers          10
        MinSpareServers       10
        MaxSpareServers       30
        MaxClients           120
        MaxRequestsPerChild 1000
    </IfModule>

我的网站的虚拟主机

    <VirtualHost *:80>
        ServerName blabla.bla.bla
        ServerAdmin bla@bla.com
        DocumentRoot /l/disk0/site/public_html

        <Directory />
            AllowOverride None
        </Directory>

        <Directory /l/disk0/site/public_html>
            Options MultiViews Indexes Includes FollowSymLinks ExecCGI
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        LogLevel warn
        ErrorLog "/l/disk0/site/logs/apache/site/error.log"
        CustomLog "/l/disk0/site/logs/apache/sit/access.log" combined
        SSLProxyEngine on
        RewriteEngine   on
        RewriteLog     logs/rewrite_www_log
        RewriteLogLevel        0

        Include rewrites-www.conf
</VirtualHost>

Drupal模块:

  • ACL 7.x-1.0
  • APC-备用PHP缓存7.x-1.0-beta4
  • Boost 7.x-1.0-beta2
  • 缓存过期7.x-2.0-beta2
  • 验证码7.x-1.0
  • 混沌工具套件(工具)7.x-1.3
  • 日期7.x-2.6
  • 域访问7.x-3.10
  • 域块7.x-2.0
  • 域CTools 7.x-1.3
  • 域语言环境7.x-1.0-beta3
  • 域分类法7.x-3.x-dev(2012-abr-29)
  • 域视图7.x-1.5
  • 嵌入视图显示7.x-1.2
  • 实体API 7.x-1.2
  • 实体参考7.x-1.0
  • IMCE 7.x-1.7
  • IMCE Mkdir 7.x-1.0
  • 国际化7.x-1.10
  • 链接7.x-1.1
  • 本地化更新7.x-1.0-beta3
  • 媒体7.x-1.3
  • 元标记快速7.x-2.7
  • 电子报7.x-1.0-beta9
  • 选项元素7.x-1.9
  • 页面样式7.x-1.0
  • 面板7.x-3.3
  • Pathauto 7.x-1.2
  • 病理学7.x-2.11
  • profile2 7.x-1.3 + 0-dev(2013-mai-24)
  • select_or_other 7.x-2.19
  • sheetnode 7.x-1.0-beta4 + 3-dev(2013-mai-25)
  • SMTP验证支持7.x-1.0
  • 令牌7.x-1.5
  • 音译7.x-3.1
  • 变量7.x-2.3
  • 意见7.x-3.7
  • 每个角色的词汇权限7.x-1.0
  • 网络表格7.x-3.19
  • Webform验证7.x-1.2
  • 工作台7.x-1.2
  • workbench_access 7.x-1.2
  • workbench_media 7.x-1.1
  • workbench_profile 7.x-1.1
  • xmlsitemap 7.x-2.0-rc2

我的网站很简单,没有太多的访问者。 我每天可能要谈论500位访客。 Drupal会导致这么多的CPU负载吗? 还是模块?

我的问题是CPU(所有内核)的负载很高。 大多数情况下,负载会达到90%到100%之间! 令人讨厌的过程是apache2 内存消耗也很可惜。 在总共8GB的内存中,消耗的内存约为6.5GB至7.5GB 我不知道我的apache配置是否错误,或者我是否真的需要更多硬件(我想不是)。 Drupal会导致CPU负载过高吗?

当CPU负载达到100%时,该站点将关闭,我们必须重新启动apache。 我使用APC并安装Boost来与Drupal一起解决问题。 虽然有一定效果,但是CPU负载仍然很高。 很高。

如果您需要更多信息,例如Drupal模块和PHP扩展。 请告诉我。

我不是服务器专家,所以我无法指出确切原因。 Drupal每次调用消耗约10MB的内存。 安装Devel模块,然后有一个复选框将在调用页面时在页面的每一端放置页面加载和内存使用情况行。

如我所见,您启用了boost模块。 这是在包含静态文件的根目录或预设文件夹中创建一个/ cache /文件夹。 这样,就不会通过SQL和PHP处理页面。 Drupal不应有这么高的负载。

由于这将被清除,因此我指出您应该在服务器设置上进行操作。 您肯定在那里有任何问题。 您如何测量这些高负载? 顶峰还是“ collectD”峰? 运行$ top命令,查看此负载是否是永久的,加载页面并查看其是否发亮。 $ top命令还显示了最多的资源使用者。

它是专用机还是虚拟机?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM