MatzeAug: Performance Tuning und Ermittlug Mysql PHP Apache

Hellas,

hat jemand gute Tips und ggf. weiss tools zur Performance Analyse / Monitorung bezüglich Mysql Apache und PHP?

Am besten wären Webbasierte Tools, sodass man die Performancmessung des Systemes online abrufen kann.

Auch ggf. links zu artikel bezüglich des Performance Tunings wären schön.
Aktuelles Problem ist wie folgt:
Auf einem Server läuft eine PHP Anwendung mit anbindung an ein mysql system.
Datenbank Version:     4.1.10a
PHP Version:  4.3.10
Web Server:  Apache/2.0.53

Zeitweise kommt es zu ausfällen, wenn bestimmte User es schaffen mehrer  Request ~ 2 -3000 innerhalb von 20 Sekunden auf das System abzusenden.

Das System selbst jedoch ist nicht ausgelastet.
Der Fehler der auftritt, verweist darauf, dass die DB nicht angeprochen werden kann.

Die DB und apache Prozesse sind jedoch vorhanden und das System meldet selbst noch bis zu 50 - 60% idle.

Überlastet kann es eigentlich nicht sein.
Eine Beschränkung der Sitzungen/Verbindungen zur Datenbank gibt es nicht. Es wird eine socketverbindung zur DB geöffnet.
Ggf, hat ja jemand Tips, wie man dem Problem auf die schliche kommen kann und die komponenten noch besser debugt.

Oder kennt jemand derartiges Verhalten und weiss eine Lösung?

Gruss Matze

  1. Das Problem konnte mehr oder minder gelöst werden.
    Zumindest trat das Problem seit folgenden Änderungen der Apache Konfiguration nicht mehr auf.

    Konfiguration alt:
    <IfModule prefork.c>
     # number of server processes to start
     StartServers         5
     # minimum number of server processes which are kept spare
     MinSpareServers      10
     # maximum number of server processes which are kept spare
     MaxSpareServers    20
     # highest possible MaxClients setting for the lifetime of the Apache process.
     ServerLimit        25
     # maximum number of server processes allowed to start
     MaxClients         25
     # maximum number of requests a server process serves
     MaxRequestsPerChild  0
    </IfModule>

    KeepAlive On
    MaxKeepAliveRequests 0
    KeepAliveTimeout 15

    Konfiguration neu:
    <IfModule prefork.c>
     # number of server processes to start
     StartServers         15
     # minimum number of server processes which are kept spare
     MinSpareServers      15
     # maximum number of server processes which are kept spare
     MaxSpareServers    30
     # highest possible MaxClients setting for the lifetime of the Apache process.
     ServerLimit        50
     # maximum number of server processes allowed to start
     MaxClients         50
     # maximum number of requests a server process serves
     MaxRequestsPerChild  3000
    </IfModule>

    KeepAlive On
    MaxKeepAliveRequests 3000
    KeepAliveTimeout 15