Warum sollte ich die Auslagerungsdatei in Mac OS X deaktivieren?

51

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?

Dan
quelle
11
Es ist oft von den weniger sachkundigen deaktiviert, weil sie auf 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. Mach das nicht. Dies verringert die Stabilität und führt im Laufe der Zeit zu katastrophalen Auswirkungen. Bis heute habe ich keine realen Daten (gültig und zuverlässig) gesehen, die eine Leistungssteigerung belegen. Und es ist eine wichtige Komponente eines Betriebssystems, ob Sie 2 GB oder RAM oder 120 haben.
2
Welche katastrophalen Folgen? 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 einige Sekunden zuvor gedauert hat. Und ich konnte doppelt so viele Apps öffnen, wie ich normalerweise verwenden würde, und es passierte nichts Schlimmes.
Orange80
4
orange80: Die übliche Ursache für langsame Terminalfenster ist der Anmeldevorgang, bei dem die vorherige Anmeldung nachgeschlagen wird. Dies kann durch hushlogin behoben werden: apple.stackexchange.com/a/54167/22570 - Wurde der Computer nach einer Änderung der Swap-Einstellungen möglicherweise neu gestartet ? ? Es gibt keinen Grund, warum die Geschwindigkeit des Terminalfensters durch Entfernen von Swap verbessert werden könnte.
Ken
Ich verstehe, dass Sie mit einer SSD mit geringer Kapazität möglicherweise Speicherplatz freigeben möchten. Was die Leistung angeht, sind SSDs viel schneller als HDs. Daher kann ich nicht erkennen, wie die Leistung durch Deaktivieren des Austauschs in einem SSD-basierten Betriebssystem tatsächlich verbessert wird. Irgendeine Erfahrung dazu? Vielen Dank.
1
In Super User mit einer akzeptierten Antwort: Deaktivieren Sie den dynamic_pager von Mac? (2012-04-27)
Graham Perrin

Antworten:

39

frage mich, warum man die Auslagerungsdatei in Mac OS X deaktivieren möchte. Steigert sie die Leistung? Stabilität? Irgendwelche Nachteile?

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.

Ist es schließlich sinnvoll, die Auslagerungsdatei zu deaktivieren, wenn Sie keine SSD verwenden?

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.

Ghoppe
quelle
4
Das virtuelle Speichersystem des Mac ist insofern sehr faul, als es die physischen Auslagerungsdateien nur dann erstellt, wenn es Zeit ist, den tatsächlichen Speicher auszulagern. Was auch immer Sie sehen, wenn Sie die Dinge nicht verzögern müssen, um ein Write-to-Swap-Verfahren durchzuführen, wird dies mit ziemlicher Sicherheit durch die vorherigen Geschwindigkeitsgewinne ausgeglichen, die durch die Verfügbarkeit des Swap-Verfahrens erzielt wurden. Ein Swap macht Macs schneller. Der Rest der Antwort ist genau richtig - gut gemacht!
bmike
2
@geotavros Das virtuelle Speichersystem unter Mac OS X funktioniert nicht wie Windows. Vertrauen Sie mir, mit 4 GB Arbeitsspeicher arbeitet Ihr Mac mit aktiviertem virtuellem Arbeitsspeicher schneller. Das Deaktivieren von VM verursacht nur Kopfschmerzen und Systeminstabilität.
Ghoppe
3
FYI, eine moderne SSD mit Write-Leveling und einer anständigen Kapazität (128 GB), die kontinuierlich beschrieben wird, hat eine in Jahrhunderten gemessene Schreibzyklusgrenze. Das war im Jahr 2000 mit kleinen, primitiven SSDs eine vernünftige Angst, aber nicht mehr.
Ken
3
Bei einem MacBookPro5,2 mit 8 GB Arbeitsspeicher ist die Leistungsverbesserung 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 nutzen, dass das Risiko des Erreichens des Grenzwerts (an dem alle Dinge effektiv zum Erliegen kommen) minimiert wird. Daher ist es vernünftig, die Verwendung in Activity Monitor zu beobachten.
Graham Perrin
2
Zur Information: VM (oder virtueller Speicher) sollte nicht mit Auslagerungsdatei verwechselt werden. Windows, OS X, * BSD, Linux und viele Unix-Betriebssysteme verwenden alle virtuellen Speicher. Normalerweise gibt die Architektur dieses Betriebssystems eine VM pro Prozess, den zugewiesenen Arbeitsspeicher innerhalb dieses Bereichs und das Betriebssystem achtet darauf, diesen zugewiesenen Arbeitsspeicher in den physischen Arbeitsspeicher zu stellen oder zu tauschen, wie es das Betriebssystem für erforderlich hält. Das Haben oder Nicht-Tauschen kann sich auf die eine oder andere Art und Weise für verschiedene Kriterien (Geschwindigkeit, Reaktionsfähigkeit usw.) ändern. Dies hängt von der jeweiligen Arbeitsbelastung ab. Wie die Engländer sagen: Ihre Laufleistung kann variieren! Und sehr in diesem Fall.
Huygens
27

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.

