PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu RAM / Speicherverbrauch



Dono
20.03.12, 13:59
Hallo!

Ich habe eine Prozesse bei bei ps aux folgendes zeigt:

RSS = 1 GB ; VZS 14 ?

Irgendwo habe ich gelesen: VSZ -> Seitenzahl (?) der aktuell Speicherbelegung
(google -> paging)

free -m sagt: Mem user 8 GB

Sind das jetzt bei VZS 14 Seiten oder 14 GB (14 GB würde nicht zu dem 8 GB von free passen)?

:confused:

ThorstenHirsch
20.03.12, 14:14
Dein VZS heißt eigentlich VSZ und steht für Virtual SiZe ...dann kann man sich das nämlich auch herleiten. Und eigentlich kann kein Prozess mehr Residual (RSS) haben als VSZ. Also müssten's 14GB sein.

Dono
20.03.12, 14:35
...dann sind die 14 GB VSZ nur eine Art Reservierung für den maximalen Speicher bedarf?

free -g


total used free shared buffers cached
Mem: 15 8 6 0 2 5
-/+ buffers/cache: 1 14
Swap: 19 0 19

ich verstehe auch nicht, warum der Wert 14G so hoch ist. Als ob fast der resamte Speicher frei ist. Es sind einige libs geladen, die allein schon mehr Speicher belegen müssen. Oder sind nur 8 GB RAM frei?

:confused:

derRichard
20.03.12, 14:39
VSZ ist die menge an speicher auf die ein prozess _zugriff_ hat.

//richard

Dono
20.03.12, 14:55
zu VSZ habe ich viele Erklärungen gefunden.

VSZ ist der virtuelle Speicher, der sich im physikalischen Speicher oder auf Platte ausgelagert befinden kann.
VSZ tells you how much memory the process has marked for allocation.

Bisher habe ich nur noch keine von den Definitionen verstanden .... ;)

derRichard
20.03.12, 19:01
zu VSZ habe ich viele Erklärungen gefunden.

VSZ ist der virtuelle Speicher, der sich im physikalischen Speicher oder auf Platte ausgelagert befinden kann.
VSZ tells you how much memory the process has marked for allocation.

Bisher habe ich nur noch keine von den Definitionen verstanden .... ;)

und was genau verstehst du nicht?

//richard

Dono
21.03.12, 08:57
Hallo,

im Grunde möchte ich nur wissen, wie viel RAM (mit/ohne shared) eine Anwendung/Process benötigt, bzw. gerade belegt.

Siehe oben: ein Prozess belegt ca. 14 GB VZS und 500k RSS
free -g sagt: used 15 free 0 und free -/+ buffer cache 14
Bisher habe ich immer gemeint, dass die 14 G frei sind, weil ungenuzter RAM als cache benutze wird. Das scheint aber doch nicht so ganz richtig zu sein.

vmstat: free 100000 inact: 5G active 9G

:confused:

derRichard
21.03.12, 21:38
so einfach ist die rechnung nicht.
ich denke in deinem fall ist am besten wenn du einfach nur die res-size beachtest.

//richard

schokofresh
24.03.12, 16:15
Seh ich auch so. RES ist der Gesamtverbrauch des Prozesses an RAM. Dieser berücksichtigt aber nicht den ausgelagerten Verbrauch. Am besten swap deaktivieren temporär oder swapiness auf 0 setzen.

VSZ hingegen ist der Gesamtspeicher, den Dein Programm inkl Libs, Swap u.a. verbraucht, bzw auf von anderen Prozessen beschriebenen Speicher, Dein Programm so zugreifen darf, also auch inkl. shared Libs und daher eigentlich weniger Aussagekräftig. Beispielsweise bei einem gtk-Programm wird der Speicherbereich von gdk/gtk mit einberechnet, da dein Programm auch hier drauf zugreifen kann.

Du könntest evtl mal schauen, ob Du mit einem cat auf /proc/<PID> mehr herausfinden kannst.

derRichard
24.03.12, 16:29
da wird es genau beschrieben:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/proc.txt;h=b7413cb46dcb1f1a331068861e766a6c03a5da4 0;hb=HEAD#l202 (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/proc.txt;h=b7413cb46dcb1f1a331068861e766a6c03a5da4 0;hb=HEAD#l202)

somit sollte das rumgerate ein ende haben :)

//richard

Dono
27.03.12, 09:34
... ist doch komplizierter als gedacht. :o

Beispiel: ein Prozess zeigt mit ps aux
RES 800MB VSZ 3,3G
mit pmap
Total: 3,3G 800000K 400000k
14148K writable-private, 215804K readonly-private

manche sagen jetzt, der tatsächliche Verbrauch seinen die 14148K

irgendwo schrieb jemand: Fälschlicher Weise werden die beiden Angaben VSZ und RSS meist als Speicherbedarf eines Programms angegeben.

:confused:

derRichard
27.03.12, 10:28
und was ist jetzt das problem?

vsz gehört genauso zum speicherverbrauch wie rsz.
was ist wenn dein system keine freien adressen mehr hat?
dann kann rsz so klein sein wie es will, vsz kann dennoch nicht mehr ansteigen und dein programm ist out-of-memory...

bei speicherverwaltung kann man nicht nur in frei und nicht-frei denken...
//richard