Ja.
Auf jeden Fall sollte Swap immer aktiviert sein, es sei denn, es gibt einen sehr zwingenden, verbotenen Grund (z. B. keine Festplatte oder nur Netzwerkfestplatte vorhanden). Sollten Sie einen Swap in der Größenordnung der oft empfohlenen lächerlichen Größen haben (z. B. das Doppelte des Arbeitsspeichers)? Nun, nein .
Der Grund dafür ist, dass Swap nicht nur nützlich ist, wenn Ihre Anwendungen mehr Speicher belegen als es physischen RAM gibt (in diesem Fall ist Swap überhaupt nicht sehr nützlich, da es die Leistung ernsthaft beeinträchtigt). Der Hauptanreiz für den Austausch besteht heutzutage nicht darin , 16 GB RAM auf magische Weise in 32 GB RAM umzuwandeln, sondern den installierten, verfügbaren RAM effizienter zu nutzen.
Auf einem modernen Computer bleibt der Arbeitsspeicher nicht ungenutzt. Nicht genutzter Arbeitsspeicher ist etwas, das Sie genauso gut nicht kaufen und stattdessen sparen könnten. Daher wird alles zwischengespeichert, was Sie laden oder was auf andere Weise im Speicher abgelegt ist. Alles, was möglicherweise später von irgendjemandem wiederverwendet werden könnte (eingeschränkt durch Sicherheitsbeschränkungen). Sehr bald , nachdem die Maschine gestartet ist, alle physischen RAM wird seit verwendet etwas .
Wenn Sie vom Betriebssystem eine neue Speicherseite anfordern, muss der Speichermanager eine fundierte Entscheidung treffen:
- Bereinigen Sie eine Seite aus dem Puffercache
- Bereinigen einer Seite aus einer Zuordnung (auf den meisten Systemen identisch mit # 1)
- Verschieben Sie eine Seite, auf die lange Zeit nicht mehr zugegriffen wurde - vorzugsweise nie -, um sie auszutauschen (dies kann sogar proaktiv geschehen, nicht unbedingt im allerletzten Moment).
- Beenden Sie Ihren Prozess oder einen zufälligen Prozess (OOM)
- Kernel Panik
Die Optionen 4 und 5 sind sehr unerwünscht und treten nur auf, wenn das Betriebssystem überhaupt keine andere Wahl hat. Die Optionen 1 und 2 bedeuten, dass Sie etwas wegwerfen, das Sie möglicherweise bald wieder benötigen werden. Dies wirkt sich negativ auf die Leistung aus.
Option 3 bedeutet, dass Sie etwas, das Sie (wahrscheinlich) nicht so schnell benötigen, in einen langsamen Speicher verschieben. Das ist in Ordnung, da jetzt etwas, das Sie brauchen , den schnellen Arbeitsspeicher verwenden kann.
Durch Entfernen von Option 3 haben Sie das Betriebssystem effektiv auf die Schritte 1 oder 2 beschränkt. Das erneute Laden einer Seite von der Festplatte ist dasselbe wie das erneute Laden von der Auslagerung, mit der Ausnahme, dass das erneute Laden von der Auslagerung in der Regel weniger wahrscheinlich ist (aufgrund der richtigen Paging-Entscheidungen).
Mit anderen Worten, durch Deaktivieren von Swap erhalten Sie nichts, aber Sie begrenzen die Anzahl der nützlichen Optionen des Betriebssystems für die Verarbeitung einer Speicheranforderung. , Die vielleicht nicht , aber sehr wahrscheinlich sein kann , einen Nachteil (und nie von Vorteil).
[BEARBEITEN]
Der aufmerksame Leser der mmap
Manpage , insbesondere der Beschreibung von MAP_NORESERVE
, wird einen weiteren guten Grund bemerken, warum Swap auch auf einem System mit "genügend" physischem Speicher eine Notwendigkeit darstellt:
Msgstr "Wenn der Auslagerungsspeicher nicht reserviert ist, kann beim Schreiben SIGSEGV auftreten, wenn kein physischer Speicher verfügbar ist."
- Warten Sie einen Moment, was bedeutet das?
Wenn Sie eine Datei zuordnen, können Sie direkt auf den Inhalt der Datei zugreifen, als befände sich die Datei auf magische Weise im Adressraum Ihres Programms. Für den Nur-Lese-Zugriff benötigt das Betriebssystem im Prinzip nicht mehr als eine einzige Seite des physischen Speichers, die es bei jedem Zugriff auf eine andere virtuelle Seite mit unterschiedlichen Daten auffüllen kann (aus Effizienzgründen ist dies natürlich nicht der Fall, aber Im Prinzip können Sie mit einer einzigen Seite physischen Speichers auf Daten im Wert von Terabyte zugreifen. Was ist, wenn Sie auchin eine dateizuordnung schreiben? In diesem Fall muss das Betriebssystem für jede Seite, auf die geschrieben wird, über eine physische Seite oder einen Auslagerungsspeicher verfügen. Es gibt keine andere Möglichkeit, die Daten zu speichern, bis der Rückschreibevorgang für schmutzige Seiten abgeschlossen ist (dies kann mehrere Sekunden dauern). Aus diesem Grund reserviert das Betriebssystem Swap-Speicherplatz (legt diesen jedoch nicht unbedingt fest). Falls Sie also in eine Zuordnung schreiben, während zufällig keine physische Seite ungenutzt ist (dies ist durchaus möglich und unter normalen Umständen der Fall), müssen Sie Folgendes tun: Wir garantieren, dass es immer noch funktioniert.
Was ist nun, wenn es keinen Swap gibt? Dies bedeutet, dass kein Swap reserviert werden kann (duh!), Und dies bedeutet, dass Sie eine angenehme Überraschung in Form des Empfangs Ihres Prozesses erhalten, sobald keine freien physischen Seiten mehr vorhanden sind und Sie auf eine Seite schreiben ein Segmentierungsfehler, und wahrscheinlich getötet.
[/BEARBEITEN]
Die traditionelle Empfehlung, Swap doppelt so groß wie RAM zu machen, ist jedoch unsinnig. Obwohl der Speicherplatz billig ist, ist es nicht sinnvoll, so viel Swap zuzuweisen. Etwas zu verschwenden, das billig ist, ist immer noch verschwenderisch, und Sie möchten auf keinen Fall ständig Arbeitssets mit einer Größe von mehreren Hundert Megabyte (oder mehr) austauschen.
Es gibt keine einzige "richtige" Swap-Größe (es gibt so viele "richtige" Größen wie Benutzer und Meinungen). Ich weise normalerweise feste 512 MB zu, unabhängig von der RAM-Größe, was für mich sehr gut funktioniert. Die Argumentation dahinter ist, dass man sich 512 MB heutzutage immer leisten kann, selbst auf einer kleinen Festplatte. Auf der anderen Seite ist es nicht besser, mehrere Gigabyte Swap hinzuzufügen. Sie werden sie nicht verwenden, es sei denn, etwas läuft ernsthaft schief.
Selbst auf einer SSD ist der Austausch um Größenordnungen langsamer als der Arbeitsspeicher (aufgrund der Busbandbreite und der Latenz), und es ist durchaus akzeptabel , etwas zu verschieben, das wahrscheinlich nicht mehr benötigt wird (dh Sie werden es höchstwahrscheinlich nicht mehr benötigen) Wenn Sie es erneut einlagern, so dass Ihr Pool verfügbarer Seiten effektiv kostenlos erweitert wird, sind Sie ziemlich verloren , wenn Sie wirklich viel Swap benötigen (das heißt, Sie haben eine Anwendung, die z. B. einen 50-GB-Datensatz verwendet).
Sobald Ihr Computer beginnt, Seiten im Wert von Gigabyte ein- und auszutauschen, wird alles durchsucht. Für die meisten Leute (einschließlich mir) ist dies keine Option, und so viel Swap zu haben macht daher keinen Sinn.