Warum sollte ich die Auslagerungsdatei in Mac OS X deaktivieren?

Ich bin auf einen Thread über die Installation eines SSD-Laufwerks in MacBook Pro gestoßen.
Jemand in den Kommentaren empfahl auch, die Auslagerungsdatei zu deaktivieren, sagte aber nicht warum:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

Ich frage mich, warum man die Auslagerungsdatei in Mac OS X deaktivieren möchte. Erhöht
es die Leistung? Stabilität?
Irgendwelche Nachteile?

Ist es schließlich sinnvoll, die Auslagerungsdatei zu deaktivieren, wenn keine SSD verwendet wird?

Es wird oft von den weniger Wissenden deaktiviert, weil sie in einem Blog gehört haben, dass die Leistung in die Höhe geschossen ist. SSDs bieten auch eine gute Testumgebung, da sie von Natur aus schnell sind. Tu das nicht. Es wird die Stabilität verringern und im Laufe der Zeit zu katastrophalen Auswirkungen führen. Bis heute habe ich keine echten Daten (gültig und zuverlässig) gesehen, die eine Leistungssteigerung zeigen. Und es ist eine kritische Komponente eines Betriebssystems, egal ob Sie 2 GB oder RAM oder 120 haben.
Welche katastrophalen Auswirkungen? Nur neugierig ... es scheint meine Maschine (4 GB MacBook Pro) eine Tonne schneller zu machen. Wenn ich zum Beispiel neue Terminalfenster öffne, gibt es keine Blockierung mehr ... es ist sofort da, wo es vorher einige Sekunden gedauert hat. Und ich konnte doppelt so viele Apps öffnen, wie ich normalerweise verwenden würde, und es ist nichts Schlimmes passiert.
orange80: Die übliche Ursache für langsame Terminalfenster ist der Anmeldeprozess, der nach dem vorherigen Login sucht, was durch Hushlogin behoben werden kann: apple.stackexchange.com/a/54167/22570 – hast du vielleicht nach dem Ändern der Swap-Einstellungen neu gestartet? ? Es gibt keinen Grund, warum die Geschwindigkeit des Terminalfensters durch das Entfernen von Swap verbessert werden sollte.
Ich verstehe, dass Sie mit einer SSD mit geringer Kapazität möglicherweise Speicherplatz freigeben möchten. Aber auf der Seite der Leistung sind SSDs viel schneller als HDs, daher sehe ich nicht, wie das Deaktivieren des Austauschens in einem SSD-basierten Betriebssystem die Leistung wirklich verbessern würde. Irgendwelche Erfahrungen dazu? Danke.
In Super User mit einer akzeptierten Antwort: Disable Mac's dynamic_pager? (2012-04-27)
Ich möchte den Swap deaktivieren, weil ich meine SSD davor schützen möchte, zu oft geschrieben zu werden.

Antworten (14)

Ich frage mich, warum man die Auslagerungsdatei in Mac OS X deaktivieren möchte. Erhöht es die Leistung? Stabilität? Irgendwelche Nachteile?

Ich nehme an, die Leute würden es für ein SSD-Laufwerk tun, weil diese Laufwerke nicht die gleiche Lebensdauer wie herkömmliche magnetische Spinning-Disk-Laufwerke haben. Es gibt eine begrenztere Anzahl von Schreibzyklen, daher würde die Verwendung mit einer Auslagerungsdatei diese Zyklen vermutlich schneller verbrauchen.

Ist es schließlich sinnvoll, die Auslagerungsdatei zu deaktivieren, wenn keine SSD verwendet wird?

Wenn Sie viel RAM haben, würde dies möglicherweise die Leistung beschleunigen, aber es ist im Allgemeinen keine gute Idee . Wenn Sie an die Speichergrenze stoßen, werden die Dinge schuppig.

Außerdem wird verdrahteter Speicher nicht freigegeben, wenn er ungültig wird, er wird nur freigegeben, wenn ein Auslagerungsereignis ausgelöst wird, was nicht geschieht, wenn der virtuelle Speicher deaktiviert ist. So wird es nicht lange dauern, bis Ihr gesamter Speicher verschlungen ist, auch wenn er nicht mehr verwendet wird.

