
Mein Debian-Stretch-System hat viel RAM. Derzeit verwendet es eine verschlüsselte Swap-Partition auf der SSD, aber unter normalen Umständen erwarte ich nicht, dass diese aufgrund von Speichermangel jemals verwendet wird.
Aber den Kommentaren von Snakedoc zufolge ist es keine gute Idee, den Swap-Speicher vollständig abzuschalten:
Beachten Sie jedoch, dass es nie „sicher“ ist, den Swap vollständig zu deaktivieren. Selbst bei Systemen mit mehr als 96 GB RAM ist der Betrieb von mindestens 512 MB Swap eine gute Sicherheitsmaßnahme. So hat Ihr System Zeit, unnötige Prozesse zu beenden, wenn etwas außer Kontrolle gerät und unerwartet den gesamten RAM auffrisst. Die Alternative bei deaktiviertem Swap ist ein Kernel-Panic.
Daher dachte ich, ich könnte einen Teil des RAM, sagen wir 0,5 GB, für eine „RAM-Disk“ reservieren und diese als Auslagerungsdatei verwenden, um Schreibvorgänge auf der SSD zu sparen.
Wie mache ich das? Ist das aus irgendeinem Grund eine schlechte Idee?
Antwort1
Ich würde nicht sagen, dass es an der Stabilität liegt, es ist ein weit verbreitetes Missverständnis. Wenn ein System-RAM + Swap voll ist, treten tatsächlich dieselben Symptome auf wie ohne Swap:
- Unerklärt,großVerlangsamungen (das System sperrt die Prozesse, die RAM anfordern, für eine Weile, vielleicht gibt jemand den für sie benötigten RAM frei)
- Durch den OOM-Killer (Out of Memory) beendete Prozesse.
Der einzige Unterschied ist, dass ohne Swap diese Symptome auftretenplötzlich, während sie beim Swap erst nach Abschluss des Swaps auftreten. Daher gibt es eine viel größere Verzögerungszeit, bevor Ihr System überhaupt nicht mehr reagiert.
Dies ist der erste Grund, warum ein Swap-Speicher sinnvoll ist.
Der zweite Punkt ist weniger bekannt, aber eigentlich viel wichtiger:
Im Allgemeinen verlangsamt der Swap-Speicher Ihren Computer nicht, sondern beschleunigt ihn, selbst wenn Sie viel zu viel RAM haben.
Der Grund dafür ist folgender: Was macht Ihr System eigentlich mit dem Arbeitsspeicher, den Ihre Prozesse nicht nutzen? Er wird zum Zwischenspeichern Ihrer Festplatten verwendet und macht Ihr System damit schneller.
Wenn Sie über Swap verfügen, ermöglichen Sie Ihrem System im Wesentlichen, die wirklich seltenen Speicherseiten auszulagern und ihren Speicherplatz für den Festplattencache zu verwenden.Wie schnell sie auftreten, hängt von Ihren VM-Einstellungen und Heuristiken ab, aber sie sind wirklich gut (soweit ich weiß, ist Linux in dieser Hinsicht bei weitem das Beste).
Wenn sich Ihre Festplatten auf SSDs befinden, spielen diese beiden Argumente keine wirkliche Rolle (obwohl viel schnellere Festplatten mit null Suchzeit natürlich alles beschleunigen).
Ich verwende für Swap-Partitionen meistens die alte goldene Regel: Ich verwende Swap doppelt so viel wie meinen RAM. Dies dient dazu, eine Fragmentierung des Swaps zu vermeiden (Blöcke in der Swap-Datei können genauso fragmentiert werden wie Dateien in einem Dateisystem). In Ihrem Fall, wo Sie eine enorme Menge an RAM, aber eine teure Festplatte mit null Suchzeit haben, ist die Fragmentierung des Swaps kein Problem, daher würde vielleicht auch weniger ausreichen. Ich weiß nicht, wie viele SSDs Sie haben, vielleicht würde 1x oder sogar 0,5x Ihres RAMs ausreichen.
Meiner Meinung nach ist dieser Ratschlag, „mindestens 512 MB Swap zu haben“, schlecht, denn die Menge an Swap, die Sie verwenden, muss von Ihren Systemparametern abhängen (Festplattenkosten, RAM-Menge, Festplattengröße, Festplattensuchzeit usw.). Diese 512 MB sind keine „goldene Regel“, sondern eine „magische Zahl“, die bedeutungslos ist, wenn wir sie allgemein verwenden.
Antwort2
Die Verwendung einer Festplatte für den Swap-Speicher auf einem SSD-System ist keine gute Idee. Sie ist nicht nur langsamer, sondern hat auch viel längere Zugriffszeiten, verbraucht viel mehr Strom und ist möglicherweise weniger zuverlässig als eine moderne SSD. Heutzutage haben SSDs 5 Jahre Garantie und können problemlos 8-10 Jahre halten, selbst wenn Sie täglich Hunderte von GBs darauf schreiben.
Aber noch viel besser wäre es,verwendenzram
, ggf. zusammen mit einer kleinen Backup-Swap-Partition auf der SSD. Verschiedene Linux-Distributionen sowie ChromeOS und Android haben zram seit Jahren standardmäßig aktiviert. Unter Android gibt es nicht einmal den herkömmlichen Swap standardmäßig. SogarWindowsUndMac OSverwendet heutzutage komprimierten RAM, bevor auf Swap zurückgegriffen wird
Da die CPU Daten viel schneller dekomprimieren kann als die Festplatte, ist die Systemreaktion deutlich spürbar, sobald das System mit dem Swapping beginnt. Der Unterschied ist bei SSDs nicht so stark ausgeprägt, aber lautBenchmark-Ergebnisse hierzram mit dem Standard-lzo-Algorithmus scheint immer noch schneller zu sein. Sie können leicht wechseln zulz4-Algorithmuswelches istfast 5 mal schneller als lzomit einem etwas niedrigeren Kompressionsverhältnis
Es gibt auchzswap
das einen anderen Mechanismus verwendet, aber dennoch komprimierte Daten im RAM speichert
Weiterführende Literatur
- https://wiki.debian.org/ZRam
- https://wiki.archlinux.org/index.php/improving_performance#RAM_and_swap
- ZRAM vs. Zswap vs. Zcache Ultimativer Leitfaden: Wann sollte man was verwenden?
- Linux, SSD und Swap
- Unterschied zwischen ZRAM und ZSWAP
- https://www.kernel.org/doc/Documentation/blockdev/zram.txt
- https://wiki.gentoo.org/wiki/Zram
Antwort3
Angesichts der Antwort von @peterh ist es wahrscheinlich eine gute Lösung, eine beliebige alte Festplatte in die Maschine einzubauen und sie als temporären Speicherplatz, einschließlich Swap, zu verwenden. Auf diese Weise steht dem System der gesamte RAM zur Verfügung, sogar die letzten 0,5 G. Eine Laptop-Festplatte wäre wahrscheinlich energieeffizienter als ein 3,5-Zoll-Laufwerk.