Inactive Memory unter Linux

Seit einiger Zeit habe ich auf einem Debian Server das Problem, dass ständig der Arbeitsspeicher vollläuft. Das ganze äußert sich darin, dass ein immer größer werdender Teil des RAMs als "Inactive" eingestuft wird:

# cat /proc/meminfo
MemTotal:     12330944 kB
MemFree:        253640 kB

Buffers:        172564 kB
Cached:        8737688 kB
SwapCached:         36 kB
Active:        3475112 kB
Inactive:      8255320 kB
SwapTotal:     4200888 kB
SwapFree:      4200132 kB
Dirty:              56 kB
Writeback:           0 kB
AnonPages:     2820116 kB
Mapped:          24108 kB
Slab:           282060 kB
SReclaimable:   270344 kB
SUnreclaim:      11716 kB
PageTables:       8956 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:  10366360 kB
Committed_AS:  3467224 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    302632 kB
VmallocChunk: 34359435591 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     2048 kB

Wie zu sehen ist, hat der Server insgesamt 12 GB RAM, wovon 8,2 GB inactive und nur noch 250 MB free sind. Sobald der RAM dann komplett voll ist, reagiert der Server so gut wie gar nicht mehr. Selbst der SSH Zugriff gestaltet sich schwierig.

Zuerst dachte ich an einen Memory Leak in einer Java-Anwendung oder direkt im Tomcat. Allerdings wurde der inaktive RAM auch nicht freigegeben, wenn der JVM-Prozess beendet wurde. Nur ein Neustart des Servers konnte dann noch helfen.

Nach einiger Recherche bin ich auf Artikel gestoßen, die den inactive memory mit dem Virtual Memory (VM) des Linux Kernels in Verbindung brachten.

Den VM kann man durch verschiedene Parameter anpassen, siehe sysctl Dokumentation.

Da der Server ein Produktivsystem ist, konnte ich die verschiedenen Optionen nicht ausprobieren.

Dafür habe ich als Workaround die Möglichkeit gefunden den inaktiven Speicher wieder verwendbar zu machen und zwar mit dem Befehl:

# echo 1 > /proc/sys/vm/drop_caches

Laut Dokumentation passiert hier folgendes:

Writing to this will cause the kernel to drop clean caches, dentries and
inodes from memory, causing that memory to become free.
As this is a non-destructive operation and dirty objects are not freeable, the
user should run `sync' first.

Und tatsächlich - nach dem Ausführen des Befehls sind wieder 9 GB RAM frei:

MemTotal:     12330944 kB
MemFree:       9380024 kB
Buffers:          2464 kB
Cached:          37480 kB
SwapCached:         36 kB
Active:        2851528 kB
Inactive:         8160 kB

Da der Speicher nur langsam vollläuft, muss ich vorerst wohl damit klarkommen, den Arbeitsspeicher alle paar Wochen von Hand freizugeben oder ich richte einen cronjob ein. Ob das ganze nun ein Bug im Kernel ist oder ob man das Problem mit den verschiedenen Einstellungen des VM in den Griff bekommen kann, konnte ich leider nicht herausfinden.

Falls jemand dasselbe Problem oder besser noch die Lösung des Problems hat, immer her damit! :-)

Viele Grüße
Sebastian

Comments

Preview comment | Sebastian Harder Consulting

With havin so much content and articles do you ever run into any issues of plagorism or copyright violation? My website has a lot of
exclusive content I've either created myself or outsourced but it
seems a lot of it is popping it up all over the web without my agreement.
Do you know any ways to help stop content from being stolen? I'd certainly appreciate it.

Preview comment | Sebastian Harder Consulting

I like the helpful info you provide in your articles.

I'll bookmark your weblog and check again here
frequently. I am quite sure I'll learn a lot of new stuff right here!
Good luck for the next!

Preview comment | Sebastian Harder Consulting

Se a grávida está na sua primeira prenhez
provavelmente as chances de que ocorra aparecimento das
temíveis marcas avermelhadas são muito mais grandes, porque a pele ainda não sofreu nem um classe de estiramento.

my web page: estrias vermelhas na gravidez somem ( http://otr.exhibita.com/ - http://otr.exhibita.com/goout.asp?u=http://nserv7.netrevolution.com/test... )

Preview comment | Sebastian Harder Consulting

You should take part in a contest for one of the highest quality sites on the net.
I'm going to recommend this site!

Post new comment

Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.