RAM Aulastung: Woher?

Hi,

ich habe eine Debian VM auf der eine Tomcat Webapp läuft. Die VM zeigt eine hohe RAM Auslastung an:

Code:
CEC:/home/mathias# free -m
             total       used       free     shared    buffers     cached
Mem:          2028       1979         48          0        314       1162
-/+ buffers/cache:        503       1525
Swap:          972          0        972
CEC:/home/mathias#

Wenn ich mir mit htop die Prozesse nach RAM Auslastung sortieren lasse erscheint der tomcat etwa 20 Mal mit JEWEILS 21% RAM Auslastung ... Spinnt hier htop? Aber Fakt ist, dass der RAM voll ist ... Was ist da denn los?

ciao
serow
 
das stimmt so nicht ganz. die vielen prozesse die du mit htop siehst sind alles prozesse die zusammen gehören (kindprozesse). da verbraucht auch nicht jeder 20%, sondern nur einer.

programme haben ausserdem die angewohnheit sich einen teil des ram zu "reservieren". das ist das, was du in der ersten zeile von "free -m" siehst. die zweite zeile zeigt dir den wirklichen verbrauch, der in deinem fall bei 503MB liegt, also kein grund zur sorge.
 
Original von Serow
Ah okay danke.

Scheint normal zu sein, dass der reservierte RAM irgendwann 100% ausmacht - oder?


ciao
serow

das ist durchaus möglich, wenn nicht sogar normal. solange das system nicht anfängt zu swappen, musst du dir da keine gedanken machen.
 
Original von xeno
das stimmt so nicht ganz. die vielen prozesse die du mit htop siehst sind alles prozesse die zusammen gehören (kindprozesse). da verbraucht auch nicht jeder 20%, sondern nur einer.

Das stimmt so nicht ganz. Vermutlich sind es Threads, keine Prozesse. htop zeigt sie (per Default, lässt sich mit "show user threads" umstellen) alle einzeln an. ;-)

Kindprozesse übernehmen bei der Erstellung den Speicherbereich des Elternprozesses, aber wenn daran Änderungen passieren werden diese in einen neuen Bereich kopiert (Copy-on-Write). Im Gegensatz teilen sich Threads den Speicher.
 
Zurück
Oben