Das virtuelle Speichersystem des Mac ist insofern sehr faul, als es die physischen Auslagerungsdateien nur dann erstellt, wenn es an der Zeit ist, den tatsächlichen Speicher auszulagern. Was auch immer Sie für eine Beschleunigung sehen, wenn Sie die Dinge nicht verzögern müssen, um einen Write-to-Swap zu ermöglichen, wird mit ziemlicher Sicherheit durch die vorherigen Geschwindigkeitsgewinne ausgeglichen, die dadurch entstehen, dass Swap überhaupt verfügbar ist. Swap macht Macs schneller. Der Rest der Antwort ist genau richtig - schön gemacht!
Meine Windows-Maschinen arbeiten ohne die Auslagerungsdatei viel schneller. Ich habe 4 GB Arbeitsspeicher. Ich werde es auf jeden Fall auf meinem Mac machen.
@geotavros Das virtuelle Speichersystem in Mac OS X funktioniert nicht genauso wie Windows. Vertrauen Sie mir, mit 4 GB Arbeitsspeicher arbeitet Ihr Mac schneller, wenn der virtuelle Arbeitsspeicher aktiviert ist. Das Deaktivieren der VM verursacht nur Kopfschmerzen und Systeminstabilität.
FYI, eine moderne SSD mit Write-Leveling und einer anständigen Kapazität (128 GB), auf die kontinuierlich geschrieben wird, wird ein in Jahrhunderten gemessenes Write-Cycle-Limit haben. Das war im Jahr 2000 bei kleinen, primitiven SSDs eine berechtigte Befürchtung, aber heute nicht mehr.
Für ein MacBookPro5,2 mit 8 GB Speicher ist die Leistungssteigerung dramatisch. Für Snow Leopard oder Lion in einer VirtualBoxVM ist die Verbesserung erstaunlich. In allen drei Fällen scheint das Betriebssystem den Speicher so zu verwenden, dass das Risiko minimiert wird, das „Limit“ zu erreichen (wo alle Dinge effektiv aufhören), aber dieses Risiko bleibt bestehen, daher ist es vernünftig, die Nutzung im Aktivitätsmonitor zu beobachten.
Zur Information VM (oder Virtual Memory) sollte nicht mit Auslagerungsdatei verwechselt werden. Windows, OS X, *BSD, Linux und viele Unix verwenden alle virtuellen Speicher. Normalerweise gibt die Architektur dieses Betriebssystems eine VM pro Prozess vor, der Prozess weist Speicher innerhalb dieses Bereichs zu und das Betriebssystem kümmert sich darum, diesen zugewiesenen Speicher im physischen RAM zu platzieren oder auszutauschen, wie es das Betriebssystem für richtig hält. Das Tauschen kann sich auf die eine oder andere Weise auf verschiedene Kriterien (Geschwindigkeit, Reaktionsfähigkeit usw.) auswirken, dies hängt von der Arbeitsbelastung jedes einzelnen von uns ab. Wie die Engländer sagen: Ihr Milleage kann variieren! Und in diesem Fall sehr.

Der Grund, warum sie die Auslagerungsdatei deaktiviert haben, ist wahrscheinlich Paranoia über SSDs mit einer maximalen Anzahl von Schreibvorgängen pro Block. In Auslagerungsdateien kann häufig geschrieben werden, was möglicherweise zu einer Festplattenfragmentierung (sowie zu einer Fragmentierung des Dateisystems) und schließlich zu einem früheren Ausfall der Festplatte führen kann.

Allerdings handelt es sich definitiv um eine verfrühte Optimierung. Es ist fast immer eine SCHRECKLICHE , SCHRECKLICHE Idee, Ihre Auslagerungsdatei zu deaktivieren. Die Auslagerungsdatei ist dafür da, wenn Ihre laufenden Programme mehr Speicher verbrauchen, als Sie physisch installiert haben. Wenn Sie es deaktivieren, können Sie möglicherweise nicht so viele Programme gleichzeitig ausführen (und das Limit ist viel niedriger als erwartet) oder Sie haben möglicherweise Probleme (wie Einfrieren und Neustart des Computers). Ihnen geht der Speicher aus.

Letzteres habe ich erlebt (mit aktivierter Auslagerungsdatei), wenn der Speicherplatz knapp wird. Ich hatte eine 120-Gig-Festplatte mit ~3 freien Gigs. Beim Spielen von Civilization IV (einem großen Vollbildspiel) ging dem System der Festplattenspeicher aus (ca. 50 MB frei) und das Fenster „Apps jetzt beenden“ wurde angezeigt. Dies versteckte sich hinter dem Vollbildspiel, sodass das System einfach abstürzte. Wenn ich nicht in der Lage gewesen wäre, mich von einem anderen Mac aus einzuloggen, um mehrere Apps aus der Ferne zu beenden, hätte ich den Netzschalter gedrückt halten müssen.

