Page 1 of 1

Extreme Last-Probleme

Posted: 2009-11-09 23:11
by andreask2
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

Re: Extreme Last-Probleme

Posted: 2009-11-09 23:24
by andreask2
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?

Re: Extreme Last-Probleme

Posted: 2009-11-09 23:31
by Joe User
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...

Re: Extreme Last-Probleme

Posted: 2009-11-09 23:51
by andreask2
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...

Re: Extreme Last-Probleme

Posted: 2009-11-09 23:55
by andreask2
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...

Re: Extreme Last-Probleme

Posted: 2009-11-10 00:03
by Joe User
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.

Re: Extreme Last-Probleme

Posted: 2009-11-10 00:15
by andreask2
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?

Re: Extreme Last-Probleme

Posted: 2009-11-10 09:02
by jan10001
Könnte ein Defekt der Netzwerkkarte.

Re: Extreme Last-Probleme

Posted: 2009-11-10 10:33
by Joe User
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.

Re: Extreme Last-Probleme

Posted: 2009-11-10 11:19
by andreask2
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?