Speicherbelegung bei Debian Squeere

Nagios, Munin, Serverstats, etc.
Post Reply
User avatar
coltseavers
Posts: 189
Joined: 2009-11-04 00:43
Location: NRW
 

Speicherbelegung bei Debian Squeere

Post by coltseavers »

Hallo zusammen,

ich versuche grad ein wenig mehr von Linux zu verstehen.
Ich hab einen virtuellen Server mit Debian Squeeze und schaue mir mit "top" die Speicherauslastung an.

http://klausguenter.kl.ohost.de/mem.jpg

Wenn ich das richtig sehe sind derzeit 641MB belegt. Jetzt hab ich das Problem, dass ich nicht ganz verstehe, wovon die belegt sind.
Ich dachte bisher immer, dass unter "RES" angezeigt wird, wieviel MB die einzelnen Prozesse belegen. In erster Linie sind das in meinem Fall 31 Apache2-Prozesse mit jeweils 10-12 MB. Macht also grob 350MB.
Dazu kommen noch named und mysql mit zusammen knapp 40MB.
Macht also 390MB insgesamt. Der Rest schlägt ja kaum zu Buche.

Wodurch werden denn die restlichen 250MB belegt? Und was ist mit dem Kernel / "Grundsystem" / Treibern? Das taucht da ja irgendwie gar nicht auf?!

Wäre super, wenn mir da mal jmd etwas Input geben könnte.

Vielen Dank vorab!

Gruß,
Colt Seavers
ddm3ve
Moderator
Moderator
Posts: 1237
Joined: 2011-07-04 10:56
 

Re: Speicherbelegung bei Debian Squeere

Post by ddm3ve »

Hi,

wie folgt:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

1. Prozessid
2. Ausgeführt durch Benutzer
3. Priorität
4. Nice Level
5. VIRT RAM Nutzung Code + Data (inkl. der shared libs)
6. Resident size (kb) The non-swapped physical memory a task has used.
7. Grösse der gemeinsam genutzten Speichers z.B. durch shared libs
8. ? Weiss ich grade selber nicht
9. CPU Auslastung in %
10. RAM Auslastung des physischen RAMs bei dir max. 1GB = 100%
11. Laufzeit
12 das Komando.

Dir ist klar, dass top ggf. nicht alle Prozesse auflistet. Die Ausgabe wird begrenzt u.a. von der Terminaleinstellung aber auch per Default wird die Ausgabe abgeschnitten.

Zur Erklärung:

VIRT gibt den virtuellen Verbrauch des Speichers an. Dies ist die Summe aus dem eigentlichen Speicherverbrauch des Prozesses, der Speicherverbauch weitere Komponenten wie z.B. RAM der Video Karte für den X-Server, m.W. gehört hier auch de FS Cache hinzu, genutzte Shard libs und weitere Dateien auf Platte welche der Anwendung / Prozess zugeordnet sind.
VIRT definiert wieviel Speicher gesamt die Anwendung im aktuellen Zustand verwendet / verwenden kann.

RES zeigt an, wieviel physischen RAM ein Prozess tatsächlich nutzt. Der Wert wird auch in % MEM% angegeben und steht im direkten Zusammenhang. Immer geringer als VIRT, da die meisten Anwendungen zusätzlich auf libs / c-libs zurück greifen.


SHR bedeutet, wieviel des VIRT / gesamt genutzten RAMS aus verteiltem Speicher bestehen (geshartem Speicher) Zusammengefasst aus shard libs und Speicher.
Hier geht aber das rechnen los, speziell bei shared libs wird nicht die ganze shared libs im SHR eingerechnet sondern nur die ungenutzten Funktionen eines shared libs, die tatsächlich genutzten werden in RES eingerechnet.
Um es plastischer zu erklären, Du hast einen Werkzeugkoffer mit tools, meinetwegen 5 Schraubenschlüssel je 1 KG Gewicht. Du benötigst für die Anwendung nur einen der 5 Schraubenschlüssel und das Gewicht 1KG wird der Anwendung zugeordnet (RES) der Rest 4 KG wird unter VIRT eingerechnet, da es den Werkzeugkoffer nur im gesamten gibt und geladen werden muss.
Theoretisch können andere Programme ebenfalls auf den Werkzeugkasten zugreifen und teilen sich diesen.

Wie kommt es nun bei Dir zu dieser Differenz, wie oben schon erwähnt, werden dir mit top nicht alle Prozesse angezeigt. Entsprechend fehlen u.a., wie Du es schon bemerkt hast, weitere Prozesse wie der Kernel etc. so kommt es nun zu dem Fehler.

free liefert Dir ein exakteres Ergebnis Wie der Speicher genutzt wird.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
Post Reply