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

Die verschiedenen Spalten im Aktivitätsmonitor sind etwas verwirrend

Es könnte erwähnenswert sein, dass es einen fünften Speichertyp gibt, wenn Sie bei einem Prozess im Vergleich zu den Spalten im Aktivitätsmonitor auf „Inspizieren“ klicken. Insbesondere gibt es zwei Arten von „virtuellem“ Speicher: „virtuelle Speichergröße“ und „virtueller privater Speicher“. Letzteres wird in der Spalte „Virtual Mem“ im Aktivitätsmonitor angezeigt.

Antworten (3)

Aus meiner Antwort bei Server Fault entnommen :

Mac OS X Speicher-Jargon:

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

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

Real : Dies ist die "reale" Speichernutzung für eine Anwendung, wie sie von task_info() gemeldet wird - eine grobe Zählung der Anzahl der physischen Seiten, die der aktuelle Prozess hat. (RSGRÖSSE)

Privat : Dies ist Speicher, den ein Prozess ausschließlich für sich selbst verwendet, der im residenten Speicher verwendet wird. (RPRVT)

Virtual : Die Gesamtmenge des Adressraums im Prozess, der irgendetwas zugeordnet ist – ob es sich um einen beliebig großen Raum für Variablen oder irgendetwas handelt – entspricht nicht der tatsächlichen VM-Nutzung. (VGRÖSSE)

Active : Speicher, der derzeit als aktiv gekennzeichnet ist und verwendeter RAM ist.

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. Diese Informationen im RAM zu belassen, ist zu Ihrem Vorteil, wenn Sie (oder ein Client Ihres Computers) zurückkommen 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 in Nachforschungen finden konnte), ist Apples eigener Artikel zum Verwalten des Speichers auf der Entwickler-Website.

Weitere interessante Quellen: Darwin-dev-Mailingliste: [ 1 ], [ 2 ] und ein alter Artikel zu MacOSXHints . Zusätzlich hat Mike Ash in seinem Blog eine gute Laien-Einführung gepostet

Nach dem Lesen von Apples Managing Memory-Dokument wurde Inactive nicht unbedingt auf der Festplatte zwischengespeichert. Sie können dies demonstrieren, wenn Sie Ihren inaktiven Speicherverbrauch (meiner ist derzeit 747,5 MB) und Ihren "Swap used" (meiner ist derzeit 0 Bytes) überprüfen. Inaktiv bezieht sich nur auf Speicherseiten, die kürzlich von keinem Prozess gelesen/geschrieben wurden.
Es könnte sich lohnen, „virtuell“ zu klären, da es im Aktivitätsmonitor zwei Verweise auf „virtuellen“ Speicher gibt. Die Spalte „Virtual Mem“ bezieht sich auf „ Virtual Private Memory “ im Inspect Process-Fenster, und dann gibt es in diesem Fenster einen weiteren einfach betitelten Eintrag „ Virtual Memory Size “ (von dem ich glaube, dass es sich um die gemeinsam genutzte Komponente des virtuellen Speichers handelt). Dies ist auf 10.6.4 (falls der Aktivitätsmonitor die Terminologie geändert hat ...)
Ist „privates Gedächtnis“ Teil des „echten Gedächtnisses“?
Der Aktivitätsmonitor hat eine Spalte mit der Bezeichnung „Speicher“. Welchem ​​davon entspricht das?
Es ist keines davon, sondern eine kompliziertere und nuanciertere Metrik, die als „Gedächtnis-Fußabdruck“ des Prozesses bezeichnet wird. footprint(1)Weitere Informationen zur Berechnung finden Sie in der Manpage .

Real Mem bezieht sich auf den physischen Speicher (tatsächliche RAM-Module in Ihrem Computer). Virtual Mem gibt an, wie viel "falscher" Speicher dem Prozess zugewiesen wird, d. h. Speicher, der diesem Prozess auf dem permanenten Speichermedium (Festplatte, Solid-State-Laufwerk usw.) zugewiesen wird. Gemeinsam genutzter Speicher ist physischer (realer) Speicher, der mit anderen Prozessen gemeinsam genutzt werden kann. Privater Speicher ist "echter" Speicher, der nur von dem Prozess verwendet werden kann, dem er zugewiesen ist.

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

Hier ist eine Erläuterung einiger der Informationen, die unten im Speicherbereich angezeigt werden:

  • Verkabelt: Verkabelter Speicher enthält Informationen, die immer im RAM bleiben müssen
  • Aktiv: Aktiver Speicher, der Informationen enthält, die aktiv verwendet werden.
  • Inaktiv: Inaktiver Speicher enthält Informationen, die nicht aktiv verwendet werden. Diese Informationen im RAM zu belassen, ist zu Ihrem Vorteil, wenn Sie (oder ein Client Ihres Computers) später darauf zurückkommen.
  • Used: Benutzter Speicher wird von einem Prozess oder vom System verwendet. Der verwendete Speicher ist die Summe aus verkabeltem, aktivem und inaktivem Speicher. Wenn das System Speicher benötigt, nimmt es freien Speicher vor verwendetem 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. Die VM-Größe ist die Menge an Speicherplatz, die als Arbeitsspeicher verwendet wird. Mac OS X kann mehr Arbeitsspeicher verwenden, als Sie über physischen Arbeitsspeicher verfügen. Eine Festplatte ist viel langsamer als RAM, sodass das virtuelle Speichersystem automatisch Informationen zwischen Festplattenspeicher und RAM verteilt, um eine effiziente Leistung zu erzielen. Page-Ins/Outs: Die Anzahl der Gigabyte an Informationen, die Mac OS X zwischen RAM und Festplattenspeicher verschoben hat
