Wie Speicherleck ausfindig machen?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Dakapo
Beiträge: 41
Registriert: 10.09.2004 07:54:32

Wie Speicherleck ausfindig machen?

Beitrag von Dakapo » 12.02.2009 14:59:03

Hallo!

Ich habe aktuell auf einem Debian-Server das Problem, dass der Arbeitsspeicher sich Stunde um Stunde weiter füllt.
Seit gestern habe ich jede Stunde "free -m" geloggt und es sind jede Stunde ca. 6 MB hinzugekommen, ohne dass auf dem Server von Benutzern Prozesse angestossen worden wären.

Jetzt habe ich versucht dem Problem mit "ps aux" und "top" auf die Schliche zu kommen. Doch dort wird kein Prozess aufgeführt, der aussergewöhnlich viel RAM für sich beansprucht.

Hier ein aktuelles Beispiel für die RAM-Auslastung...

Code: Alles auswählen

# free -m
             total       used       free     shared    buffers     cached
Mem:           885        339        546          0        135         84
-/+ buffers/cache:        119        766
Swap:         2588          0       2588
Gebe ich mit ps die Gesamtsumme des Memory aus, so wären aktuell laut ps nur 12,4 % belegt.

Code: Alles auswählen

# ps aux | awk '{memory +=$4}; END {print memory }'
12.4
12.4 % wären im Total aber nur ca. 110 MB.

Das ganze läuft jetzt so weiter. Jede Std. 6 MB mehr. Bis der Speicher irgendwann komplett voll ist.

Ich habe bereits versucht die Server-Hauptprozesse zu beenden (Apache, MySQL, Asterisk, ...) Aber es wurde kaum Speicher frei dadurch.

Hat jemand eine Idee, wie ich den Auslöser finden kann?
Es läuft aktuell ein Debian Etch 4.0 r0 mit Kernel 2.6.18-6-486 auf dem System.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Wie Speicherleck ausfindig machen?

Beitrag von Spasswolf » 12.02.2009 15:02:45

In dieser Zeile steht der tatsächlich belegte Speicher:

Code: Alles auswählen

-/+ buffers/cache:        119        766
Der Rest ist dient unter anderem als Dateisystem Cache. Siehe auch http://wiki.debianforum.de/LinuxSpeichermanagement

Du solltst ausserdem einen 686er Kernel einsetzen wenn du mehr als 885M Ram einsetzen willst.

Dakapo
Beiträge: 41
Registriert: 10.09.2004 07:54:32

Re: Wie Speicherleck ausfindig machen?

Beitrag von Dakapo » 12.02.2009 15:11:05

Wow, das war mal eine Turbo-Antwort Spasswolf!
Demnach scheint es mit der Summe aus ps übereinzustimmen.

Auf anderen Systemen sind einfach die Werte der ersten Zeile von free und die Werte in top nie so weit angestiegen. Deswegen war ich verwirrt.
Vielen Dank für den Hinweis im Wiki!

Antworten