Woher stammt die Differenz zwischen virtuellem und physikalischem Speicher?
Ich versuche gerade die Vm-Linien aus der Datei /proc/[pid]/status zu verstehen. Wobei sich mir dabei leider einige Fragen bzgl. virtuellem und physikalischem Speicher ergeben.
Hallo zusammen,
wenn ich das richtig verstanden habe verteilt sich der virtuelle Speicher eines Prozesses auf den Arbeitsspeicher und den Swap-Space. Hier der Auszug aus der Datei /proc/[pid]/status von der Ausführung eines JAR-Files. Soweit ich weiss gibt VmSize die aktuelle Grösse der virtuellen Speichers und VmRSS diejenige den physikalischen Speichers an.
VmPeak: 1097028 kB
VmSize: 1053440 kB
VmLck: 0 kB
VmHWM: 66912 kB
VmRSS: 66912 kB
VmData: 1005708 kB
VmStk: 216 kB
VmExe: 32 kB
VmLib: 10960 kB
VmPTE: 292 kB
Soweit ich weiss gibt VmSize die aktuelle Grösse der virtuellen Speichers und VmRSS diejenige den physikalischen Speichers an. Demnach benötigt der Prozess zum Zeitpunkt der Messung rund 1GB virtuellen Speicher und etwa 65MB physikalischen Speicher. Nun stellt sich mir natürlich die Frage woher dieser riesige Unterschied kommt. Hier die Ausgabe von "free" vor- und während der Ausführung des JAR-Files.
Wie man sieht wird der Swap-Space noch nicht benutzt. Die Memory-Usage steigt um den Wert von VmRSS. Wenn also weder im Arbeitsspeicher noch im Swap-Space, wo befinden sich die verbleibenden ca. 950 MB dann?
Wäre cool wenn mir das jemand halbwegs verständlich erklären könnte. Vielen Dank.
Hallo zusammen,
wenn ich das richtig verstanden habe verteilt sich der virtuelle Speicher eines Prozesses auf den Arbeitsspeicher und den Swap-Space. Hier der Auszug aus der Datei /proc/[pid]/status von der Ausführung eines JAR-Files. Soweit ich weiss gibt VmSize die aktuelle Grösse der virtuellen Speichers und VmRSS diejenige den physikalischen Speichers an.
VmPeak: 1097028 kB
VmSize: 1053440 kB
VmLck: 0 kB
VmHWM: 66912 kB
VmRSS: 66912 kB
VmData: 1005708 kB
VmStk: 216 kB
VmExe: 32 kB
VmLib: 10960 kB
VmPTE: 292 kB
Soweit ich weiss gibt VmSize die aktuelle Grösse der virtuellen Speichers und VmRSS diejenige den physikalischen Speichers an. Demnach benötigt der Prozess zum Zeitpunkt der Messung rund 1GB virtuellen Speicher und etwa 65MB physikalischen Speicher. Nun stellt sich mir natürlich die Frage woher dieser riesige Unterschied kommt. Hier die Ausgabe von "free" vor- und während der Ausführung des JAR-Files.
total used free shared buffers cached
Mem: 2055128 608424 1446704 0 61144 251564
-/+ buffers/cache: 295716 1759412
Swap: 2931820 0 2931820
total used free shared buffers cached
Mem: 2055128 675976 1379152 0 61164 251604
-/+ buffers/cache: 363208 1691920
Swap: 2931820 0 2931820
Wie man sieht wird der Swap-Space noch nicht benutzt. Die Memory-Usage steigt um den Wert von VmRSS. Wenn also weder im Arbeitsspeicher noch im Swap-Space, wo befinden sich die verbleibenden ca. 950 MB dann?
Wäre cool wenn mir das jemand halbwegs verständlich erklären könnte. Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161638
Url: https://administrator.de/contentid/161638
Ausgedruckt am: 19.11.2024 um 17:11 Uhr