Was ist der Unterschied zwischen realem, virtuellem, gemeinsam genutztem und privatem Speicher?

63

Die verschiedenen Spalten im Aktivitätsmonitor sind etwas verwirrend

Jacob Gorban
quelle
Es kann erwähnenswert sein, dass es einen fünften Speichertyp gibt, wenn Sie bei einem Prozess im Vergleich zu den Spalten im Aktivitätsmonitor auf "Überprüfen" klicken. Insbesondere gibt es zwei Arten von "virtuellem" Speicher: "Größe des virtuellen Speichers" und "Virtueller privater Speicher". Letzteres wird in der Spalte "Virtuelles Mem" im Aktivitätsmonitor angezeigt.
Drfrogsplat

Antworten:

46

Entnommen aus meiner Antwort bei Serverfehler :

Mac OS X Memory Jargon:

Kabelgebunden : Dies bezieht sich auf Kernel-Code und dergleichen. Speicher, der niemals aus dem RAM verschoben werden sollte. Auch als residenter Speicher bekannt.

Shared : Speicher, der von zwei oder mehr Prozessen gemeinsam genutzt wird. Beide Prozesse würden diese Speicherkapazität anzeigen, sodass es etwas irreführend sein kann, wie viel Speicher tatsächlich verwendet wird.

Real : Dies ist die von task_info () gemeldete "reale" Speichernutzung für eine Anwendung - eine grobe Zählung der Anzahl der physischen Seiten, über die der aktuelle Prozess verfügt. (RSIZE)

Privat : Dies ist der Speicher, den ein Prozess allein verwendet und der im residenten Speicher verwendet wird. (RPRVT)

Virtuell : Die Gesamtmenge des Adressraums in dem Prozess, der auf etwas abgebildet wird - egal, ob es sich um einen beliebig großen Bereich für Variablen oder etwas anderes handelt -, entspricht nicht der tatsächlichen VM-Nutzung. (VSIZE)

Aktiv : Der derzeit als aktiv gekennzeichnete Speicher wird als RAM verwendet.

Inaktiv : "Inaktiver Speicher wird nicht mehr verwendet und wurde auf der Festplatte zwischengespeichert. Er verbleibt im RAM, bis eine andere Anwendung den Speicherplatz benötigt. Das Belassen dieser Informationen im RAM ist zu Ihrem Vorteil, wenn Sie (oder ein Client Ihres Computers) zurückkehren dazu später. " - Mac OS X-Hilfe

Frei : Die Menge an RAM, die tatsächlich ohne Daten verfügbar ist.


Die beste Dokumentation, die ich kenne (und die ich bei Nachforschungen finden konnte), ist Apples eigener Artikel zum Thema " Managing Memory " auf der Entwickler-Website.

Andere wertvolle Quellen: Darwin-dev-Mailingliste: [ 1 ], [ 2 ] und ein alter Artikel über MacOSXHints . Zusätzlich hat Mike Ash eine gute Einführung für Laien in seinem Blog veröffentlicht

Chealion
quelle
5
Beim Lesen des Apple-Dokuments "Managing Memory" wurde Inactive nicht unbedingt auf der Festplatte zwischengespeichert. Sie können dies demonstrieren, indem Sie Ihre inaktive Speichernutzung (meine ist derzeit 747,5 MB groß) und Ihre "Swap used" (meine ist derzeit 0 Byte groß) überprüfen. Inaktiv bezieht sich nur auf Speicherseiten, die in letzter Zeit von keinem Prozess gelesen / geschrieben wurden.
Drfrogsplat
1
Es kann sinnvoll sein, "Virtuell" zu erläutern, da in Activity Monitor zwei Verweise auf "Virtuellen" Speicher vorhanden sind. Die Spalte "Virtual Mem" bezieht sich auf " Virtual Private Memory " im Fenster "Inspect Process". In diesem Fenster befindet sich ein weiterer Eintrag mit dem Titel " Virtual Memory Size " (der meiner Meinung nach die gemeinsam genutzte Komponente des virtuellen Speichers ist). Dies ist am 10.6.4 (falls Activity Monitor die Terminologie geändert hat ...)
drfrogsplat 10.11.10
Gehört "privates Gedächtnis" zum "realen Gedächtnis"?
Franklin Yu
6

