Die grundlegendste Antwort? Nein. Das Betriebssystem verwaltet die Speicherverwaltung für den Benutzer, indem es einem Prozess so viel Speicherplatz zur Verfügung stellt, wie er benötigt, und nicht viel zur Verfügung stellt, um die Leistung des Systems zu ändern. Es hilft nicht viel, herauszufinden, ob die Speichernutzung Teil der Gleichung ist, warum die Linux-Server die Mac-Server übertreffen.
Aufgrund der mangelnden "Hackbarkeit" des virtuellen Speichersystems können Sie am besten die Leistung des virtuellen Speichers bewerten, um festzustellen, ob dies wirklich der Grund für Leistungsprobleme ist. Am einfachsten ist es, ihn zu verwenden vm_stat
oder zu befolgen Verwenden Sie live, um vm_stat [number of seconds]
zu sehen, wie viele Auslagerungen auftreten. Das Verschieben nicht verwendeter Seiten aus dem RAM auf die Festplatte ist viel kostengünstiger als das Zurückholen der Seiten von der Festplatte in den RAM. Eine Seite in OS X-Begriffen bezieht sich auf 4 KB Daten.
Außerdem können 32-Bit-Prozesse (z. B. Illustrator) nicht auf mehr als 4 GB zugreifen. Theoretisch ist es also möglich, dass 2 GB frei sind und ein Prozess nicht mehr über genügend Arbeitsspeicher verfügt, wenn 6 GB installiert sind.
Auf deinem Desktop und den Servern würde ich laufen vm_stat 2
die letzte Spalte und überprüfen - insbesondere, wenn Sie die Verzögerung von mehreren Sekunden bemerken, wenn Sie zu Illustrator wechseln.
Um herauszufinden, wie groß der Swap tatsächlich ist, können Sie entweder die Swap-Größe in Activity Monitor überprüfen oder ausführen du -shc /var/vm/swap* | tail -n 1
.
Das Verwenden von du -sh /var/vm
hat eine Einschränkung: Auf Laptops, die über den Ruhezustand (mindestens 4 Jahre) sleepimage
verfügen, ist möglicherweise ungefähr so groß wie der installierte Speicher.
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.
Geteilt : 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
Es ist möglich (ich habe es noch nicht ausprobiert), das virtuelle Speichersystem zu deaktivieren, indem es ausgeführt sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
und dann neu gestartet wird, damit dynamic_pager (das Programm, das die Zuordnung des virtuellen Speichers tatsächlich vornimmt) nicht startet. Da das Betriebssystem jedoch davon ausgeht, dass es über virtuellen Speicher verfügt, können Probleme sehr, sehr schnell auftreten. Um es wieder zu laden, führen Sie sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(falls erforderlich aus dem Einzelbenutzermodus)