vServer Load Avg. schwankt / woran liegts?

lotrac

New Member
Hi,

ich habe einen nicht allzu kleinen vServer (1024 MB RAM) mit Debian Etch, auf dem eigentlich nur folgendes läuft

- Apache2 mit PHP5 über mod_fcgid
- MySQL
- Postfix / Dovecot

Der Apache ist im Moment eigentlich nur für 2-3 kleine Seiten (100-200 Besucher / Tag) und mein privates SVN zuständig, der Mailserver hat auch nicht mehr zu verarbeiten, als ein paar hundert Mails am Tag. MySQL hat auch nicht allzuviel zu tun: Datenbank für ein Wordpress, Virtuelle Maildomains & Adressen für Postfix&Dovecot und ein paar kleine Projekte, auf die aber nur sporadisch und wenn dann so gut wie eh nur von mir zugegriffen wird.

Trotzdem habe ich teilweise erhebliche Probleme, v.A. mit dem Webserver. Zu bestimmten Zeiten, beispielsweise jetzt, schiesst die Load Avg. auf teilweise über 10, was den Server so gut nicht mehr ansprechbar macht. SSH-Login dauert teilweise Minuten, beim Aufruf einer PHP-Seite quittiert der Server nach teilweise minutenlangem Laden mit Internal Server Error (premature end of script headers):

Code:
[Mon Jul 07 18:05:42 2008] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: index.php
[Mon Jul 07 18:06:10 2008] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: index.php

Meine Frage: bezieht sich die Load Average auf den vServer, oder auf das Hostsystem, auf dem der vServer läuft? Also, ist die Geschichte meine Schuld und ich habe was an der Konfiguration verbockt oder die des Providers, der meinen vServer auf einem überlasteten Host laufen lässt? Ich kann zumindest über top keine Prozesse finden, die jetz besonders viel Last verursachen würden (siehe Screenshot).

Falls das von Bedeutung sein sollte: Kernel ist 2.6.18-ovz-028stab053.5-enterprise (also OpenVZ denke ich?).

Hier ein Screenshot von top nach so einer Lastspitze (Load war > 12):

http://img229.imageshack.us/my.php?image=topscreenwp3.jpg
MOD: Bilder bitte immer als Anhang.

Noch eine andere Frage: auch wenn die Last auf dem Server recht gering ist, benötigen Requests von PHP Seiten teilweise ziemlich lange, bis diese überhaupt reagieren (teilweise sekundenlang "Warte auf..." in Firefox).

Meine Apache-Config

Code:
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
 
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

Ein vHost

Code:
<VirtualHost *:80>
        ServerName example.com
 
        SuexecUserGroup user user
        AddHandler fcgid-script .php
 
        DocumentRoot "/var/www/vh/user/example.com/web/"
        <Directory "/var/www/vh/user/example.com/web/">
                FCGIWrapper /var/www/fastcgi/user/php-fcgi/php-fcgi-starter .php
                Options ExecCGI FollowSymLinks
                AllowOverride All
        </Directory>
 
        ErrorLog /var/www/vh/user/example.com/logs/error.log
        CustomLog /var/www/vh/user/example.com/logs/access.log combined
        LogLevel error
</VirtualHost>

Mein php-fcgi Starterscript dazu:

Code:
#!/bin/sh
PHPRC="/var/www/fastcgi/username/conf/"
export PHPRC
 
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
 
exec /usr/bin/php5-cgi

Aktivierte Apache Module

Code:
actions
alias
auth_basic
auth_digest
authn_file
authz_default
authz_host
authz_user
autoindex
cgid
dav
dav_fs
dav_svn
dir
env
fcgid
include
mime
mod_python
rewrite
setenvif
ssl
status
suexec

Die Apache2-Config sind eigentlich die Defaultwerte von Debian. Wenn ich mir andere Anfragen zu vServern so ansehe, sind diese doch ziemlich hoch, oder (z.B. MaxClients 150)?

Ich experimentiere jetzt eigentlich schon ziemlich lang an der Konfiguration herum, habe es aber nie so hinbekommen, dass der Webserver richtig schön schnell reagiert (zumindest für dynamische Seiten, für statische ist es kein Problem, wenn nicht gerade die Load Avg. wieder hoch ist). Ich würd den Server eigentlich gerne als Entwicklungsserver für diverse Webprojekte verwenden, aber es ist teilweise wirklich nicht möglich, darauf vernünftig zu arbeiten, ohne jede Menge Zeit durch die langen Antwortzeiten und die Internal Server Errors zu bekommen. Vielleicht hat ja jemand eine Idee, an was es liegen könnte.

Vielen Dank fürs drüberschauen,
lotrac
 

Attachments

  • topscreenwp3.jpg
    topscreenwp3.jpg
    109.5 KB · Views: 228
Last edited by a moderator:
Die Load-Anzeige ist die des vServer, nicht die des Host.

Vielleicht mal "htop" laufen lassen. Da sieht man ein wenig mehr, welche Programme mit welchen Parametern aufgerufen werden. Vielleicht auch mal nach CPU-Auslastung sortieren. Ggf. mal Apache deaktivieren und schauen, ob die Load runtergeht. Wenn ja, dann hängt es wohl Apache. Dann könnte es ein Konfigurationsfehler sein oder der Apache wird vielleicht geDDOSed.
 
Schau dir mal den hohen "wa" Wert in deinem top an. Vermutlich macht einer deiner Nachbarn etwas das die Festplatte stark belastend. Deshalb bekommen deine Prozesse keine Daten mehr und "warten". Ist also IMHO die Schuld deines Providers.
 
Oh entschuldigung wegen dem verlinkten Bild.

Gut dann werde ich mich mal an den Provider richten. Gibt es an der Webserver-Config irgendetwas auszusetzen?

Danke jedenfalls euch zwei :)
 
Back
Top