Real mem bezieht sich auf den physischen Speicher (tatsächliche RAM-Module in Ihrem Computer). Virtual Mem gibt an, wie viel "Fake" -Speicher dem Prozess zugewiesen ist. Dies bedeutet, dass für diesen Prozess Speicher auf dem permanenten Speichermedium (Festplatte, Solid-State-Laufwerk usw.) zugewiesen ist. Shared Memory ist ein physischer (realer) Speicher, der mit anderen Prozessen gemeinsam genutzt werden kann. Privater Speicher ist "realer" Speicher, der nur von dem Prozess verwendet werden kann, dem er zugeordnet ist.

Diese Erklärungen können auch hilfreich sein ... direkt aus dem Aktivitätsmonitor -> Hilfe -> Anzeigen der Systemspeicherauslastung:

Hier finden Sie eine Erläuterung einiger Informationen, die am unteren Rand des Speicherbereichs angezeigt werden:

  • Kabelgebunden: Der kabelgebundene Speicher enthält Informationen, die immer im RAM verbleiben müssen
  • Aktiv: Aktiver Speicher, der Informationen enthält, die aktiv verwendet werden.
  • Inaktiv: Inaktiver Speicher enthält Informationen, die nicht aktiv verwendet werden. Wenn Sie diese Informationen im RAM belassen, ist dies für Sie von Vorteil, wenn Sie (oder ein Client Ihres Computers) später darauf zurückgreifen.
  • Verwendet: Verwendeter Speicher wird von einem Prozess oder vom System verwendet. Der belegte Speicher ist die Summe aus verdrahtetem, aktivem und inaktivem Speicher. Wenn das System Speicher benötigt, benötigt es freien Speicher vor dem verwendeten Speicher.
  • Frei: Freier Speicher wird nicht verwendet und ist sofort verfügbar.
  • VM-Größe: Virtueller Speicher oder VM ist Festplattenspeicher, der als Arbeitsspeicher verwendet werden kann. VM-Größe ist die Menge an Festplattenspeicher, die als Arbeitsspeicher verwendet wird. Mac OS X benötigt möglicherweise mehr Speicher als der physische Arbeitsspeicher. Eine Festplatte ist viel langsamer als RAM, sodass das virtuelle Speichersystem automatisch Informationen zwischen Festplattenspeicher und RAM verteilt, um eine effiziente Leistung zu erzielen. Ein- / Ausblättern: Die Anzahl der Gigabyte an Informationen, die Mac OS X zwischen RAM und Festplattenspeicher verschoben hat
