Apache leaked memory ... hilfe?

Apache, Lighttpd, nginx, Cherokee
ttyseven
Posts: 9
Joined: 2006-07-17 10:57

Apache leaked memory ... hilfe?

Post by ttyseven » 2007-04-23 10:00

Mein server spuckt neuerdings über die Konsole folgendes aus und lahmt nahezu kathastrophal vor sich hin:

oom-killer: gfp_mask=0x1d2
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
Normal per-cpu:
cpu 0 hot: low 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
HighMem per-cpu: empty

Free pages: 3112kB (0kB HighMem)
Active:37215 inactive:85117 dirty:0 writeback:0 unstable:0 free:778 slab:2521 mapped:122905 pagetables:1216
DMA free:1432kB min:20kB low:40kB high:60kB active:5536kB inactive:5196kB present:16384kB
protections[]: 10 358 358
Normal free:1680kB min:696kB low:1392kB high:2088kB active:143324kB inactive:335272kB present:506048kB
protections[]: 0 348 348
HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB
protections[]: 0 0 0
DMA: 2*4kB 4*8kB 5*16kB 3*32kB 1*64kB 1*128kB 0*256kB 2*512kB 0*1024kB 0*2048kB 0*4096kB = 1432kB
Normal: 90*4kB 49*8kB 4*16kB 1*32kB 5*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 1680kB
HighMem: empty
Swap cache: add 30782862, delete 30782708, find 26799237/31009184, race 0+1655
Out of Memory: Killed process 32510 (apache2).

Kann damit jemand was anfangen? Wieso jammed der apache meinen Speicher so zu? Was geht hier vor?

rootsvr
Posts: 538
Joined: 2005-09-02 11:12

Re: Apache leaked memory ... hilfe?

Post by rootsvr » 2007-04-23 10:48

mod-security und nen Haufen Regeln aktiviert?
--> Führt schonmal zu ein paar Gig Speicherverbrauch, wenn man z.B. 8 MB sql Backup wieder einspielen will.. (eigene Erfahrungen)

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Apache leaked memory ... hilfe?

Post by daemotron » 2007-04-23 10:53

Was da passiert ist klar: Dein RAM ist aufgebraucht, Dein Swap ist aufgebraucht => aus Selbsterhaltungstrieb schmeißt der Kernel den OoM-Killer an, der dann wahllos Prozesse beseitigt, um Speicher freizuschaufeln. Es ist nicht unbedingt gesagt, dass er auch die Prozesse entsorgt, die den Speicher vollgesch*ssen haben. Dass die Kiste grottenlahm wird, wenn sie schon anfängt, swap in größerem Umfang zu nutzen, ist ja wohl klar...

Um zu diagnostizieren, was die Ursache ist, wäre mal eine Prozessliste (ps aux) ein nützlicher Anfang - die erzählt auch schon einiges über die Speicherverteilung... Außerdem (wenn es wirklich der Apache sein sollte) natürlich die Konfiguration, insbesondere die für das Fork-/Spawn-Verhalten verantwortlichen Abschnitte... und natürlich, welches Threading-Modell Du einsetzt.