Apache2 frißt allen Speicher

vokuhila

New Member
Hallo!

Ich hab ein Problem mit unserem Clanserver. Auf dem läuft Apahce2, mysql und TS. Der Apache ist für zwei statische Webseiten da, auf denen stehen Infos und Ergebnisse. Dann noch ein Wiki. Aber da passiert auch nicht so viel drin, die meisten Hits hab ich auf den zwei statischen Seiten.

Das Problem ist jetzt, das der Apache nach ein paar Stunden den ganzen Speicher wegfrisst. 300 MB!!! und dann werden prozesse gekillt und das betrifft dann manchma auch den TS was sehr nervig ist wenn mitten drin plötztlich der TS weg ist.

Wenn ich den Apache stoppe ist der RAM Verbrauch bei 50 MB. Starte ich den Apache sinds 80 MB. Zwei Stunden später sinds dann wieder fast 300 MB. Ich hab jetzt im cron eine Aktion drin die alle drei Stunden ein apache2 restart-hup macht, aber dabei sinkt der auch nur von 300 MB auf 170 ungefähr. auch nicht so prall.

Was treibt dieser sch***ss Apache mit dem ganzen Speicher? 300 MB ist ja mehr als die ganzen Daten auf meinem Server! Is ja nicht viel wie gesagt.

Ahc ja, ihr wollt bestimmt die servertuning.conf sehen:

Code:
# prefork MPM
<IfModule prefork.c>
        # number of server processes to start
        StartServers         2
        # minimum number of server processes which are kept spare
        MinSpareServers      3
        # maximum number of server processes which are kept spare
        MaxSpareServers     6
        # highest possible MaxClients setting for the lifetime of the Apache pro
cess.
        ServerLimit        150
        # maximum number of server processes allowed to start
        MaxClients         32
        # maximum number of requests a server process serves
        MaxRequestsPerChild  0
</IfModule>
Am Rest hab ich nix geändert. Hautsächlich nur die Maxclients runter.

Hilfe!!! Jemand ne Idee was da schief läuft???
 
probier mal:
ServerLimit 35
MaxSpareServer 4
MaxClients 9 oder 10

wenn du mehr brauchst, solltest du überlegen auf ein Packet mit mehr RAM umzusteigen.
Die genannten Einstellungen sorgen dann bei mir für einen maximalen RAM Verbrauch von ca. 200 MB (ohne TS :), aber mit MySQL ). Falls du Plesk hast, deaktiviere es (Dienst psa).
 
Danke euch beiden für die Tipps. :) lighttpd werde ich mir mal angucken. Klingt gut ist aber schon ne radikale Lösung gleich den ganzen Indianer ersetzen :o

Ich hab jetzt die MaxSpareServer auf drei reduziert dann sterben die fetten Apache Prozesse immer wieder weg. Jetzt lieg ich so bei 120 MB.

Aber komisch find ich das schon! Der Apahce is ja nu der meist benutzte Webserver oder? Wenn der schon bei meiner Miniseite so durchknallt wie sieht das dann erst auf einer richtig dicken site aus? Warum fixen die diesen Bug nicht??? :mad:
 
So jetzt ist mir der Kragen geplatzt :mad: vorhin hab ich mal mit vzfree gekuckt wieviel ram belegt ist. Da sind 11 apache Prozesse gelaufen und belegt waren 400 MB!! Zugesichert sind 300 MB und maximal benutzen darf ich 1000 und irgendwas. Gekillt hats deswegen noch keinen Prozess aber ich find das echt krank das der Apache in dem moment 330 MB frisst. Paar sekunden später warns dann nur noch 150 weil ich ja die maxspare so weit runter gedreht hab.

Jedenfalls hab ich jetzt maxclient auf 10 gesetzt. Das ist immer noch mehr als ich zugesichertes RAM hab. Die spinnen doch die Indianer! :eek:
 