Ich möchte wiederholen, was für eine schlechte Idee das ist. Swap wird auch dann verwendet, wenn Sie 16 GB RAM haben. Nicht so viel, aber ein kleines bisschen ist bereits in Swap geschrieben. Stets. Es ist ein Schutz. Und obwohl das Betriebssystem möglicherweise ohne es läuft, können Sie nicht sicher sein, wie sich Apps von Drittanbietern verhalten. HD wird angeschrieben. Es ist eine Tatsache, wenn das Leben. Und nein, es wird keine „echte“ Leistungssteigerung geben. Das ist ein Placebo.
@cksum In einigen bestimmten Serverszenarien deaktivieren Systemadministratoren die Auslagerungsdatei, weil sie diese bestimmte Konfiguration schneller macht, aber sie tun dies nicht, ohne zu testen, ob sowohl (a) nicht genügend Speicher zur Verfügung steht als auch (b ) es ist tatsächlich schneller. Aber das ist ein Server, der von Profis betrieben wird: Auf einem Verbrauchercomputer ist dies nie erforderlich.
@cksum Ich könnte deinem ersten Satz zustimmen, mit dem zweiten, dritten und vierten hast du Recht, aber der Rest ist Müll. Ein Betriebssystem tauscht nicht gegen "Schutz", ein Betriebssystem tauscht aus, um mehr Speicher für aktive Prozesse verfügbar zu machen, die dies erfordern würden, oder um die E / A durch Puffern von Daten zu beschleunigen, damit nicht aktiver Speicher im RAM freigegeben werden kann. Wenn Sie eine Anwendung entwickeln, fordern Sie Speicher für das Betriebssystem an. Dieser Speicher ist Teil Ihrer virtuellen Speichernutzung. Als Entwickler oder Anwendung wissen Sie nicht, ob das Betriebssystem diesen Speicher oder einen Teil davon in den physischen RAM oder Swap gestellt hat. (fortgesetzt werden)
Wenn also eine Drittanbieter-App mehr Speicher anfordert, als verfügbar ist, gibt das Betriebssystem einen Fehler aus. Dies ist unabhängig davon, ob Sie einen Swap haben oder nicht. Swap zu haben wird nur das Limit höher setzen, das war's. Wenn Sie 2 Benutzer angemeldet haben und der aktive Benutzer einen Videoeditor mit großen Dateien verwendet, kann das Betriebssystem Speicherseiten des inaktiven Benutzers in den Swap einfügen, um die vom aktiven Benutzer ausgeführten Aufgaben zu beschleunigen. In diesem Fall erhalten Sie eine bessere Leistung in Bezug auf die Geschwindigkeit. Das Umschalten auf den anderen Benutzer wird jedoch langsamer, das Betriebssystem muss den Austausch zurücklesen. Dies ist kein Placebo!
@Huygens "Durch Swap wird nur das Limit höher gesetzt, das war's." Du meinst so etwas wie eine Absicherung? "E/A durch Puffern von Daten beschleunigen" Swap wird nicht verwendet, um irgendetwas zu beschleunigen. RAM ist und war schon immer schneller als eine Festplatte, SSD oder HDD. Swap wird verwendet, wenn einem bestimmten Prozess kein RAM mehr zur Verfügung steht. Es ist ein Fallback ... ein Schutz davor, dass der zuzuweisende Speicher vollständig ausgeht. Das ist es. Mehr ist da nicht drin.
@cksum Ich weiß, und Sie haben meinen Kommentar falsch verstanden. Durch das Freigeben von RAM (Paging eines Teils davon im Swap) hat das Betriebssystem mehr Platz für Puffer und Cache, was häufig, aber nicht immer, die E / A beschleunigen kann. Ein höheres Limit bedeutet, dass es statt bei 2 GB (weil Sie 2 GB RAM haben) bei 4 oder 12 oder mehr GB bricht , weil Sie Swap haben. Mit Swap können also mehr Apps gleichzeitig ausgeführt werden. Aber sobald Sie das Limit erreicht haben, ist das Ergebnis mit oder ohne Swap dasselbe: Anwendungen werden instabil! Eine Tür breiter zu machen ist nicht wie eine Schutzeinrichtung zu schaffen! Wir können uns unterhalten, um unsere Ansichten zu klären.
@Huygens Im Fall von Swap ist die verfügbare zusätzliche Speicherplatzgröße jedoch der verbleibende Speicherplatz auf Ihrer Boot-Festplatte, der normalerweise ziemlich groß ist. Und dann, ja, das System wird abstürzen. Mir ist das passiert.
@CajunLuke Unter OS X kann es das komplette Dateisystem sein, was ein Problem für die Dateien der Benutzer sein könnte, einige Dateien könnten sich als durch eine schlecht geschriebene Anwendung auf Null gesetzt herausstellen. Auf anderen Systemen ist die Dateigröße entweder begrenzt oder sie verwendet dedizierte Partitionen. Ich meine, wenn ich 300 GB frei auf meiner Festplatte hätte, würde ich es als großen Fehler empfinden, wenn das Betriebssystem versuchen würde, dies mit Swap zu füllen ;-) Vor allem, weil es bedeutet, dass etwas schrecklich falsch läuft! :)
Ich habe einmal (unter Linux) vergessen, beim Einrichten eine Swap-Partition einzurichten. Als ich aufgehängt wurde, dachte ich, es sei ein Kernel-Bug - es stellte sich heraus, dass es der fehlende Swap-Speicher beim Spielen von Mincecraft war. tauschen verwenden.

Sie haben zwei großartige Antworten, die erklären, warum dies in fast allen Fällen, in denen das System auf ein Speichergerät schreiben kann, eine schlechte Idee ist.

