Server startet unmengen von Apache Prozessen



Dewey

New Member
Hoi allerseits,

ich habe auf einem dedizierten Server folgendes Problem:

Normalerweise laufen rund 40 Apache Prozesse, da ich viel RAM habe ist das auch kein Problem diese idlen zu lassen, wenn nicht gebraucht, damit sie zur Verfügung stehen wenn Besucher kommen. Jedoch kommt es vor, dass diese sporadisch, mal einmal die Woche, mal zweimal am Tag, oder auch eine ganze Weile garnicht drastisch nach oben steigen, da habe ich dann 250 am laufen und die Load des Servers geht natürlich entsprechend schnell nach oben (teilweise ist die Systemlast dann bei 20!).

Ich brauche eine Art Skript, oder einen Apache Mod, welches mir sagt, was gerade ausgeführt wird, warum er soviel braucht. Ich habe mehrere kleine Seiten und einen Blog auf dem Server laufen, sollte also eigentlich kein Problem sein bei 4 Kernen und 16GB RAM.

Ich habe schoneinmal mod_status probieren wollen, jedoch schien das der falsche Ansatz zu sein... Toll wäre es auch, eine Logging Funktion zu haben, die mir in eine Datei schreibt, was abgearbeitet wird. Gibt es sowas? :)

Ich hoffe hier kann mir jemand weiterhelfen :-) Danke schon einmal.

Ach Systemspecs:
Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
16GB DDR3 RAM
1TB SATA HDD

Beste Grüße,
Dewey
 
eine Logging Funktion zu haben, die mir in eine Datei schreibt, was abgearbeitet wird.
Meinste die Access-Log:confused: Die macht eigentlich genau was du fragst :D


Lasse die Konsolen-Ausgabe des Apache-Status alle 10 Sekunden in eine Datei schreiben. Damit solltest du den Grund finden.
Ich habe das Gefühl dass du jede Menge hängender Requests (Slowloris?) hast, also viele Prozesse im R-Status in der entsprechenden Datei auftauchen werden.
Hier würde dann mod_reqtimeout oder ein reverse-proxy Abhilfe schaffen.
Reverse-Proxies haben noch den Vorteil dass sie lange keep-alives ohne Nachteile schaffen.
 
Jap, die meinte ich! :D

Nein, mir ist klar, dass in der Log alle Zugriffe geloggt werden. Mein Problem ist jedoch, dass ich keine Zusammenhänge erkennen kann. Also es kommt nie die selbe Seite oder ein Bot oder eine IP etc. vor. Ich habe die Seiten momentan zwecks Seitenperformance hinter einem varnish Proxy am laufen (Sind viele statische Seiten, da bietet sich das an :) )

Es sollte also etwas dynamisches sein, was die last so dermaßen erhöht... Doof ist auch, dass ich es meist nie Live miterlebe, weil das ganze etwa eine halbe Minute dauert, habe mir sogar extra ein Nagios eingerichtet, was mir eine E-Mail schickt, wenn etwas ist, aber bis Nagios das ganze checkt, ist das Problem schon wieder vorbei und nur noch im 15 Minuten Mittelwert zu sehen...

Gibt es denn etwas, das mir anzeigt, welches PHP Skript wieviel Last verursacht? Oder war ich für mod_status bisher nur zu doof? :D

Beste Grüße,
Dewey
 
Es sollte also etwas dynamisches sein, was die last so dermaßen erhöht
Das hängt von deiner Varnish-Konfig ab. Wenn Clients Cookies mitschicken reicht er die Anfrage standardmässig durch, egal ob cachebar oder nicht.
Ausserdem werden POST-Anfragen sogar direkt gepipe't, d.h. da liesse sich ein Angriff fahren.
 
Gibt es denn etwas, das mir anzeigt, welches PHP Skript wieviel Last verursacht? Oder war ich für mod_status bisher nur zu doof? :D
Das können wir nur beurteilen wenn wir mal einen Blick auf den Status werfen dürfen. ;)

huschi.
 
Back
Top