Warum fixen die diesen Bug nicht??? :mad:
Welchen Bug?
Mach Dir klar, dass das eine multiuser Anwendung ist.
Wenn 10 Benutzer gleichzeitig die Anwendung nutzen muss auch in Teilen 10x das einfache Ressourcenpotential herhalten.
Das zeichnet "Serveranwendungen" gegenueber einem Einzelplatz-Office aus.
Du hast dann nunmal eine nicht naeher bestimmbare (oder zumindest bisher nicht bestimmte) Anzahl nahezu gleichzeitig zu bearbeitender Anfragen und dafuer brauchts entsprechend Ressourcen.
Starte mal 10 bis 20 mal eine einfache Desktop Anwendung und schau was das frisst.

Der Apahce is ja nu der meist benutzte Webserver oder? ... wie sieht das dann erst auf einer richtig dicken site aus?
Na es funktioniert offensichtlich und das mehr oder minder stabil.
Dass das keine Ressourcen kostet hat niemand gesagt.
Wenn hunderte Anfragen gleichzeitig in einem gewissen Zeitraum abgearbeitet werden sollen ohne, dass Anfragen einfach abgelehnt werden, dann kostet das halt Ressourcen.

Solange nicht feststeht, dass der auch nichts zu tun hat sehe ich keinen Grund, warum er nicht die genannten Ressourcen schlucken sollte zumal mir nicht ganz eindeutig klar ist, was sich hinter
bei meiner Miniseite
versteckt?

Ciao,
Mercy.
 
maxClients hast du nicht runtergeschraubt, oder ?

SpareServer müsste angeben, wieviele Apaches bereitgehalten werden (maximum & minimum). Sollten in einem Moment 100 Anfragen stattfinden, hast du mit deinen 3 SpareServern für 97 Anfragen eine längere Antwortzeit.

Wenn maxClients auf ca. 10 steht, werden erst 10 Anfragen parallel verarbeitet, dann die nächsten. D.h. zu deinen 3 SpareServern kommen noch 7 neue hinzu.

Aber: mehr als 10 sollten es so nicht werden.

hoffe kein Unfug erzählt zu haben :)
 
Welchen Bug?
Mach Dir klar, dass das eine multiuser Anwendung ist.
Wenn 10 Benutzer gleichzeitig die Anwendung nutzen muss auch in Teilen 10x das einfache Ressourcenpotential herhalten.

Wenn 10x das gleiche Proggi startet braucht das noch lange nicht 10x den speicher. Das weiss sogar ich. Speicher pro Prozess belegen nur die Daten des Prozess extra weil die eben nicht bei jedem gleich sind. Das heisst daß der apache mit den Einstellungen wie sie waren mal einfach 300 MB im RAM an Daten abgelegt hat. So viele Daten hab ich nicht mal sondern vielleicht 20 oder 30 MB.

zumal mir nicht ganz eindeutig klar ist, was sich hinter

versteckt?

Das hab ich in meinem ersten Beitrag geschrieben. Den findest du ganz oben. Bzw. wenn jetzt schon merh als eine Seite da ist muß du erst unten auf "1" klicken.
 
maxClients hast du nicht runtergeschraubt, oder ?

Doch. Habe ich jetzt auf 10. Vorher war es auf 50.

SpareServer müsste angeben, wieviele Apaches bereitgehalten werden (maximum & minimum). Sollten in einem Moment 100 Anfragen stattfinden, hast du mit deinen 3 SpareServern für 97 Anfragen eine längere Antwortzeit.[/QOUTE]

Das mit der längeren Antwortzeit ist glaub ich kein problem. Viele Anfragen hab ich ja nicht. Sind so 200 am Tag.

Wenn maxClients auf ca. 10 steht, werden erst 10 Anfragen parallel verarbeitet, dann die nächsten. D.h. zu deinen 3 SpareServern kommen noch 7 neue hinzu.

Aber: mehr als 10 sollten es so nicht werden.

hoffe kein Unfug erzählt zu haben :)

Danke! :) Prima Erklärung!
 
Back
Top