Der Grund, warum Sie Swap deaktivieren können, ist, dass das System auf schreibgeschützten Medien wie einer CD, DVD, einem gesperrten Netzwerk-Image mit NetBoot oder einem schreibgeschützten USB-Fob wie dem neuen Lion-Installationsprogramm oder einem Wiederherstellungs-Fob ausgeführt werden kann, der mit einigen Macs ohne optisches Gerät geliefert wird fährt.

Virtueller Speicher bedeutet, dass das System wesentlich schneller laufen und weniger RAM verwenden kann, wenn viele Programme denselben gemeinsamen Bibliothekscode verwenden. Jedes Programm denkt , dass es eine private Kopie des gesamten Codes hat, den es benötigt, aber wenn virtueller Speicher vorhanden ist, hat das System eine nette Möglichkeit, denselben physischen RAM verschiedenen Programmen zuzuordnen.

Durch das Deaktivieren von Swap wird verhindert, dass der Mac einen winzigen Teil Ihres Laufwerks als Cache für einen berechneten Speicher verwendet, aber das Programm war nicht intelligent genug, um diese Ergebnisse selbst in einen richtigen Cache zu schreiben.

Wenn Sie ein Backup und Zeit zum Experimentieren haben, warum schalten Sie es nicht aus und sehen, wie sich Ihre Erfahrung ändert?

Ich würde meinen Swap behalten, selbst wenn ich sicher wüsste, dass ich jährlich für ein neues Laufwerk bezahlen müsste. Die Geschwindigkeit, die mir der Swap gibt, ist RIESIG. Dies ist nicht immer so, und manchmal, wenn das System thrasht oder blättert, kann das Gegenteil der Fall sein. Viele Leute entscheiden sich dafür, ohne Swap zu laufen, damit sie einen Speicherzuweisungsfehler erhalten, anstatt ihren Mac mit dem Paging beginnen zu lassen, da dies eine Maschine verlangsamen kann, wenn die Dinge nicht reibungslos laufen.

Ihr Fall mit einer SSD könnte anders sein, also lassen Sie es uns wissen, wenn Sie es versuchen.

Ich finde das Gegenteil, eine enorme Beschleunigung, wenn dynamic_pager deaktiviert ist . Der aktuelle Screenshot unter apple.stackexchange.com/a/60661/8546 zeigt die Größe des virtuellen Speichers und die gemessenen Page-Ins, während dieser Daemon deaktiviert ist (während Auslagerungsdateien nicht verwendet werden).
Was genau wird gemessen, um eine Beschleunigung zu bestimmen? (Oder sehen Sie das Fehlen von Verzögerungen oder Verzögerungen in der Benutzeroberfläche oder etwas anderes, das nicht leicht quantifizierbar oder messbar ist?)
Ohne zu messen: Mit Lion schienen die meisten Dinge merklich schneller zu sein – genug für mich, um das Wort riesig zu verwenden . In jüngerer Zeit: 10.8 in einer VirtualBoxVM zum Beispiel, um sich anzumelden und Activity Monitor fortzusetzen, dauert es sechzehn Sekunden mit dynamic_pager, zwölf Sekunden ohne. Für einen breiteren und gemesseneren Vergleich könnten wir die Phoronix Test Suite oder Geekbench verwenden .

Ich werde hier der Neinsager sein: Ich habe Swap auf meinem späten 2008er Unibody Macbook Pro deaktiviert und es hat die Leistung merklich verbessert: Weniger Wartezeiten, schnellerer Wechsel zwischen Anwendungen.

Wohlgemerkt, ich behalte meinen freien Speicher im Auge und habe 6GB verbaut. Die paar Male, wo ich das Speicherlimit erreichte, stürzte das System ab :-D

Auf meinem neuen MacBook Air würde ich nicht im Traum daran denken, Swap zu deaktivieren, es ist bereits schnell, wenn es aktiviert ist, und es hat zunächst nur 4 GB.

Ein weiterer guter Grund, warum Leute Swap auf einer SSD deaktivieren, ist, dass sie winzige SSDs bekommen und den ganzen Platz brauchen, den sie bekommen können. Mach es auf keinen Fall.

Toll, echte Erfahrung zu haben, wo das funktioniert hat. Wie hoch war die RAM-Verpflichtung auf dem Computer, als Swap deaktiviert war? Was ist passiert, wenn Sie mehr Apps geöffnet haben, als in den Arbeitsspeicher passen würden? Wie viel RAM hatten Sie und welche Apps würden in diesem Bereich bequem und fehlerfrei laufen?
@bmike, nicht sicher, das System stürzt ab :-D, 6GB und alle, die ich benutze :). Aperture oder XCode sind echte Speicherfresser und könnten manchmal das System umkippen, aber Skype, Mail, Adium, Safari, Chrome, iTunes und OmniFocus passen alle gut ...