Robert S. Ciaccio
quelle
6
Das ist nicht richtig. Virtueller Speicher ist kein Speicher, der auf der Festplatte zugeordnet ist (das heißt Auslagerungsspeicher). Virtueller Speicher ist der zugewiesene Adressraum, der sich jedoch nicht im physischen Speicher befindet. Das mag wie das Gleiche aussehen, aber es ist subtil anders. In vielen Fällen ordnen Programme Speicher zu, ohne ihn jemals zu berühren. In diesen Fällen belegen die Programme viel virtuellen Speicher. Um ein konkretes Beispiel zu nennen: Mein System verwendet derzeit 512 MB Swap, verfügt jedoch über 196 GB zugewiesenen virtuellen Speicher (dies ist eine ziemlich typische Menge für Benutzer von Snow Leopard auf K64).
Louis Gerbarg
2
@ Louis, wenn der virtuelle Speicher zugewiesen wurde, aber weder RAM noch Festplatte verwendet wird, wo ist er dann?
Michael Underwood
4
@ Michael: Nirgendwo. Es ist theoretisch. Nur weil ihm eine Adresse zugewiesen und zugewiesen wurde, heißt das noch lange nicht, dass er tatsächlich verwendet wird. Die Low-Level-Bits des Betriebssystems wissen, wann diese Adressen physischen Speicherorten im RAM oder im Auslagerungsspeicher zugeordnet werden müssen. Es ist jedoch nicht erforderlich, diesen Speicherplatz zu belegen, wenn die Anwendung tatsächlich keine Informationen an diesen Adressen speichert. Darüber hinaus werden Sie feststellen, dass die Spalte für jeden Prozess, Virtual Mem, nicht annähernd der VM-Größe entspricht. Die Prozesse verbrauchen nicht wirklich den gesamten Speicher.
Robert S Ciaccio
2
Es gibt viele VMs, die eigentlich nicht austauschbar sind. Wenn Sie beispielsweise eine 4-GB-Datei mappen, werden 4 GB VM benötigt, und beim Lesen wird sie direkt aus der Datei eingelesen. Unter Druck wird sie verworfen (nicht vertauscht), da die ursprüngliche Datei einfach erneut gelesen werden kann. VM und Tauschen sind wirklich völlig verschiedene Dinge. VM wird einfach verwendet, um herauszufinden, was man
eintauschen muss
3
Mit VSIZE beziehe ich mich auf etwas, das nicht im Aktivitätsmonitor aufgeführt ist. Sie können es oben sehen, wenn Sie möchten. Der Aktivitätsmonitor listet in der Spalte "Virtueller Speicher" das auf, was allgemein als VPRVT bezeichnet wird. Hierbei handelt es sich um die Menge der von der App verwendeten virtuellen Adresse, die nicht mit anderen Apps geteilt wird.
Louis Gerbarg
4

Apple hat den Activity Monitor in OSX 10.9 (Mavericks) aktualisiert. Sie haben einen guten Artikel darüber, was alles hier bedeutet http://support.apple.com/kb/HT5890 . In Summe...

Bildbeschreibung hier eingeben

  • Physischer Speicher: Die Größe des installierten Arbeitsspeichers.
  • Verwendeter Arbeitsspeicher: Die Größe des Arbeitsspeichers, der für andere Apps verwendet wird und nicht sofort verfügbar ist.
  • Virtueller Speicher: Die Menge an Speicherzuordnung, nach der Apps gefragt haben. Dies ist kein tatsächlicher Verbrauch von RAM-Ressourcen und die Größe wird vom Autor der App festgelegt.
  • Swap Used: Der Speicherplatz auf Ihrem Laufwerk, der zum Auslagern nicht verwendeter Dateien in und aus dem RAM verwendet wird. Es ist normal, dass Aktivitäten zu sehen sind, und dies ist kein Hinweis darauf, dass die RAM-Ressourcen aufgebraucht sind. Wenn der Speicherdruck im roten Status angezeigt wird, sind die RAM-Ressourcen erschöpft.
  • App-Speicher: Der von Apps belegte Speicherplatz .
  • Kabelgebundener Speicher: Speicher, der nicht auf der Festplatte zwischengespeichert werden kann und daher im RAM verbleiben muss. Dieser Speicher kann nicht von anderen Apps ausgeliehen werden.
  • Komprimiert: Die Größe des Arbeitsspeichers im RAM, der komprimiert wird, um mehr RAM-Ressourcen für andere Apps verfügbar zu machen.
  • Datei-Cache: Der für Apps als verfügbar markierte Speicherplatz im RAM, der kürzlich verwendete Dateien enthält.

Speicherdruckdiagramm

Die Kombination von Statistiken zu freiem, verkabeltem, aktivem, inaktivem und verwendetem Speicher in früheren Versionen von Activity Monitor wurde in Mavericks durch ein einfach zu lesendes "Speicherdruck" -Diagramm ersetzt.

Der Speicherdruck wird durch die Farbe angezeigt:

  • Grün - RAM-Speicherressourcen sind verfügbar.
  • Gelb - RAM-Speicherressourcen werden bearbeitet.
  • Rot - Die RAM-Speicherressourcen sind erschöpft und OS X verwendet das Laufwerk als Speicher.
Ryan
quelle