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. Steigert
sie die Leistung? Stabilität?
Irgendwelche Nachteile?
Ist es schließlich sinnvoll, die Auslagerungsdatei zu deaktivieren, wenn Sie keine SSD verwenden?
Antworten:
Ich nehme an, die Leute würden dies für ein SSD-Laufwerk tun, da diese Laufwerke nicht die gleiche Lebensdauer haben wie Standard-Magnetlaufwerke. Es gibt eine begrenzte Anzahl von Schreibzyklen. Wenn Sie diese also vermutlich mit einer Auslagerungsdatei verwenden, werden diese Zyklen schneller verbraucht.
Wenn Sie über viel RAM verfügen , würde dies möglicherweise die Leistung verbessern, aber im Allgemeinen ist dies keine gute Idee . Wenn Sie an die Speichergrenze stoßen, werden die Dinge schuppig.
Außerdem wird der verkabelte Speicher nicht freigegeben, wenn er ungültig wird. Er wird nur freigegeben, wenn ein Auslagerungsereignis ausgelöst wird, was nicht der Fall ist, wenn der virtuelle Speicher deaktiviert ist. Es wird also nicht lange dauern, bis Ihr gesamtes Gedächtnis aufgebraucht ist, auch wenn es nicht mehr verwendet wird.
quelle
Der Grund, warum sie die Auslagerungsdatei deaktiviert haben, ist wahrscheinlich Paranoia über SSDs mit einer maximalen Anzahl von Schreibvorgängen pro Block. In Swap-Dateien kann häufig geschrieben werden, was möglicherweise zu einer Fragmentierung des Datenträgers (sowie zu einer Fragmentierung des Dateisystems) und möglicherweise zu einem schnelleren Ausfall des Datenträgers führen kann.
Dies ist jedoch definitiv ein Fall vorzeitiger Optimierung. Es ist fast immer eine SCHRECKLICHE , SCHRECKLICHE Idee, Ihre Auslagerungsdatei zu deaktivieren. Die Auslagerungsdatei dient dazu, wenn Ihre laufenden Programme mehr Speicher belegen als Sie physisch installiert haben. Wenn Sie es deaktivieren, können Sie möglicherweise nicht so viele Programme gleichzeitig ausführen (und das Limit liegt weit unter dem erwarteten Wert), oder Sie haben möglicherweise Probleme (z. B. Einfrieren und Neustarten des Computers), wenn Ihnen geht der Speicher aus.
Letzteres habe ich erlebt (mit aktivierter Auslagerungsdatei), als nicht mehr genügend Speicherplatz vorhanden war. Ich hatte eine 120-Gig-Fahrt mit ~ 3 Gigs frei. Während des Spiels Civilization IV (ein großes Vollbild-Spiel) war auf der Festplatte kein Speicherplatz mehr verfügbar (~ 50 Megabyte frei), und es wurde das Fenster "Apps jetzt töten" angezeigt. Dies versteckte sich hinter dem Vollbild-Spiel, so dass das System einfach abstürzte. Wenn ich nicht in der Lage gewesen wäre, von einem anderen Mac aus zu sshen, um mehrere Apps aus der Ferne zu beenden, hätte ich den Ein- / Ausschalter gedrückt halten müssen.
quelle
Sie haben zwei gute 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 CD, DVD, gesperrtem Netzwerk-Image mit NetBoot oder einem schreibgeschützten USB-Schlüsselanhänger wie dem neuen Lion-Installationsprogramm oder einem Wiederherstellungs-Schlüsselanhänger ausgeführt werden kann, der mit einigen Macs geliefert wird, denen optische Komponenten fehlen fährt.
Durch den virtuellen Speicher kann das System wesentlich schneller ausgeführt werden und weniger RAM verbrauchen, wenn viele Programme denselben gemeinsamen Bibliothekscode verwenden. Jedes Programm glaubt , über eine private Kopie des gesamten benötigten Codes zu verfügen. Wenn jedoch virtueller Speicher vorhanden ist, bietet das System eine gute Möglichkeit, den gleichen physischen RAM verschiedenen Programmen zuzuordnen.
Das Deaktivieren von Swap verhindert, dass der Mac einen winzigen Teil Ihres Laufwerks als Cache für Speicher verwendet, der berechnet wurde, aber das Programm war nicht schlau genug, um diese Ergebnisse selbst in einen geeigneten Cache zu schreiben.
Wenn Sie ein Backup haben und Zeit zum Experimentieren haben, schalten Sie es aus und sehen Sie, wie sich Ihre Erfahrung ändert.
Ich würde meinen Tausch behalten, auch wenn ich sicher wüsste, dass ich jedes Jahr für ein neues Laufwerk bezahlen muss. Die Geschwindigkeit, die mir der Tausch bringt, ist RIESIG. Dies ist nicht immer der Fall, und manchmal, wenn das System überlastet oder ausgelagert wird, kann das Gegenteil der Fall sein. Viele Leute entscheiden sich für die Ausführung ohne Swap, damit sie einen Speicherzuweisungsfehler erhalten, anstatt ihren Mac mit dem Paging zu beginnen, da dies eine Maschine verlangsamen kann, wenn die Dinge nicht reibungslos laufen.
Ihr Fall mit einer SSD könnte anders sein, lassen Sie es uns wissen, wenn Sie es versuchen.
quelle
dynamic_pager
und 12 Sekunden ohne. Für einen breiteren und genaueren Vergleich könnten wir Phoronix Test Suite oder Geekbench verwenden .Ich bin hier der Neinsager: Ich habe den Tausch meines Unibody MacBook Pro Ende 2008 deaktiviert und die Leistung merklich verbessert: Weniger Wartezeiten, schnelleres Wechseln zwischen Anwendungen.
Wohlgemerkt, ich behalte meinen freien Speicher im Auge und habe 6 GB installiert. Die wenigen Male, die ich das Speicherlimit erreicht habe, ist das System abgestürzt :-D
Auf meinem neuen MacBook Air würde ich nicht davon träumen, Swap zu deaktivieren. Es ist bereits schnell aktiviert und hat zunächst nur 4 GB.
Ein weiterer guter Grund für die Deaktivierung des Austauschs auf einer SSD ist, dass sie winzige SSDs erhalten und den gesamten verfügbaren Speicherplatz benötigen. Mach es auf keinen Fall.
quelle
Meine Erfahrung ist ähnlich wie bei w00t. Ich habe die Auslagerungsdatei auf SL und Lion deaktiviert, weil die Leistungssteigerung für mich funktioniert. Die kabelgebundene Nutzung gerät nach etwa einer Woche außer Kontrolle, aber ein einfacher Neustart behebt dies. Ich habe keine SSD, sondern eine langsame 5400 U / min-Festplatte. Die Lebensdauer von SSDs ist tatsächlich nicht so schlecht, wie die Leute versuchen, sie zu erkennen. 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 bis zu 5 Jahre lang täglich für über 20 GB auf einem 80-GB-Laufwerk. Größere Laufwerke halten noch länger. Der durchschnittliche Benutzer verwendet nicht einmal 10 GB / Tag.
Ich stelle sicher, dass meine 4-GB-Speichernutzung mit iStat-Menüs überwacht wird, und verwende ein Automator-Skript mit dem Bash-Befehl "Bereinigen" (erfordert die Installation von Xcode), um inaktiven Speicher zu löschen und häufig mehr freien Speicher freizugeben. In den wenigen Fällen, in denen Apps mit Speicherverlusten den gesamten Arbeitsspeicher verbrauchen, musste ich einen Hard-Reset durchführen. In den seltenen Fällen und aufgrund der allgemeinen Geschwindigkeit lohnt es sich, die Auslagerungsdatei für mich deaktiviert zu lassen. Mir ist klar, dass ich nicht so viele Apps gleichzeitig öffnen kann, wie von anderen angegeben, aber ich kann damit arbeiten.
quelle
Werfen Sie einfach meine 2 Cent für diejenigen, die den Tausch deaktivieren möchten, WEIL kleine SSDs: Das Schlafbild belegt viel mehr Speicherplatz.
Und für diejenigen, die sich Sorgen über die begrenzte Lebensdauer der SSD machen (insbesondere für diejenigen mit MBAs und festverdrahteten SSD-Chips, die NICHT ersetzt werden können), kann das Umschreiben des Schlafbilds ein Problem sein, wenn Ihr Computer mehrmals am Tag in den Ruhezustand versetzt wird. Mein Laptop schläft leicht ein halbes Dutzend Mal / Tag. Das schreibt täglich 48 GB Daten auf meine SSD.
Die Lösung besteht in jedem Fall darin, den Ruhezustand zu deaktivieren und anschließend die Sleepimage-Datei zu löschen, die so groß ist wie Ihr installierter Arbeitsspeicher (in meinem Fall 8 GB).
Das Abwärtsrisiko: Wenn der Akku im Ruhezustand Ihres Laptops leer ist, geht der aktuelle Status verloren. Dies entspricht einem erzwungenen Neustart. Kein physischer Schaden für den Laptop, nur ein Produktivitätsverlust. Wenn Sie den Ruhezustand deaktivieren, ist der Akku fast leer und kann nicht aufgeladen werden. Halten Sie einfach den Code zum Aktivieren des Ruhezustands bereit!
Um den Ruhezustand zu deaktivieren, lautet der Befehl im Terminal wie folgt:
Um den Ruhezustand zu aktivieren, lautet der Befehl wie folgt:
So löschen Sie das letzte Schlafbild, um SSD / HDD-Speicherplatz freizugeben:
Quelle: man pmset
quelle
Durch Deaktivieren von Swap wird die Leistung erhöht. Zum Beispiel verwende ich regelmäßig Aperture und wenn die Leistung von Swap zunimmt, verschlechtert sich diese und wenn sie über 1 GB hinausgeht, muss ich das Betriebssystem neu starten, um es zu bereinigen und die Leistung wiederherzustellen. Hinweis: Der Computer verfügt über 6 GB RAM und ist NICHT vollständig belegt. Etwa 3 GB sind kostenlos, 1 GB Swap beeinträchtigt jedoch die Leistung erheblich.
quelle
Ich deaktiviere Swap seit vielen Jahren auf Computern, sowohl unter OS X als auch in anderen UNIX-Varianten.
Ich verwende ein Tool, um mich zu benachrichtigen, wenn der Speicher knapp wird, und mache mir keine Sorgen, dass mein System abstürzt.
Mein iMac hat 12 GB und mit deaktiviertem Swap habe ich fast immer 4 GB frei, auch wenn mehrere Entwicklungstools, Apps, Browser usw. geöffnet sind
quelle
Das sich wiederholende Muster ist hier:
Diejenigen, die die Auslagerungsdatei deaktiviert haben, zeigten eine verbesserte Leistung (mit ausreichend physischem RAM).
Diejenigen, die den Swap Space NICHT deaktiviert haben, sind sich sicher, dass er nicht funktioniert und etwas Schreckliches passieren wird, und raten dringend, dies nicht zu tun.
Dies ist einfach auf zwei Dinge zurückzuführen:
quelle
Nur eine persönliche Erfahrung.
Ein kurzer Hinweis: Wenn Ihr Mac integrierte Grafiken verwendet, wird sein Speicher mit kernel_task mit Ihrem Hauptspeicher geteilt. Daher müssen Sie diesen Betrag von Ihrem Gesamtnutzungsbetrag abziehen.
SSD-Benutzer, es ist zufriedenstellend, mehr Speicherplatz zu haben, aber es ist wichtig zu wissen, dass virtueller Speicher auf SSDs gedeiht. Sie können eine ganze Menge an Performance-Gewinn daraus ziehen. Tut es der SSD weh? Ja, aber Sie werden Ihren Mac lange ersetzen, bevor Sie es bemerken.
quelle
Zusammenfassung
Ein Auslagerungsbereich (als Auslagerungspartition, Auslagerungsdatei oder Auslagerungsdatei bezeichnet) ist nur ein Mechanismus zur Erweiterung des vom Betriebssystem adressierbaren physischen Speichers.
Wenn Sie nur noch wenig physischen Arbeitsspeicher zur Verfügung haben und auf dem heutigen Rechner, würde ich sagen, wenn Sie 4 GB oder weniger RAM haben. Dann sollten Sie wahrscheinlich einen Swap haben. Dies hängt jedoch von Ihrer Arbeitsbelastung und der Art und Weise ab, wie Sie Ihre Maschine verwenden.
Wenn Sie mehr als 4 GB RAM haben, besteht eine gute Chance, dass Ihr System den Swap niemals verwendet. Wenn also der Swap aktiviert ist oder nicht, ändert sich nicht viel.
Dies hängt zwar von anderen Faktoren ab, aber je länger Ihr Computer in Betrieb ist, desto wahrscheinlicher wird das Betriebssystem einen kleinen, nicht genutzten Teil des Arbeitsspeichers in den Auslagerungsspeicher auslagern, obwohl anscheinend noch genügend Platz vorhanden ist. Häufig verwendet das System jedoch den "freien" RAM für Dateipuffer und anderes Material, und aufgrund einer gewissen Arbeitslast wird der Dateipuffer möglicherweise den gesamten verfügbaren RAM verwenden.
Hintergrundinformation
Was würde passieren, wenn Sie die Auslagerung deaktivieren und Ihr Speicher vollständig belegt ist? Nun, wenn eine Anwendung das nächste Mal mehr Speicher anfordert (wie bei einem Malloc oder Realloc), wird eine Fehlermeldung ausgegeben! Wenn es richtig codiert ist, wird es von der Anwendung erkannt, aber die ordnungsgemäße Behandlung eines solchen Fehlers und das ordnungsgemäße Beenden des Programms können dennoch eine Herausforderung darstellen! Viele Entwickler testen jedoch nicht, ob die Speicherzuweisung erfolgreich ist, und häufig stürzt die Anwendung ab, sobald dieser nicht zugewiesene Speicher verwendet wird. Daher besteht eine hohe Wahrscheinlichkeit, dass die Anwendung abstürzt, und tatsächlich, dass viele Anwendungen abstürzen, da in der Regel mehrere Anwendungen gleichzeitig ausgeführt werden. Hoffentlich sollte der Kernel selbst immun sein, aber meiner Erfahrung nach war dies nicht immer der Fall.
Wenn Sie Swap haben, haben Sie das gleiche Verhalten , aber Sie haben ein höheres Limit, so dass die Wahrscheinlichkeit besteht, dass Sie dieses Limit nicht erreichen.
Ich habe 2 Maschinen mit 8 und 16 GB RAM. Mein persönlicher Gebrauch dieser Maschine sollte mich niemals dazu bringen, all diesen RAM zu nutzen (heute! Vielleicht in ein paar Jahren könnte das anders sein). Der einzige Grund, warum ich die physischen RAM-Grenzen überschreiten würde, ist, dass ein Prozess nicht mehr funktioniert und den gesamten RAM verbraucht. Kein Swap zu haben ist eine Erleichterung, der Kernel bricht den Rogue-Prozess sofort ab, sobald er das RAM-Limit erreicht. Wenn Sie Swap haben, werden Sie eine schmerzhafte Erfahrung bekommen (vielleicht nicht auf SSD ...), da Ihr System tauschen und tauschen und tauschen wird und manchmal völlig nicht mehr reagiert, bis Ihr Kernel hoffentlich den Täter tötet!
Berät
Sie sollten sich nicht davor fürchten, wenn Ihnen jemand sagt, dass etwas fürchterliches nicht in Ordnung ist, 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ürden Sie so etwas tun? Dann sollten Sie den Swap nicht entfernen. Sie können jedoch entscheiden, es zu begrenzen, und das wäre weise .
Wenn man denkt, dass seine Arbeitslast ihn dazu bringen könnte, mehr oder weniger als den verfügbaren physischen RAM zu nutzen, oder wenn man viel E / A benötigt (Lesen / Schreiben auf Datenträger), sollte Swap beibehalten werden.
Wenn Swap beibehalten werden soll, sollte ein Benutzer versuchen, die Speicherkapazität, die ein Prozess verwenden kann, zu begrenzen. Auf einem Linux-System könnte man cgroups-Speicherlimits verwenden, um zu vermeiden, dass ein Prozess außer Kontrolle gerät. Ich kenne das Äquivalent unter OS X nicht, aber das sollte so sein.
Wenn jedoch mehr als genug Speicher für seine Arbeitslast verfügbar ist, kann er Swap sicher deaktivieren oder beibehalten. Auch in Bezug auf die Leistung ändert sich nicht viel, denn wenn das System den Swap nicht verwendet, wird kein Leistungseinbruch festgestellt (besonders auf einer alten Rotationsfestplatte, weniger auf einer SSD).
Die Verwendung des gleichen Tricks wie oben, um zu versuchen, Speicherbeschränkungen pro Prozess oder Gruppe von Prozessen festzulegen, ist auch im Fall von mehr als genügend 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 dazu, so wenig Anwendungen (oder Tabs in Firefox) wie möglich zu verwenden, um eine korrekte Benutzererfahrung zu erzielen.
Ich habe einen kleinen Server mit 8 GB RAM. Dort kenne ich meine Arbeitslast genau und möchte nicht, dass mein Server langsamer wird, da ein Prozess nicht mehr funktioniert und den gesamten Speicher belegt. Dort habe ich kein Swap- und Cgroup-Speicherlimit, wodurch Anwendungen oder Dienste abstürzen können, aber nicht der Kernel. Übrigens ist dies eine Linux-Maschine.
Dann habe ich meinen Mac mit 16 GB RAM. Ich bin nicht der einzige Benutzer, und es würde uns nichts ausmachen, beim Benutzerwechsel zu warten. Da wir Swap haben, ist es für mich schwierig, die Arbeitsauslastung 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-Vorgänge ausführen oder eine weitere VM starten kann. Bisher habe ich noch keinen Maschinenwechsel gesehen!
quelle
Ich habe die Auslagerungsdatei auf meinem 2011 Macbook Air (4 GB RAM, 128 GB SSD) gerade deaktiviert, weil ich es satt hatte, dass die Auslagerungsdatei meinen gesamten verbleibenden Festplattenspeicherplatz langsam aufzehrt und dann neu gestartet werden muss. Auf diese Weise ist die Idee, dass ich nur weniger Programme ausführen werde.
Ich werde sehen, ob das wirklich funktioniert oder ob ich trotzdem neu starten muss, um den "Wired" -Speicher zu löschen, aber im Moment scheint es gut zu funktionieren. Als der Speicher einmal wirklich voll war, verlangsamte sich der Computer genau so sehr, wie wenn meine SSD keinen Speicher mehr hat - 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 stabil läuft, aber bisher bin ich ein glücklicher Camper. Außerdem bin ich gezwungen, weniger Anwendungen (und Chrome-Registerkarten) gleichzeitig auszuführen, was für den Aufgabenfokus gut ist.
quelle
Der Hauptgrund für die Deaktivierung der Auslagerungsdatei ist nicht die Geschwindigkeit, sondern der Speicherplatz.
Wenn ein Benutzer routinemäßig innerhalb von 5 GB eines vollständigen Laufwerks ausgeführt wird, wird durch Deaktivieren von Swap das ständige Nörgeln von Speicherplatzmangel gestoppt. Ich ende routinemäßig mit einem 4+ GB Swapfile vom Routine-Browsing.
Die Geschwindigkeitsverbesserung ist bei älteren Maschinen erstaunlich; Auf modernen Maschinen mit SSD-Ausstattung ist das nicht besonders beeindruckend. (Unter OSX 10.0 auf einem iMac halbierte die Verwendung von virtuellem Speicher die Geschwindigkeit vieler Vorgänge, einschließlich des Kopierens von Dateien zwischen Laufwerken).
quelle