Meine Erfahrung ist ähnlich wie die von w00t. Ich habe die Auslagerungsdatei auf SL und Lion deaktiviert, weil die Leistungssteigerung für mich funktioniert. Die kabelgebundene Nutzung gerät nach ungefähr einer Woche außer Kontrolle, aber ein einfacher Neustart behebt das. Ich habe keine SSD, sondern eine langsame 5400rpm-Festplatte. Die Lebensdauer von SSDs ist jedoch nicht so schlecht, wie die Leute versuchen, sie darzustellen. Wenn Sie es einfach tun, weil Sie Angst haben, Ihre SSD zu verschleißen, lesen Sie bitte: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd/2 und http://communities.intel.com/thread/21717?tstart=0 Intel bewertet seine Laufwerke mit über 20 GB pro Tag, jeden Tag, für bis zu 5 Jahre auf einem 80-GB-Laufwerk. Größere Laufwerke halten sogar noch länger. Der durchschnittliche Benutzer verwendet nicht einmal 10 GB/Tag.

Ich überwache meine 4-GB-Speichernutzung mit iStat-Menüs und verwende ein Automator-Skript mit dem Bash-Befehl „purge“ (erfordert die Installation von Xcode), um inaktiven Speicher zu löschen und häufig mehr freien Speicher zu öffnen. Die wenigen Male, bei denen Apps mit Speicherlecks den gesamten Arbeitsspeicher belegten, musste ich einen Hard-Reset durchführen. Die seltenen Fälle, in denen das passiert, und die Geschwindigkeit im Allgemeinen machen es lohnenswert, die Auslagerungsdatei für mich deaktiviert zu lassen. Mir ist klar, dass ich aus diesem Grund nicht so viele Apps gleichzeitig öffnen kann, wie von anderen angegeben, aber ich kann damit arbeiten.

Memory Scope hat eine Option zum automatischen Löschen. (Wenn dynamic_pager aktiviert ist, verbiete ich Bereinigungen.)

Werfen Sie nur meine 2 Cent für diejenigen ein, die Swap WEGEN kleiner SSDs deaktivieren möchten: Das Sleepimage benötigt viel mehr Speicherplatz.

Und für diejenigen, die sich Sorgen über die begrenzte Lebensdauer der SSD machen (insbesondere diejenigen mit MBAs und fest verdrahteten SSD-Chips, die NICHT ersetzt werden können), kann das Neuschreiben des Ruhebilds ein Problem sein, wenn Ihr Computer viele Male am Tag in den Ruhezustand versetzt wird. Mein Laptop schläft problemlos ein halbes Dutzend Mal am Tag. Das schreibt täglich 48 GB Daten auf meine SSD.

Die Lösung besteht in jedem Fall darin, den Ruhezustand zu deaktivieren und dann die sleepimage-Datei zu löschen, die so groß ist wie Ihr installierter RAM (in meinem Fall 8 GB).

Das Nachteilsrisiko: Wenn Ihr Akku leer ist, während Ihr Laptop schläft, geht Ihr aktueller Zustand verloren. Dies entspricht einem erzwungenen harten Neustart. Keine physische Beschädigung des Laptops, nur ein Produktivitätsverlust. Wenn Sie den Ruhezustand deaktivieren, der Akku leer ist und nicht aufgeladen werden kann, halten Sie einfach den Code bereit, um den Ruhezustand zu aktivieren!

Um den Ruhezustand zu deaktivieren, lautet der Befehl im Terminal wie folgt:

 sudo pmset -a hibernatemode 0

Um den Ruhezustand zu aktivieren, lautet der Befehl wie folgt:

 sudo pmset -a hibernatemode 3

So löschen Sie das letzte Sleepimage, um SSD/HDD-Speicherplatz freizugeben (macht nur Sinn, wenn Sie den Ruhezustand ausschalten, sonst belegt ein neues diesen Speicherplatz, wenn Ihr Computure das nächste Mal in den Ruhezustand versetzt wird):

 sudo rm -rf /var/vm/sleepimage

Quelle: man pmset

Das Deaktivieren von Swap erhöht die Leistung. Zum Beispiel verwende ich regelmäßig Aperture und wenn der Swap wächst, verschlechtert sich die Leistung und wenn er über 1 GB hinausgeht, muss ich das Betriebssystem neu starten, um es zu bereinigen und die Leistung wiederherzustellen. Hinweis: Die Maschine hat 6 GB RAM und NICHT alles ist belegt, etwa 3 GB sind frei, aber 1 GB Swap beeinträchtigt die Leistung erheblich.

Ich habe Swap seit vielen Jahren auf Maschinen deaktiviert, sowohl unter OS X als auch unter anderen UNIX-Varianten.

Ich verwende ein Tool, das mich benachrichtigt, wenn der Speicher knapp wird, und mache mir nie Sorgen, dass mein System abstürzt.

Mein iMac hat 12 GB, und mit deaktiviertem Swap habe ich fast immer 4 GB frei, selbst wenn mehrere Entwicklungstools, Apps, Browser usw. geöffnet sind

Welches Speichertool verwendest du?

