Apache2 frisst Speicher

Status
Not open for further replies.

Jobra

Registered User
Hallo zusammen,

Mein Apache2 frisst ziemlich viele Ressourcen und hat über 50 Prozesse laufen. Auch nach einem Restart des Apaches hat er wieder gleich so viele Prozesse laufen.

Auf dem Server laufen mehrere gut besuchte Portale und auch Html-Seiten. Ich denke es sind teilweise etwa 300 User online.

Erstmal einige Angaben zum System:
Red Magic von Webperoni
Prozessor AMD Athlon 64 2800+
Arbeitsspeicher 768 MB DDR-RAM
Festplatte 80 GB
Betriebssystem: SuSe 9.1
Apache-Version: apache2-2.0.49 mit Prefork

Ich denk mal einige Ausgaben machen das besser deutlich als wenn ich viel dazu schreibe.

Die Prozesse:
Code:
xXx:/etc/apache2 # ps aux | grep httpd
root     12964  0.0  0.8 45356 6316 ?        Ss   22:02   0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   13257  0.5  1.8 52112 13880 ?       S    22:03   0:05 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   14425  0.2  1.8 52436 14164 ?       S    22:09   0:01 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf

...und so geht das dann etwa 50 mal weiter. Die Nachricht war zu lang als ich das alles drin hatte.

Die Ausgabe von uptime:
Code:
xXx:/etc/apache2 # uptime
 10:30pm  up 16 days  9:02,  1 user,  load average: 2.56, 2.71, 2.81

Die Speicherauslastung:
Code:
xXx:/etc/apache2 # free
             total       used       free     shared    buffers     cached
Mem:        764976     611280     153696          0       8272     102088
-/+ buffers/cache:     500920     264056
Swap:       514072      53384     460688

Ausschnitt aus der server-tuning.conf:
Code:
# prefork MPM
<IfModule prefork.c>
        # number of server processes to start
        StartServers          5
        # minimum number of server processes which are kept spare
        MinSpareServers       5
        # maximum number of server processes which are kept spare
        MaxSpareServers       10
        # highest possible MaxClients setting for the lifetime of the Apache process.
        #ServerLimit          150
        # maximum number of server processes allowed to start
        MaxClients            150
        # maximum number of requests a server process serves
        MaxRequestsPerChild   0
</IfModule>

Eine Lösung wäre sicherlich den Apache zu deinstallieren und dann mit den RPMs vom SSF neu zu installieren. Aber da halt immer viele User bei den Portalen online sind würde ich ungern eine längere Downtime haben. Außerdem steh ich dann ziemlich unter Zeitdruck und mach garantiert irgendwelchen Mist.

Ich würd aber sowieso gern wissen was das mit diesem Problem auf sich hat. Wie ich euch kenne habt ihr garantiert ne Lösung und Erklärung parat. Danke schonmal im Vorraus für eure sicher zahlreichen Posts :D
Wenn ihr noch Angaben braucht bitte einfach fragen.

MfG Jobra
 
Hallo!
Welche KeepAlive und KeepAliveTimeout Werte sind denn bei dir gesetzt?

mfG
Thorsten
 
Jobra said:
Aber da halt immer viele User bei den Portalen online sind
Ich denke hier wäre Optimierungsbedarf. Portale und Boards fressen immer unmengen (überflüssiger) Datenbank-Resourcen. Beobachte mal den Traffic bzw. CPU-Last der MySQL-Datenbank. (z.B. mit MRTG oder WebminStats).

Denn wenn die Datenbank ins trudeln kommt, kann Apache auch nicht schneller antworten. Und 50 Apache-Prozesse sind eigendlich ein Klacks. Da kannst Du nicht optimieren.

huschi.
 
Wenn das normal ist, ist das ja ok.
Dachte nur da sind irgendwie Fehler in der Konfiguration.
Wußte nicht, dass der Apache wenn er viel zu tun hat, soviele Ressourcen verbraucht. Und so ist es ja, wenn ich deine Antwort richtig verstanden hab.
 
Jobra said:
Wußte nicht, dass der Apache wenn er viel zu tun hat, soviele Ressourcen verbraucht.
Wer sagt, daß er viele Resourcen verbraucht? 50 Threads heißt lediglich, daß er 50 verschiedene Datenbereiche allociert hat. Der Code-Bereich bleibt ja immer identisch. Und Dein Swap ist ja fast unbenutzt. D.h. Du kommst überwiegend mit Deinem RAM aus.

huschi.
 
Vielen Dank für die Erklärung, jetzt weiß ich Bescheid.
Dieses Thema kann somit geschlossen werden.
 
Status
Not open for further replies.
Back
Top