Apache + PHP Memory Problem finden

Powie

Registered User
Wer hat eine Idee wie ich einem sporadischen Problem auf die Spur kommen kann. Hier kurz erläutert was passiert:
Suse Linux - Apache2 Prefork - php 5.2.10 -> Der Server läuft prima, 2GB RAM, meist 500-800MB RAM frei. Sporadisch und ohne erkennbares Muster geht der Server aber für mehrere Minuten total in den Keller mit den folgenden effekten:

Load steigt auf 10-20...
Speicher frisst sich voll, Swap beginnt vollzulaufen
CPU Last steigt, überwiegend IOWAIT.

Kann ich mir in diesem Moment am Server einiges ansehen so fällt auf das während dieses Effektes ein Apache Prozess anfängt sich mit mehreren 100MB Ressourcen vollzufressen. In Top wird dieser Prozess bei RES auffällig mit bis zu 800+ MB RAM. (RES = Code +Data). mysql ist während dieser Zeit nicht auffällig. Ich tippe auf ein php Script oder gar CGI oder ähnliches auf dem Server. Es sind mehrere Webs von verschiedenen Leuten auf der Maschine aktiv, ich denke durch Zufall werd ich so nicht fündig werden.

Mit welchen Hilfsmitteln kann ich meine Suche fortsetzen?
 
Installier mal lsof und schau welche User Dateien offen haben / welche Dateien offen sind.

Wenn du die Möglichkeit hast, kannst du php auch als CGI mit su_php rennen lassen, um so den Benutzer raus zu bekommen. Wenn nicht erwünscht kannst du das ganze ja anschließend wieder kicken (fällt mir spontan ein, ob das praktikabel für dich ist, ist der andere Punkt).

Ansonsten das Logging in den Debug Mode setzen (Logfilegröße im Auge behalten ;) ) und ggf. die max_execution_time runter drehen.

Mehr fiele mir ohne eventuelle Auffälligkeiten die du anhand der Logs ausmachen kannst nicht ein.
 
Back
Top