Unterschiede und Beziehungen zwischen VIRT und USED in der Ausgabe von top?

9

Aus der Manpage von top

VIRT  --  Virtual Memory Size (KiB)
           The total amount of virtual memory used by the task.  It includes
           all code, data and shared libraries plus pages that have been
           swapped out and pages that have been mapped but not used.

USED  --  Memory in Use (KiB)
           This field represents the non-swapped physical memory a task has
           used (RES) plus the non-resident portion of its address space
           (SWAP).

Es scheint mir, dass VIRT und USED dasselbe bedeuten, dh sie sind beide die Summe dessen, was ein Prozess im physischen Gedächtnis und was im Tausch einnimmt. Was sind ihre Unterschiede und Beziehungen?

Standardmäßig wird topUSED übrigens nicht angezeigt. Wie kann ich es sichtbar machen?

Tim
quelle

Antworten:

16
  • RES ist die Menge an RAM, die derzeit vom Prozess verwendet wird. Dieser Wert kann variieren, da Speicherseiten möglicherweise ein- oder ausgelagert werden. Es kann sogar 0 für einen Prozess sein, der lange geschlafen hat, z. B. einen nicht angeforderten Daemon.

  • VIRT ist die volle Größe des gesamten Speichers, den der Prozess verwendet, egal ob im RAM oder auf der Festplatte (gemeinsam genutzte Objekte, mmaped-Dateien, Auslagerungsbereich), sodass VIRT immer größer oder gleich RES ist. Ein Prozess befasst sich immer mit virtuellem Speicher (dh Zuweisen / Zugreifen auf / Freigeben). Es ist Sache des Betriebssystems, einige oder alle dieser Seiten dem RAM zuzuordnen.

  • USED ist kleiner als VIRT, da es nicht den Speicher enthält, der durch etwas anderes als Swap unterstützt wird, z. B. Code und Bibliotheken.

jlliagre
quelle
+1 aber rätsel mir das..shared objekte (und ähnliches) müssen sich nicht im RAM befinden oder tauschen? Sie können einfach auf der Festplatte sein und auf den Speicherort der Festplatte bezogen werden?
Heemayl
@heemayl Sie befinden sich entweder im RAM oder in der Datei, die sie ursprünglich enthält. Sie müssen ihren Speicher nicht im Swap duplizieren.
Jlliagre
Tut mir leid, dass ich hier ein Noob bin, aber bevor ich diese benutze, sollten sie in den RAM gebracht werden, oder?
Heemayl
@heemayl Nur der Teil dieser Dateien, der tatsächlich benötigt (dh adressiert) wird, muss in den RAM gebracht werden.
Jlliagre
1
@heemayl Sie müssen sich im RAM befinden, wenn sie aktiv verwendet werden (zumindest die verwendeten Seiten), können aber jederzeit entfernt und später von der Festplatte geladen werden. Dies unterscheidet sich von anonymen Seiten, die nicht aus dem RAM entfernt werden können, ohne zuvor zum Tauschen geschrieben zu werden.
Hobbs
1

RES bezeichnet den tatsächlichen Speicher, der derzeit dem laufenden Prozess im (physischen Speicher) im RAM zugewiesen ist .

VIRT zeigt dem Prozess den virtuellen Speicher (der auf der Festplatte und / oder im RAM zugewiesen ist) an (wie in der Manpage erläutert).

USED = RES + der Teil der ausführbaren Datei, der sich derzeit nicht im RAM befindet. pszeigt VIRTmit vszflag.

Kaffeetasse
quelle
Der im RAM (RES) befindliche Speicher wird möglicherweise in Zukunft ausgelagert.
Jlliagre
Richtig, die Antwort wurde korrigiert!
Kaffee Tasse
1
und VIRT ist nicht unbedingt auf der Festplatte zugewiesen, befindet sich möglicherweise einfach im RAM und das wars.
Jlliagre