Apache HTTP verbrauchen zu viel CPU
Ich habe einige Probleme mit der CPU-Belastung mit Apache-Web-Server.
Läuft eine Ubuntu Server 12.04 LTS auf einer Virtuellen Maschine. Unsere server haben die folgenden Spezifikationen:
- 8GB RAM;
- 4 vCPUs (12ghz);
Konfigurierten wir server, die zum ausführen eines Drupal (7.23) basierte website. So, wir installierten Apache -, PHP -, MySQL - ... Die Versionen sind unter:
- Apache 2.2.22;
- PHP 5.3.10 (Dem PHP läuft als Apache-Modul.);
- APC 3.1.7;
- MySQL 5.5.31 (alle innodb-Tabellen);
Ich bin mit einigen apache-Module zu. Werfen Sie einen Blick (apachectl -M
):
- core_module (statisch)
- log_config_module (statisch)
- logio_module (statisch)
- mpm_prefork_module (statisch)
- http_module (statisch)
- so_module (statisch)
- actions_module (shared)
- alias_module (shared)
- authz_host_module (shared)
- deflate_module (shared)
- dir_module (shared)
- env_module (shared)
- include_module (shared)
- mime_module (shared)
- php5_module (shared)
- proxy_module (shared)
- proxy_http_module (shared)
- reqtimeout_module (shared)
- rewrite_module (shared)
- setenvif_module (shared)
- ssl_module (shared)
- status_module (shared)
Auf apache2.conf, wir haben in dieser config:
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>
Den Virtuellen Host meiner Website:
<VirtualHost *:80>
ServerName blabla.bla.bla
ServerAdmin [email protected]
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-Module:
- ACL 7.x-1.0
- APC - Alternative PHP Cache 7.x-1.0-beta4
- - Boost-7.x-1.0-beta2
- Cache-Ablaufdatum-7.x-2.0-beta2
- CAPTCHA-7.x-1.0
- Chaos tool suite (ctools) 7.x-1.3
- Datum 7.x-2.6
- Domain Access 7.x-3.10
- Domain Blöcke 7.x-2.0
- Domain CTools 7.x-1.3
- Domain-Locale-7.x-1.0-beta3
- Domain-Taxonomie 7.x-3.x-dev (2012-abr-29)
- Domain-Ansichten 7.x-1.5
- Einbetten Von Ansichten 7.x-1.2
- Entity API 7.x-1.2
- Entity-Referenz 7.x-1.0
- IMCE-7.x-1.7
- IMCE Mkdir 7.x-1.0
- Internationalisierung 7.x-1.10
- Link 7.x-1.1
- Lokalisierungs-update-7.x-1.0-beta3
- Media-7.x-1.3
- Meta tags quick 7.x-2.7
- Newsletter 7.x-1.0-beta9
- Optionen Element 7.x-1.9
- Seite Stil 7.x-1.0
- Panels 7.x-3.3
- Pathauto 7.x-1.2
- pathologischen 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-Authentifizierung Unterstützung 7.x-1.0
- Token-7.x-1.5
- Transliteration 7.x-3.1
- Variable 7.x-2.3
- Ansichten 7.x-3.7
- Wortschatz Berechtigungen Pro Rolle 7.x-1.0
- Webform-7.x-3.19
- Webform Validation 7.x-1.2
- workbench 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
Meine Seite ist einfach und nicht viele Besucher. Ich spreche über 500 Besucher am Tag vielleicht. Drupal kann dazu führen, dass so viel CPU-Belastung? Oder ein Modul?
Mein problem ist, dass die CPU (alle Kerne) haben eine hohe Belastung. Die meisten der Zeit, zu schlagen zwischen 90% und 100% Last! Die problematischen Prozess ist die apache2. Speicher wird auch verbraucht, ohne Mitleid. Von insgesamt 8 GB, die verbrauchten Speicher ist über 6,5 GB auf 7,5 GB. Ich weiß nicht, ob meine apache-Konfiguration falsch ist oder wenn ich wirklich brauchen mehr hardware (ich denke nicht). Drupal kann zu hohen CPU-Last?
Wenn die Auslastung der CPU hat 100%, die Seite geht down und wir haben zu starten Sie apache neu. Ich habe eine workaround-Lösung mit Drupal Verwendung von APC und die Installation von Boost. hatte einige Wirksamkeit, aber die CPU-Last immer noch hoch. Sehr hoch.
Wenn du mehr Informationen benötigst, wie Drupal-Module und PHP-Erweiterungen. Bitte lassen Sie mich wissen.
InformationsquelleAutor Ricardo Giaviti | 2013-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin kein Server-Experte, daher kann ich keine hinzuweisen, den genauen Grund. Drupal verbraucht ~ 10 MB Speicher pro Aufruf. Installieren Devel-Modul und es gibt eine checkbox setzen, wird an jedem Ende von Seite page load und memory-Auslastung der Linie während den Aufruf einer Seite.
Als ich sehe, Sie aktiviert die boost-Modul. Dieser ist die Schaffung eines /cache/Ordner im root-oder preset-Ordner, der enthält die statischen Dateien. Auf diese Weise werden die Seiten nicht verarbeitet, über SQL und PHP. Es sollten keine so hohe Belastung von Drupal.
Da diese würde gelöscht werden, möchte ich darauf hinweisen, dass Sie arbeiten sollten, auf die server-Einstellungen. Sie werden definitiv ein Problem gibt. Wie hast du Messen, die hohen Belastungen? Top oder "collectD" wie peak? Ausführen $ Befehl top und sehen, ob diese Belastung ist permanent, eine Seite zu laden und sehen, ob es schießt heraus. Der $ top-Befehl zeigt auch die Ressourcen-Verbraucher.
Ist es eine dedizierte Maschine oder eine virtuelle Maschine?
InformationsquelleAutor Francis