Das ist nicht richtig. Virtueller Speicher ist kein Speicher, der auf der Festplatte zugewiesen wird (was als Swap bezeichnet wird). Virtueller Speicher ist, dem Adressraum zugewiesen wurde, der sich jedoch nicht im physischen Speicher befindet. Das mag wie das Gleiche erscheinen, aber es ist subtil anders. In vielen Fällen weisen Programme Speicher zu, ohne ihn jemals zu berühren. In diesen Fällen verwenden die Programme viel virtuellen Speicher. Um ein konkretes Beispiel zu geben: Mein System verwendet derzeit 512 MB Swap, hat aber 196 GB virtuellen Speicher zugewiesen (was eine ziemlich typische Menge für Leute ist, die Snow Leopard auf K64 ausführen).
@Louis, wenn der virtuelle Speicher zugewiesen wurde, aber weder RAM noch die Festplatte verwendet, wo ist er dann?
@Louis: Du hast recht. Es ist jedoch etwas verwirrend, da der Aktivitätsmonitor diese Informationen anzeigt. Die 196 GB der VM, auf die Sie sich beziehen, sind nicht die tatsächliche Größe der Auslagerungsdatei, beschreiben jedoch die potenzielle Größe der Auslagerungsdatei. Beachten Sie, wie sie den Ausdruck „kann als Erinnerung verwendet werden“ verwenden.
@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 Auslagerungsspeicher zugeordnet werden müssen, aber es besteht keine Notwendigkeit, diesen Speicherplatz zu binden, wenn die Anwendung nicht tatsächlich 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 verwenden nicht wirklich all diesen Speicher.
Es gibt viele VMs, die nicht tatsächlich austauschbar sind. Wenn Sie zum Beispiel eine 4-GB-Datei mmapen, werden 4 GB VM benötigt, beim Lesen wird sie direkt aus der Datei eingelagert, und unter Druck wird sie verworfen (nicht ausgetauscht), da die Originaldatei einfach erneut gelesen werden kann. VM und Swapping sind wirklich völlig unterschiedliche Dinge, VM wird einfach verwendet, um herauszufinden, was ausgetauscht werden soll.
danke, dass du das geklärt hast. Was ist dann die Korrelation, falls vorhanden, zwischen der VM-Größe und der virtuellen Speicherspalte, die pro Prozess angezeigt wird?
Die VM-Größe ist die Gesamtmenge des in der App zugewiesenen Adressraums, unabhängig davon, was der ultimative Sicherungsspeicher für diesen Adressraum ist und ob er tatsächlich berührt wurde oder nicht.
Ich sollte darauf hinweisen, dass ich im ersten Kommentar nicht klar war, dass VSIZE die gesamte RSIZE enthält (alle residenten Seiten werden immer noch im virtuellen Adressraum der App abgebildet). Ich hätte sagen sollen "aber es ist kein physischer Speicher", nicht "es ist nicht im physischen Speicher".
Wieder einmal denke ich, dass die Terminologie von Activity Monitor unsere Diskussion verwirrt. In Ihrem vorletzten Kommentar sagen Sie, dass die VM-Größe die "Gesamtmenge des in der App zugewiesenen Adressraums" ist. Beziehen Sie sich tatsächlich auf die Spalte "Virtual Mem", die für jeden Prozess angezeigt wird?
Mit VSIZE beziehe ich mich auf etwas, das nicht im Aktivitätsmonitor aufgeführt ist. Sie können es oben aufgelistet sehen, wenn Sie möchten. Was der Aktivitätsmonitor in der Spalte „Virtueller Speicher“ auflistet, wird allgemein als VPRVT bezeichnet, d. h. die Menge an virtueller Adresse, die von der App verwendet wird und nicht mit anderen Apps geteilt wird.

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

Geben Sie hier die Bildbeschreibung ein

  • Physischer Speicher: Die Größe des installierten RAM.
  • Verwendeter Speicher: Die Menge an RAM, die verwendet wird und nicht sofort für andere Apps 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 bestimmt.
  • Swap Used: Der Speicherplatz auf Ihrem Laufwerk, der verwendet wird, um nicht verwendete Dateien in und aus dem RAM zu verschieben. Es ist normal, etwas Aktivität zu sehen, und es ist kein Hinweis darauf, dass Sie erschöpfte RAM-Ressourcen haben. Wenn der Speicherdruck im roten Zustand angezeigt wird, weist dies darauf hin, dass die RAM-Ressourcen erschöpft sind.
  • App-Speicher: Die Menge an Speicherplatz, die von Apps verwendet wird.
  • Wired Memory: Speicher, der nicht auf der Festplatte zwischengespeichert werden kann, also im RAM verbleiben muss. Dieser Speicher kann nicht von anderen Apps ausgeliehen werden.
  • Komprimiert: Die Menge an Arbeitsspeicher im RAM, die komprimiert wird, wodurch mehr RAM-Ressourcen für andere Apps verfügbar werden.
  • Datei-Cache: Der Speicherplatz im RAM, der als verfügbar für Apps markiert ist und kürzlich verwendete Dateien enthält.

Speicherdruckdiagramm

Die Kombination aus freien, kabelgebundenen, aktiven, inaktiven und belegten Speicherstatistiken in früheren Versionen von Activity Monitor wurde in Mavericks durch ein leicht lesbares „Speicherdruck“-Diagramm ersetzt.

Der Speicherdruck wird farblich angezeigt:

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