Swap läuft voll bis zum Crash

ElDiablo

Lt. Commander
Registriert
Juli 2009
Beiträge
1.377
Mahlzeit,
hab ein kleines Problem mit meinem Linux-Server. (Suse 10)

Php läuft als fastcgi und es scheint als würde er aus irgendeinem grund zu viele Prozesse öffnen, die RAM+Swap komplett auslasten (bis der Server stirbt)

Das ganze passiert dank aktuell relativ hohem Traffic auch regelmäßig. Nachher hilft nur noch ein Reboot, weil er sich komplett verabschiedet.

Jemand eine Idee, woran es liegen könnte?
 
Du könntest mal den syslog posten oder versuchen, das Problem konkreter zu bschreiben.

Gruß,

badday
 
Was genau wäre für dich da interessant?

Code:
[Sun Aug 23 04:40:12 2009] [error] server reached MaxClients setting, consider raising the MaxClients setting

Es war nur eine Vermutung, dass es an PHP liegt ... vielleicht wenn Crons zu einem ungünstigen Zeitpunkt ausgeführt werden, wo eh schon zu viel los ist ...

Auffällig ist, dass die Crahs oft auch mitten in der Nacht passieren.
 
Und was sagt der Apache-Log?

Kannst du statt den gesamten Rechner neuzustarten auch nur Apache neustarten oder funktioniert diese nicht mehr?
 
kann vieles sein.
wie ist denn der Rechner (ist es ne VM?) ausgestattet?
Welche Prozesse laufen und welche Auslastung verursachen deine Favoriten wie php?
Könnte sich sowohl um einen Bug als auch im falsche Konfiguration handeln.
 
badday schrieb:
Und was sagt der Apache-Log?

Kannst du statt den gesamten Rechner neuzustarten auch nur Apache neustarten oder funktioniert diese nicht mehr?

Es schmiert alles ab ..nichtmal per SSH komm ich noch rein.

CoolHandLuke schrieb:
kann vieles sein.
wie ist denn der Rechner (ist es ne VM?) ausgestattet?
Welche Prozesse laufen und welche Auslastung verursachen deine Favoriten wie php?
Könnte sich sowohl um einen Bug als auch im falsche Konfiguration handeln.

Es ist nen ganz normaler kleiner Server (keine VM) ... Sempron 2.2, 512 MB Ram, 1 GB Swap
Die normale Auslastung liegt so bei ~10% CPU Load und 200 MB Ram-Verbrauch.

Wirklich viel läuft da nicht drauf ... es ist Suse 10 mit Apache .. einige MySQL Datenbanken und das wärs schon fast. Großteils hoste ich Blogs, Foren und CMS, die aber nicht so viel Last erzeugen dürften. Die größte Seite davon ist die aus meiner Signatur (links) ... und da sinds grad mal 20-30k PI/Tag.
 
jep, aber bisher reichte der RAM völlig aus ... das sollte auch nicht der Grund sein, dass er mitten in der Nacht bei (eigentlich) wenig Load wegknallt.

Da PHP die meiste Last verursacht, denke ich schon, dass man dort suchen müsste.
Updates sind nebenbei alle gemacht ... daran liegt es schonmal nicht.
 
von php? jo, ist begrenzt.
Hab eben etwas mit rumexperimentiert ... es stand bei 50M, damit ich mit GDLib auch größere Bilder verkleinern kann .. jetzt hab ich es mal testweise auf 30M gestellt.

Allerdings sollte es das nicht sein, weil es eher mit vielen kleinen Prozessen crashed ...
 
das Problem kommt mir sehr bekannt vor, hatte ich auf Debian auch schon öfters. Echte lösung leider nicht gefunden, ich hab mal gelesen, man kann den apache selbst aber recht gut im ram limitieren.
 
Ich könnte es natürlich mit der Brechstange probieren und den Swap einfach mal verdoppeln .. auch wenn mir eine echte Lösung des Problems lieber wäre :)

Falls noch jemand Vorschläge hat ... habe nebenbei in dem Blog mit dem relativ hohen Traffic schon nen Cache aktiviert, um etwas die Last zu reduzieren .. leider ohne Erfolg.

Update: Ihr dürft natürlich weiterhin Lösungsvorschläge posten ... 1.5 GB Speicher sollten ja eigentlich für das minimale Trafficaufkommen völlig ausreichen ...
 
Zuletzt bearbeitet:
Hmm endlosschleifen in PHP dürften den ja nicht killen, vllt handelt es sich ja um ein Hardwarefehler. Ich hätte da mal ganz explizit den Speicher im Visier.
Oder kannst du Hardwareschäden ausschließen?
 
Wenn es wirklich an vom Apache gestarteten CGI-Prozessen liegt, mußt du deren Zahl eben begrenzen. Wenn der Webserver so viele CGI-Prozesse erzeugt, daß massiv swap benötig wird, geht die Peformance beim Abarbeiten der Anfragen sowieso in den Keller. Dann lieber vorher schon Anfragen ablehnen. Begrenze also die Zahl angemessen zur Leistungsfähigkeit des Rechner.

Du kommst nicht umhin, das Problem genauer zu analysieren.
 
Auffällig ist, dass der Server eigentlich nicht nennenswert belastet wird.
Die paar Weblogs und Foren dürften da keine Probleme machen.

Habe es mal mit "top" beobachtet und er erzeugt endlos PHP5 Prozesse ... kann es evtl. ein Problem sein, was durch irgendwelche Bots verursacht wird? Er crasht relativ sporadisch .... wenn ich den Fehler reproduzieren könnte, wäre es aber auch zu einfach :)

Bisher läuft er noch auf Default-Werten. Musste lediglich das Memory Limit in der php.ini auf 40 MB erhöhen, um mit der GDLib auch etwas größere Bilder zu verkleinern.
 
Habe eine 100 mBit Anbindung.
Hier sollte es keine Probleme geben ... die Crashs sind außerdem sehr sporadisch.

Wenn es nicht besser wird, werde ich mir wohl mal eine Pre-Configurierte Debian Version drauf ziehen. Hat jemand Erfahrungen, ob Hosting-Provider nach 3-4 Jahren mal umsonst die Hardware upgraden? 512 MB Ram sind mir etwas wenig :)
 
wenn du günstige root server brauchst ---> serverbasar.de

hab zwar keinen plan wie man dein prob lösen kann...
wenn es allerdings nur an apache liegt... mach doch nen cron mit /etc/init.d/apache restart
vllt. hilfts
 
@ElDiablo
Mit 10 MBit Upload? Hab gefragt, weil ich erst dachte, dass dein Server zuhause im Keller werkelt.

Und zu dem Hosting Provider.. nett nachfragen. Sollte kein Problem sein, wenn man schon 3-4 Jahre Kunde ist... da könntest sogar noch mehr rausholen als "nur" ein Speicherupgrade.
 
Zurück
Oben