Mein MacBook friert ständig ein, weil der gesamte RAM (8 GB) verwendet wird. Der Festplatten-Cache scheint die Ursache zu sein. Der Befehl sudo purge
hilft nur ein wenig. In einigen älteren Versionen von OS X funktionierte mein MacBook gut, weil es (gerade) genug RAM hatte, um Xcode (mit großem Projekt) auszuführen, ohne ständig zu wechseln.
Dies ist die Speichernutzung nach dem einmaligen Kompilieren meines Projekts. Die Speichernutzung von Xcode kann nach einigen Stunden der Nutzung um einige hundert MB anwachsen.
Dies beantwortet Ihre Frage nicht direkt, da ich keine Möglichkeit kenne, den Datei-Cache-Mechanismus in OSX zu deaktivieren. Davon abgesehen fällt mir kein guter Grund ein, WARUM Sie dies überhaupt tun möchten? Was macht Sie so sicher, dass es am Dateicache liegt?
Der Datei-Cache ist eine dynamische Sache, da er größer wird, wenn Sie mehr I/O mit Ihrer Festplatte machen, aber gelöscht wird und schrumpft, sobald eine Anwendung RAM benötigt, um etwas zu erledigen. Was im Dateicache lebt, sind Kopien kürzlich verwendeter Dateien mit der Idee, dass, wenn Sie sie kurz danach wieder benötigen, die E / A viel schneller ist, da sie sich bereits im RAM befinden. Während dies der RAM-Cache-Funktion des älteren MacOS ähnelt, besteht der große Unterschied hier darin, dass es vollständig dynamisch ist und wächst, um ungenutzten RAM in Ihrem System zu nutzen, und schrumpft, sobald ALLES RAM benötigt. Mit anderen Worten, es sperrt Ihren Speicher nicht und sollte nicht die Ursache für Verlangsamungen auf Ihrem Mac sein.
Abgesehen davon gibt es ein gewisses Gleichgewicht zwischen der Art und Weise, wie OSX Ihren Arbeitsspeicher verwaltet. Ich habe gesehen, dass es kleine Verzögerungen gibt, wenn Dinge in den "komprimierten" Zustand ein- und ausgehen, und im Allgemeinen ist die Idee, dass etwas einmal komprimiert wird, es dort bleibt, bis es einen wirklichen Bedarf gibt. Die größere Ursache für eine Verzögerung wäre, wenn Sie Swap verwenden, da dies die langsamste Form von Speicher ist, aber Ihr Screenshot zeigt sogar 0 Bytes für Swap an. Abgesehen von der Komprimierung und dem Austauschen wäre ich nicht überrascht, wenn es zu einem gewissen Overhead und Verzögerungen kommt, wenn Sie all dies verschieben, wenn Ihr gesamter RAM verwendet wird. Die Frage könnte sich jedoch eher darum drehen, welche Anwendungen in dieser Situation einfrieren. Vielleicht ist sogar Ihre Festplatte fast voll und Sie
Im Allgemeinen haben Sie möglicherweise einen kurzfristigen Vorteil, wenn Sie den Datei-Cache löschen oder deaktivieren, aber ich würde vermuten, dass dies Ihre Leistung tatsächlich beeinträchtigen würde , da Sie nicht von einem Dateisystem-Cache profitieren würden.
Wenn sudo purge
das nicht geholfen hat, versuchen Sie, den dynamischen Pager zu deaktivieren, z
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
Warnung: Dadurch wird die Paging-Fähigkeit von Mac OS X vollständig deaktiviert. Verwenden Sie sie daher nur, wenn Sie über eine große Menge RAM verfügen, Ihr Mac jedoch immer noch Auslagerungsdateien verwendet. Wenn Ihr System über einen SIP-Schutz verfügt, müssen Sie ihn zuerst deaktivieren (nicht empfohlen).
Sie können Auslagerungsdateien auch manuell aus entfernen /private/var/vm/
, z
sudo rm -f /private/var/vm/swapfile*
Starten Sie dann den Computer neu.
Quelle: Mac Virtual Memory – Was es ist, der Swap-Speicherort und wie man Swap deaktiviert
Um das Auslagern des Speichers vollständig zu deaktivieren, stellen Sie vm_compressor
es auf 1
, z
sudo nvram boot-args="vm_compressor=2"
4
oder auf Standard setzen , siehe die anderen Werte (von vm_pageout.h
):
#define VM_PAGER_DEFAULT 0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP 0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP 0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT 0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP 0x10 /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP 0x20 /* Freezer backed by in-core compressor with swap support too.*/
Um Ihren aktuellen Wert zu überprüfen, führen Sie Folgendes aus:
sysctl vm.compressor_mode
Um zum Normalzustand zurückzukehren, löschen Sie die Boot-Argumente wie folgt:
sudo nvram -d boot-args
Starten Sie Ihr NVRAM neu und setzen Sie es zurück .
mmmmmm
keithyip
mmmmmm
klanomath
keithyip