Der Hauptgrund für die Deaktivierung der Auslagerungsdatei ist nicht die Geschwindigkeit, sondern der Speicherplatz.

Wenn man ein Benutzer ist, der routinemäßig innerhalb von 5 GB eines vollen Laufwerks läuft, wird das Deaktivieren von Swap das ständige Nörgeln von Platzmangel stoppen; Ich lande routinemäßig mit einer Auslagerungsdatei von mehr als 4 GB aus dem routinemäßigen Surfen.

Die Geschwindigkeitsverbesserung ist bei älteren Maschinen erstaunlich; Es ist nicht so beeindruckend auf modernen Maschinen mit SSD. (Unter OSX 10.0 auf einem iMac halbierte die Verwendung des virtuellen Speichers die Geschwindigkeit vieler Vorgänge, einschließlich des Kopierens von Dateien zwischen Laufwerken).

Das klingt eher so, als würde man die Hupe reparieren lassen, weil die Bremsen nicht funktionieren. Wenn das Laufwerk zu voll ist, holen Sie einige Daten davon ab.
@Tetsujin Die größte Einzeldatei auf diesem Laufwerk WAR die Auslagerungsdatei.
mein Punkt steht immer noch. Weniger Daten, größeres Laufwerk oder mehr RAM und das müssten Sie nicht.

Das sich wiederholende Muster hier ist dieses:

Diejenigen, die die Auslagerungsdatei deaktiviert haben, erlebten eine verbesserte Leistung (mit ausreichend physischem RAM)

Diejenigen, die den Swap Space NICHT deaktiviert haben, sind sich sicher, dass es nicht funktionieren wird und etwas Schreckliches passieren wird, und raten Ihnen dringend, dies nicht zu tun.

Das liegt einfach an zwei Dingen:

  1. Veraltete Vorstellungen über die Knappheit und die hohen Kosten von physischem RAM, die nicht mehr gültig sind
  2. Ein wirklich schlechter Auslagerungsmechanismus in MacOS, der die Verwendung von Auslagerungsdateien verursacht, wenn ausreichend physischer Arbeitsspeicher vorhanden ist.
Wenn der Auslagerungsspeicher NUR bei Bedarf verwendet würde, wäre das großartig. Dies ist jedoch nicht der Fall. Ich führe virtuelle Maschinen mit 2 GB und 4 GB auf meinem MacOS aus. Wenn ich 1,6 GB freien RAM habe, sollte ich in der Lage sein, eine virtuelle Maschine mit 1 GB (oder ein anderes Programm) auszuführen, aber ich kann nicht, weil das Betriebssystem damit beginnt, es auszulagern. Dadurch kann ich nur ca. 85-90% meines Arbeitsspeichers nutzen. Wenn ich auf meinen gesamten RAM zugreifen möchte, muss ich Paging deaktivieren. Ich mache das auf allen meinen Windows-Rechnern und möchte dasselbe auf meinem MacOS machen. Wenn einem Programm der RAM ausgeht, schlägt es fehl. Das ist, was ich will. Ich möchte keine anderen laufenden Anwendungen
YMMV. Ich deaktiviere Swap nicht mehr, da ich nicht festgestellt habe, dass es die Leistung auf modernen, RAM-geladenen Computern verbessert. Früher habe ich das gemacht, weil es in den schlechten alten Zeiten geholfen hat. Heutzutage sehe ich nicht nur KEINE Leistungsänderung durch Deaktivieren von Swap, ich sehe auch eine stark erhöhte Anwendungsinstabilität.
Das Unerwünschte, was passieren wird , ist, dass ein Mensch vergisst, dass er kein anderes Programm starten kann, und mit der Zeit wird die Maschine aufgrund eines Fehlers wegen zu wenig Speicher abstürzen. Ob dies schrecklich, humorvoll oder lehrreich ist, hängt vom Timing, Ihrer Backup-Häufigkeit und Ihrer Toleranz für Verzögerungen ab.

Nur eine persönliche Erfahrung.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

Ein kurzer Hinweis: Wenn Ihr Mac integrierte Grafik verwendet, wird sein Speicher mit kernel_task mit Ihrem Hauptspeicher geteilt. Daher müssen Sie diesen Betrag von Ihrem gesamten nutzbaren Betrag abziehen.

SSD-Benutzer, es ist befriedigend, mehr Speicherplatz zu haben, aber es ist wichtig zu wissen, dass virtueller Speicher auf SSDs gedeiht, Sie können eine ganze Menge Leistungsgewinn daraus ziehen. Schadet es der SSD? Ja, aber Sie werden Ihren Mac lange ersetzen, bevor Sie es bemerken.

Ich persönlich habe den virtuellen Speicher auf meinem Retina MacBook Pro mit nur 8 GB Speicher deaktiviert. Hier ist die Rechnung, das System verwendet etwa 2 GB Speicher, wenn man die integrierte Grafik mitzählt. Also bei mir sind das 6 GB. Ich mache Xcode für die Arbeit, verbraucht dabei nicht mehr als 2 GB Speicher. Ich habe also genug übrig.

