Das Problem, das ich habe, ist, dass wir auf einem Server (und auch auf anderen OSX-Boxen) 4 GB RAM haben, aber wir stellen fest, dass OSX nur 40-60% des verfügbaren RAM verwendet, während es auch einen Swap von 6-7 GB hat. Auf dem Server werden Apache und MySQL ausgeführt, während die anderen Computer Desktops sind.
Ich habe seine Verwendung mit ähnlichen Linux-Boxen (Hardware und Software) verglichen und festgestellt, dass Linux normalerweise 80-90% des Arbeitsspeichers verwendet und eine viel kleinere Auslagerungsdatei (2-3 GB) hat. Die Linux-Server laufen in der Regel auch viel schneller.
Gibt es eine Möglichkeit, OSX zu zwingen, mehr oder den größten Teil des Arbeitsspeichers zu verwenden, bevor eine Auslagerungsdatei verwendet wird?
In Windows können Sie den Swap tatsächlich komplett deaktivieren. Gibt es etwas Ähnliches für OSX?
quelle
du -sh /var/vm
- das heißt, sie kann künstlich hoch sein, wenn ein Schlafbild (das am häufigsten auf Laptops zu sehen ist) vorhanden ist. Es stehen verschiedene Tools zur Verfügung, mit denen Sie feststellen können, ob der Speichervm_stat
die Verzögerungen verursacht: - Sie interessieren sich insbesondere für den Wert der Auslagerungen. Weitere Informationen zur Speicherverwaltung von Apple finden Sie unter: developer.apple.com/documentation/Performance/Conceptual/…Antworten:
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, umvm_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 Siesudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(falls erforderlich aus dem Einzelbenutzermodus)quelle