Apache Web サーバーの CPU ロードに問題があります。
仮想マシンでUbuntu Server 12.04 LTSを実行しています。サーバーの仕様は次のとおりです。
- 8GB RAM;
- 4 個の vCPU ( 12ghz );
Drupal (7.23) ベースの Web サイトを実行するようにサーバーを構成しました。そこで、Apache、PHP、MySQL をインストールしました... バージョンは以下のとおりです。
- アパッチ 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
- ブースト 7.x-1.0-beta2
- キャッシュの有効期限 7.x-2.0-beta2
- キャプチャ 7.x-1.0
- カオス ツール スイート (ctools) 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
- パスオート 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
- シートノード 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
- ウェブフォーム検証 7.x-1.2
- ワークベンチ 7.x-1.2
- workbench_access 7.x-1.2
- ワークベンチ_メディア 7.x-1.1
- workbench_profile 7.x-1.1
- xmlsitemap 7.x-2.0-rc2
私のサイトはシンプルで、多くの訪問者がいません。1日500人ぐらい来てるかな。Drupal は CPU の負荷を非常に高くする可能性がありますか? それともモジュール?
私の問題は、CPU (すべてのコア) の負荷が高いことです。ほとんどの場合、負荷は 90% から 100% の間です。問題のあるプロセスは apache2です。メモリも容赦なく消費されます。合計 8GB のうち、消費されるメモリは約6.5GB ~ 7.5GBです。Apache の構成が間違っているのか、それともハードウェアを追加する必要があるのかはわかりません (必要ないと思います)。Drupal は高い CPU 負荷を引き起こす可能性がありますか?
CPU 負荷が 100% に達すると、サイトがダウンし、apache を再起動する必要があります。APCを使用してBoostをインストールするDrupalで回避策を実行しました。ある程度の効果はありましたが、CPU 負荷は依然として高くなっています。とても高い。
Drupal モジュールや PHP 拡張機能などの詳細情報が必要な場合。私にお知らせください。