Zusammenfassung

Ein Auslagerungsbereich (Auslagerungspartition, Auslagerungsdatei oder Auslagerungsdatei genannt) ist nur ein Mechanismus, um den vom Betriebssystem adressierbaren physischen Speicher zu erweitern.

Wenn Sie wenig verfügbaren physischen RAM haben und auf dem heutigen Computer, würde ich sagen, wenn Sie 4 GB oder weniger RAM haben. Dann solltest du wohl tauschen. Dies hängt jedoch von Ihrer Arbeitsbelastung und der Verwendung Ihrer Maschine ab.

Wenn Sie über mehr als 4 GB RAM verfügen, besteht eine gute Chance, dass Ihr System den Swap möglicherweise nie verwendet. Wenn also der Swap aktiviert ist oder nicht, ändert sich nicht viel.
Obwohl dies von anderen Faktoren abhängt, je länger Ihr Computer läuft, desto wahrscheinlicher wird das Betriebssystem einen kleinen ungenutzten Teil des RAM in den Swap verschieben, obwohl anscheinend noch viel Platz übrig ist. Oft verwendet das System jedoch den "freien" RAM für Dateipuffer und andere Dinge, und einige Arbeitslasten können dazu führen, dass Ihr Dateipuffer den gesamten verfügbaren RAM verwendet.

Hintergrundinformation

Was würde passieren, wenn Sie den Swap deaktivieren und Ihr Speicher vollständig belegt ist? Nun, wenn eine Anwendung das nächste Mal mehr Speicher anfordert (wie mit malloc oder realloc), erhält sie einen Fehler! Wenn es richtig codiert ist, wird die Anwendung es erkennen, aber einen solchen Fehler zu behandeln und das Programm ordnungsgemäß zu beenden, könnte immer noch eine Herausforderung sein! Viele Entwickler testen jedoch nicht auf erfolgreiche Speicherzuweisung und oft stürzt die Anwendung ab, sobald dieser nicht zugewiesene Speicher verwendet wird. Es besteht also eine hohe Wahrscheinlichkeit, dass die Anwendung abstürzt, und tatsächlich werden so viele Anwendungen abstürzen, weil normalerweise mehr als eine Anwendung gleichzeitig ausgeführt wird. Hoffentlich sollte der Kernel selbst immun sein, aber meiner Erfahrung nach war das nicht immer der Fall.

Wenn Sie Swap haben, haben Sie das gleiche Verhalten , aber Sie haben ein höheres Limit, so dass Sie dieses Limit wahrscheinlich nicht erreichen werden.

Ich habe persönlich 2 Maschinen mit 8 und 16 GB RAM. Meine persönliche Nutzung dieser Maschinen sollte mich niemals dazu bringen, all diesen Arbeitsspeicher zu verwenden (heute! vielleicht in ein paar Jahren könnte das anders sein). Der einzige Grund, warum ich die physischen RAM-Grenzen erreichen würde, ist, dass ein Prozess abtrünnig wurde und den gesamten RAM verbraucht. Kein Swap zu haben, ist eine Erleichterung, der Kernel wird den Rogue-Prozess sofort beenden, sobald er die RAM-Grenze erreicht. Wenn Sie Swap haben, werden Sie eine schmerzhafte Erfahrung machen (vielleicht nicht auf SSD ...), da Ihr System tauscht und tauscht und tauscht und manchmal völlig nicht mehr reagiert, bis hoffentlich Ihr Kernel den Übeltäter tötet!

Berät

Sie sollten keine Angst davor haben, dass Leute Ihnen sagen, dass etwas schreckliches passieren könnte, wenn Sie Swap entfernen. Wenn Sie dies tun, wird Ihr physischer Adressraum reduziert, ähnlich wie wenn Sie von 4 GB RAM auf 2 GB wechseln würden. Würdest du so etwas tun? Dann sollten Sie den Swap nicht entfernen. Sie können sich jedoch entscheiden, es zu begrenzen, und das wäre klug .

Wenn man glaubt, dass seine Arbeitslast dazu führen könnte, dass er fast oder mehr als den verfügbaren physischen RAM verwendet, oder wenn man viel I/O (Lesen/Schreiben auf Festplatten) benötigt, sollte Swap beibehalten werden.

Wenn Swap beibehalten werden soll, sollte ein Benutzer versuchen, die Menge an Speicher zu begrenzen, die ein Prozess verwenden kann. Auf einem Linux-System könnte man cgroups-Speichergrenzen verwenden, um zu vermeiden, dass ein Prozess außer Kontrolle gerät, ich kenne das Äquivalent auf OS X nicht, aber das sollte der Weg sein.

