Alexander Rehbein: Performance-Probleme

Hallo,

ich habe momentan noch leichte Performance-Probleme mit meinem LAMP-Server.

Und zwar greifen ca. 50 User gleichzeitig auf meine Seite zu (1,2 ghz p3, 512mb ram) und "erstellen" so ca. 70 apache-prozesse und 50 mysql-prozesse (laut top und pstree), obwohl ich wesentlich weniger eingestellt habe:

[httpd.conf]
MinSpareServers 5
MaxSpareServers 15

Der Seitenaufbau ist extrem langsam (und es ist nur diese eine Seite auf dem Server!) Server-Zeiten von bis zu 3 Minuten sind nicht selten!

Habt ihr ne Idee an was es liegen könnte?

Hier ein Auszug aus pstree:

init-+-apache---62*[apache]
     |-bdflush
     |-cron
     |-eth0
     |-gcache
     |-6*[getty]
     |-keventd
     |-kjournald
     |-klogd
     |-ksoftirqd_CPU0
     |-kswapd
     |-kupdated
     |-mdrecoveryd
     |-safe_mysqld---mysqld---mysqld---49*[mysqld]
     |-sshd---sshd---bash---pstree
     |-syslogd
     `-5*[tcpserver]

Gruss
Alexander

  1. Hi,

    ich habe momentan noch leichte Performance-Probleme mit meinem LAMP-Server.
    Und zwar greifen ca. 50 User gleichzeitig auf meine Seite zu (1,2 ghz p3, 512mb ram) und "erstellen" so ca. 70 apache-prozesse und 50 mysql-prozesse (laut top und pstree), obwohl ich wesentlich weniger eingestellt habe:

    Wie ist denn die Netzwerkanbindung?
    Ist die vielleicht der Flaschenhals?

    Bei DSL mit 128kbit Upload:
    128kbit/s / 50 User ~ 2,5kbit/s / User ~ 0,3 kByte/s / User
    (und das nur, wenn die theoretische Bandbreite auch real zur Verfügung steht)

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  2. Hallo!

    Und zwar greifen ca. 50 User gleichzeitig auf meine Seite zu (1,2 ghz p3, 512mb ram) und "erstellen" so ca. 70 apache-prozesse und 50 mysql-prozesse (laut top und pstree)

    Wieviele Requests pro Sekunde hast Du so in "Hochzeiten"?
    Was genau passiert bei einem Request?

    obwohl ich wesentlich weniger eingestellt habe:

    [httpd.conf]

    Wie Du im Manual nachlesen kannst bedeuten die Einstellungen etwas folgendes:

    MinSpareServers 5

    mindestens 5 freie Prozesse

    MaxSpareServers 15

    höchstens 15 freie Prozesse

    Apache startet und beendet dann entsprechend Prozesse.

    70 Prozesse ist eigentlich noch nicht sooo schlimm, kommt eben drauf an wie groß die Prozesse sind, und was sonst noch so alle läuft.

    Ich denke dass Dein Server probiert viel zu viel in den RAM zu packen,  nur leider ist der zu klein und so muss er swappen, dann wird alles schrecklich langsam. Wenn Du jetzt sehr große Apache Prozesse hast, z.B. 10 MB, dann noch große MySQL-Prozesse, vielleuicht 12 MB, dann ist Dein RAM sehr schnell voll. Aber um wirklich was sagen zu können muss man erstmal wissen wo genau das Problem liegt.

    Als erstes sind mal allgemeine Angaben von "top" interessant, z.B.

    top -b -n 1

    Die oberen allgemeinen Angaben sind sehr interessant, vor allem

    CPU states
    iowait
    Mem
    Swap

    genauso die Ausgabe von "vmstat 5", daran  kannst Du sehen wo genau viele Prozesse warten müssen(Festplattenzugriffe, oder RAM... )

    Naja, und dann würde ich gucken dass ich den Apachen und MySQL so klein wie möglich bekomme. Alles raus was Du nicht brauchst. Evtl. MySQL und Apachen in der jeweiligen Config-Datei manuell zwingen die Anzahl der Prozesse bzw. des belegten RAMs zu reduzieren.

    Wie greifst Du auf MySQL zu? Ich hoffe nicht über CGI. Versuche im Script man ein paar Zeiten zu messen, vielleicht bekommst Du dabei raus wo genau die Verzögerung liegt. Und was ist mit Caching-Headern? Kannst Du bestimmte Inhalte für eine bestimmte Zeit cachen lassen(vor allem Bilder, Javascripte teilweise auch HTML)? Überträgst Du die Inhalte komprimiert?
    Evtl. auch ein DNS-Problem? Wie genau ist der Server ans Internet angebunden? Treten die Problem auch bei reinem HTML oder Grafikdateien auf?

    Und es gibt noch viel mehr Möglichkeiten ;-)

    Der Seitenaufbau ist extrem langsam (und es ist nur diese eine Seite auf dem Server!) Server-Zeiten von bis zu 3 Minuten sind nicht selten!

    Was ist denn um 4 Uhr morgens, hast Du dann bessere Antwortzeiten?

    Viele Grüße
    Andreas

    PS: hast Du vielleicht mal einen Link auf den Server?