CajunLuke
quelle
6
Ich würde gerne wiederholen, was für eine schlechte Idee das ist. Swap wird auch verwendet, wenn Sie 16 GB RAM haben. Nicht so viel, aber ein winziger Teil ist bereits in Swap geschrieben. Immer. Es ist ein Schutz. Auch wenn das Betriebssystem möglicherweise ohne das Betriebssystem ausgeführt wird, können Sie nicht sicher sein, wie sich Apps von Drittanbietern verhalten. HD bekommen geschrieben. Es ist eine Tatsache, wenn das Leben. Und nein, es wird keine Leistungssteigerung in der "realen Welt" geben. Das ist ein Placebo.
4
@cksum In einigen bestimmten Serverszenarien wird die Auslagerungsdatei von sysadmins deaktiviert, da diese bestimmte Konfiguration dadurch beschleunigt wird. Dies geschieht jedoch nicht, ohne zu testen, ob sowohl (a) nicht der Arbeitsspeicher ausgeht, als auch (b) ) es ist tatsächlich schneller. Aber das ist ein Server, der von Profis betrieben wird: Auf einem Consumer-Computer ist er nie erforderlich.
CajunLuke
@cksum Ich könnte deinem ersten Satz zustimmen, du bist richtig mit dem zweiten, dritten und vierten, aber da ist Rest Quatsch. Ein Betriebssystem tauscht nicht gegen "Schutz" aus, ein Betriebssystem tauscht aus, um dem aktiven Prozess mehr Speicherplatz zur Verfügung zu stellen, der dies erfordern würde, oder um die E / A durch Puffern von Daten zu beschleunigen, sodass lange nicht aktiver Speicher im RAM freigegeben werden kann. Wenn Sie eine Anwendung entwickeln, fordern Sie Speicher an 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 Arbeitsspeicher gestellt oder ausgetauscht hat. (Fortsetzung
Huygens
Wenn also eine Drittanbieter-App mehr Speicher anfordert, als verfügbar ist, gibt das Betriebssystem einen Fehler aus. Dies ist unabhängig von Swap oder nicht. Ein Swap setzt nur das Limit höher, das ist es. Wenn zwei Benutzer angemeldet sind und der aktive Benutzer einen Videoeditor mit großen Dateien verwendet, wird das Betriebssystem möglicherweise Speicherseiten des inaktiven Benutzers in den Swap verschieben, um die vom aktiven Benutzer ausgeführten Aufgaben zu beschleunigen. In diesem Fall erhalten Sie eine bessere Leistung in Bezug auf die Geschwindigkeit. Das Wechseln zum anderen Benutzer ist jedoch langsamer, das Betriebssystem muss den Swap zurücklesen. Dies ist kein Placebo!
Huygens
1
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 beim Spielen von Mincecraft an Swap-Speicher mangelte. Verwenden Sie Swap.
Wyatt8740
12

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.

bmike
quelle
2
Ich finde das Gegenteil, eine große Beschleunigung , wenn dynamic_pager ist deaktiviert . Der Screenshot unter apple.stackexchange.com/a/60661/8546 zeigt die Größe des virtuellen Speichers und die Page Ins, die bei deaktiviertem Daemon gemessen wurden (während Swap-Dateien nicht verwendet werden).
Graham Perrin
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 einfach zu quantifizieren oder zu
messen ist
Ohne zu messen: Mit Lion wirkten die meisten Dinge merklich schneller - genug, um das Wort „ riesig“ zu verwenden . In jüngerer Zeit: 10.8 in einer VirtualBoxVM zum Beispiel, um sich anzumelden und den Aktivitätsmonitor fortzusetzen, dauert 16 Sekunden mit dynamic_pagerund 12 Sekunden ohne. Für einen breiteren und genaueren Vergleich könnten wir Phoronix Test Suite oder Geekbench verwenden .
Graham Perrin
9

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.

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

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.

Shlepto
quelle
Memory Scope verfügt über eine Option zum automatischen Löschen. (Wenn dynamic_pager aktiviert ist, lasse ich keine Säuberungen zu.)
Graham Perrin
5

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:

 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 Schlafbild, um SSD / HDD-Speicherplatz freizugeben:

 sudo rm -rf /var/vm/sleepimage

Quelle: man pmset

user38390
quelle
3

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.

Konstantin
quelle
3

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

OpenSourCeame
quelle
5
Welches Memory Tool benutzt du?
Dmitriy
1

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:

  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 genügend physischer RAM vorhanden ist.
Reich
quelle
1
Wenn Swap Space NUR bei Bedarf verwendet würde, wäre es großartig. Dies ist jedoch nicht der Fall. Ich verwende virtuelle Maschinen mit 2 GB und 4 GB auf meinem MacOS. Wenn ich 1,6 GB freien Arbeitsspeicher habe, sollte ich in der Lage sein, eine virtuelle Maschine mit 1 GB (oder ein anderes Programm) auszuführen, kann dies jedoch nicht, da das Betriebssystem mit dem Auslagern beginnt. Infolgedessen kann ich nur etwa 85-90% meines Arbeitsspeichers verwenden. Wenn ich auf ALLEN RAM zugreifen möchte, muss ich das Paging deaktivieren. Ich mache das auf allen meinen Windows-Rechnern und möchte es auch auf meinem MacOS tun. Wenn einem Programm der Arbeitsspeicher ausgeht, schlägt dies fehl. Das ist es, was ich passieren möchte. Ich möchte keine anderen, laufenden Anwendungen
3
YMMV. Ich deaktiviere Swap nicht mehr, da ich es nicht gefunden habe, um die Leistung auf modernen, RAM-geladenen Maschinen zu verbessern. Früher habe ich das so gemacht, wie es in den schlechten alten Zeiten geholfen hat. Heutzutage sehe ich nicht nur KEINE Leistungsänderung durch Deaktivieren von Swap, sondern auch eine stark erhöhte Anwendungsinstabilität.
Brian Knoblauch
1
Die unerwünschte , was wird passieren , ist , dass ein Mensch wird vergessen , dass sie nicht ein anderes Programm und rechtzeitig starten kann, wird die Maschine aufgrund eines niedrigen Speicherfehler zum Absturz bringen. Ob dies schrecklich, humorvoll oder lehrreich ist, hängt vom Zeitpunkt, Ihrer Sicherungshäufigkeit und der Toleranz für Verzögerungen ab.
bmike
1

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 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.

Shane Hsu
quelle
1
Ich persönlich habe den virtuellen Speicher meines Retina MacBook Pro mit nur 8 GB deaktiviert. Hier ist die Mathematik, das System verwendet etwa 2 GB Speicher mit integrierten Grafiken. Das sind also 6 GB für mich. Ich mache Xcode für die Arbeit, das verbraucht nicht mehr als 2 GB Speicher. Ich habe also viel zu sparen.
Shane Hsu
1

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!

Huygens
quelle
0

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.

Josh Penman
quelle
0

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).

Aramis
quelle
Das klingt eher so, als würde die Hupe repariert, weil die Bremsen nicht funktionieren. Wenn das Laufwerk zu voll ist, entfernen Sie einige Daten.
Tetsujin,
@ Tetsujin Die größte einzelne Datei auf diesem Laufwerk war die Auslagerungsdatei.
Aramis
Mein Standpunkt steht noch. Weniger Daten, größeres Laufwerk oder mehr RAM - das müsste nicht sein.
Tetsujin