Wenn jedoch jemand mehr als genug verfügbaren Arbeitsspeicher für seine Arbeitslast hat, kann er Swap sicher deaktivieren oder ihn behalten. Auch in Bezug auf die Leistung wird sich nicht viel ändern, denn wenn das System den Swap nicht verwendet, werden Sie nicht von einem Leistungsabfall betroffen (besonders sichtbar bei einer alten Rotationsfestplatte, weniger bei SSD).

Die Verwendung des gleichen Tricks wie oben, um zu versuchen, Speichergrenzen pro Prozess oder Gruppe von Prozessen festzulegen, ist auch im Fall von mehr als genug verfügbarem RAM von Vorteil.

Mein eigenes Beispiel

Ich habe einen alten PC mit 1 GB RAM, dort habe ich einen großen Swap: 4 GB, damit ich Firefox und andere Anwendungen darauf ausführen kann. Ich neige jedoch dazu, so wenig Anwendung (oder Registerkarten in Firefox) wie möglich zu verwenden, um eine korrekte Benutzererfahrung zu haben.

Ich habe einen kleinen Server mit 8 GB RAM. Dort kenne ich meine Arbeitslast genau und möchte nicht, dass mein Server langsamer wird, weil ein Prozess abtrünnig wird und den gesamten Speicher verbraucht. Dort habe ich keine Swap- und Cgroup-Speicherbegrenzung, die eine Barriere erzwingt, sodass Anwendungen oder Dienste abstürzen können, aber nicht der Kernel. Übrigens, das ist eine Linux-Maschine.

Dann habe ich meinen Mac mit 16 GB RAM. Ich bin nicht der einzige Benutzer davon, und wir hätten nichts dagegen zu warten, wenn wir den Benutzer wechseln. Da haben wir Swap, es ist schwierig für mich, die Arbeitsbelastung anderer Benutzer dieses Computers zu planen. Selbst wenn ich der einzige wäre, würde ich Swap verwenden. Ich führe oft mehrere VMs aus und verwende speicherintensive Anwendungen, aber nicht alle gleichzeitig, daher würde es mir nichts ausmachen, wenn das Betriebssystem in einer nicht verwendeten App ausgetauscht wird, damit ich schnellere Festplatten-E/A erhalten oder eine weitere VM starten kann. Obwohl ich diese Maschine bis jetzt noch nicht tauschen gesehen habe!

Ich habe gerade die Auslagerungsdatei auf meinem Macbook Air 2011 (4 GB RAM, 128 GB SSD) deaktiviert, weil ich es satt hatte, dass die Auslagerungsdatei langsam meinen gesamten verbleibenden HD-Speicherplatz auffrisst und dann neu starten musste. Auf diese Weise ist die Idee, dass ich einfach weniger Programme ausführen werde.

Ich werde sehen, ob das wirklich funktioniert, oder ob ich sowieso neu starten muss, um den "Wired"-Speicher zu löschen, aber im Moment scheint es gut zu funktionieren. Das eine Mal, als der Speicher wirklich voll war, verlangsamte sich der Computer genauso stark wie wenn meiner SSD der Speicher ausgeht - aber er erholte sich viel schneller, sobald ich Anwendungen beendete. (Und ich konnte tatsächlich Anwendungen beenden, was ich normalerweise nicht bin, wenn die SSD voll ist).

Ich werde sehen, wie es in Bezug auf die Stabilität läuft, aber bisher bin ich ein glücklicher Camper. Es zwingt mich auch, weniger Anwendungen (und Chrome-Tabs) gleichzeitig auszuführen, was für die Konzentration auf Aufgaben gut ist.

Einige sagen: Das Deaktivieren von Swap verbessert die Leistung .

Das ist wahr. Jede Verwendung von virtuellem Speicher ist eine große Verlangsamung – selbst eine schnelle SSD ist tausendmal langsamer als DRAM ; eine Festplatte mehr wie eine Million Mal langsamer. Sie benötigen nur einen kleinen Bruchteil der Speicherzugriffe, um in den Swap zu gehen, um einen großen Unterschied in der Laufzeit zu machen. Wenn zB 0,1% der Zugriffe auf deine schnelle SSD gehen, halbiert das theoretisch deine Geschwindigkeit. Multitasking verbirgt dies jedoch – während Sie auf Ihr Wechselgerät warten, kann die CPU mit etwas anderem beschäftigt sein. Solange Sie also über ein angemessenes Maß an Multitasking verfügen, damit etwas betriebsbereit ist, wenn Sie einen Seitenfehler haben, ist der Leistungsverlust nicht so extrem. Zu viel Zeug mit hohen Speicheranforderungen, das gleichzeitig ausgeführt wird, führt zu Thrashing : Swap-Aktivität dominiert die Leistung.

Aber: ohne Swap, wenn Ihnen der physische Speicher ausgeht, ist das wie gegen eine Wand zu laufen. Möglicherweise können Sie schneller sprinten, wenn Sie Ihr Gewicht etwas reduzieren, indem Sie keine Brille tragen; Die Logik wird nicht besser, wenn Sie eine wirklich schwere Brille haben ...