Extreme Last-Probleme

Apache, Lighttpd, nginx, Cherokee
andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Extreme Last-Probleme

Post by andreask2 » 2009-11-09 23:11

Hallo!

Wir haben momentan mit einem Server ganz extreme Performance Probleme. Teilweise dauert es mehr als 20 Sekunden, bis ein Request beantwortet ist, und dabei kann ich auf dem Server keinerlei konkrete Probleme feststellen. Load ist in Ordnung (Dual-Core CPU, Load liegt meist bei 2-5), die CPU hat immer noch Luft, der Anteil an iowait liegt auch unter 10%, Idle liegt immer bei mind. 20-30%. Auf dem Server läuft neben Apache noch ein MySQL Server, der kommt aber auch mit weniger als 10% CPU Last aus. Der Server hat halt nur 4GB RAM und zwei 7.2k Festplatten (RAID 1). Ich bin mir relativ sicher, dass das Problem beim Apachen (2.2) liegt, die Software die die Last verursacht verwendet PHP (5.2, mod_php), und wir verwenden den APC. Ich weiß erhlich gesagt nicht mehr, wo ich noch nach dem Problem suchen soll. Die Einstellungen für das verwendete prefork_mpm sehen wie folgt aus:

Code: Select all

<IfModule prefork.c>
   # number of server processes to start
   StartServers         100
   # minimum number of server processes which are kept spare
   MinSpareServers      20
   # maximum number of server processes which are kept spare
   MaxSpareServers     100
   # highest possible MaxClients setting for the lifetime of the Apache process.
   ServerLimit        1500
   # maximum number of server processes allowed to start
   MaxClients         1200
   # maximum number of requests a server process serves
   MaxRequestsPerChild  10000
</IfModule>


Das komische ist, wenn man "den richtigen Prozess" erwischt läuft alles ganz flüssig. Beim nächsten Request allerdings kann es schon wieder ganz anders aussehen. Keep-Alive auf TCP-Ebene ist deaktiviert. Ganz egal ob man ein PHP-Skript ausführen oder ein Bild laden will, das Problem besteht gleichermaßen. Manchmal werden Requests auch gar nicht beantwortet.

Hat jemand irgendeine Idee, was man da machen kann, bzw. wie ich den Flaschenhals herausbekomme? Wer evtl. auf munin-Statistiken mehr als ich erkennen kann bekommt gerne eine Zugang per PM :)

Viele Grüße und Dank im Voraus
Andreas

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Extreme Last-Probleme

Post by andreask2 » 2009-11-09 23:24

Das einzige was mich etwas verwundert, ist die hohe Anzahl offener TCP Verbindungen. Wenn ich mal netstat ausgeben und nach TIME_WAIT filtere, erhalte ich 6.000 offene Verbindungen. Kann es damit zu tun haben?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Extreme Last-Probleme

Post by Joe User » 2009-11-09 23:31

PHP verträgt sich auf Grund eines Bug/Feature nicht sehr gut mit "MaxRequestsPerChild 10000", hier ist ein Maximum von 500 zu setzen. Eventuell ist das bereits Euer Bug...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Extreme Last-Probleme

Post by andreask2 » 2009-11-09 23:51

Wir verwenden Prefork, weil es halt etwas robuster ist mit PHP und seinen Modulen. Ich habe es mal runtergesetzt. Das Problem ist, dass ich die Last nach jeder Änderung sofort wieder da ist, und dann evtl. erst Caches gefüllt werden müssen... aber das komisch an der Sache ist halt, dass nichts nach einem großen Problem aussieht, nur irgendwie scheinen die Requests irgendwo festzuhängen, und die Warteschlange wird länger und länger...

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Extreme Last-Probleme

Post by andreask2 » 2009-11-09 23:55

was für einen Timeout im Apache und PHP würdet Ihr empfehlen? Im Prinzip kann ich das doch mal auf 10 Sekunden setzen, oder? Steht jetzt auf 800...

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Extreme Last-Probleme

Post by Joe User » 2009-11-10 00:03

Wenn die WebApp/DB mit einem so kurzen Timeout klarkommt, dann versuche es einfach mal. Ich habe es bisher immer auf dem Default 300 belassen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Extreme Last-Probleme

Post by andreask2 » 2009-11-10 00:15

Hm, irgendwie hat es das alles nicht wirklich gebracht. Entweder man hat Glück und alles läuft normal schnell, aber immer wieder ist ein Element auf der Seite, das ewig lange braucht um geladen zu werden. Der Unterschied verwundert mich halt so. Ist nicht so dass es komplett langsam ist, nur bestimmte (zufällige) Requests, und die brauchen dann so richtig lange, nicht nur ein paar Sekunden.
Habe gestern Munin installiert (davor trat das Problem zumimdest in dem Ausmaß noch nicht auf), mit allen möglichen Monitorings, aber das braucht alle 5 min. ca. 2-3 Sekunden um die Daten zu generieren, daran kann es doch auch nicht liegen, oder? Kann es mit smartmontools zu tun haben? Auch relativ unwahrscheinlich, oder?
Ich wäre ja froh wenn der Server anfagen würde zu swappen, der Load steigt oder sowas, aber das passiert nicht. Seltsam...

Ein weiteres Problem, das schon seit längerem besteht ist, dass meine SSH-Verbindung immer mal wieder einfriert/abbricht. Könnte evtl. die Hardware ein Problem haben?
Last edited by andreask2 on 2009-11-10 00:33, edited 2 times in total.

jan10001
Anbieter
Posts: 727
Joined: 2004-01-02 12:17

Re: Extreme Last-Probleme

Post by jan10001 » 2009-11-10 09:02

Könnte ein Defekt der Netzwerkkarte.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Extreme Last-Probleme

Post by Joe User » 2009-11-10 10:33

Keine Ahnung was Munin alles in welchen Zyklen abfragt, aber es verschlimmbessert das Problem zumindest teilweise. Die SMARTmontools können ebenfalls zum Problem beitragen, ebenso alles Andere was die Hardware in irgendeiner Form anfasst. Wie sehen die SMART-Werte denn aus? Nicht, dass da eine Platte stirbt.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Extreme Last-Probleme

Post by andreask2 » 2009-11-10 11:19

Die Smart Tools habe ich gestern erstmal wieder deinstalliert, da das zusammen mit Munin eh nicht geklappt hat. Dann habe ich mod_status bei Apache wieder rausgenommen. Momentan läuft der Server ganz normal, bei ähnlicher Last wie gestern Abend, verstehen kann ich das alles nicht. Aber Smart Werte werde ich mich später nochmal ansehen. Ich hatte ihn gestern sogar mal neu gestartet, um auf jeden Fall alle offnenen Verbindungen loszuwerden, aber auch das hat rein gar nichts gebracht. Sehr seltsam alles.

Ob eine Netzwerkkarte nicht OK ist, wie kann man das evtl. rausbekommen? Könnte evtl. auch am RAM liegen? Worauf sollte man bei den Smart Werten achten?