Es gibt sie noch und es wird sie immer geben – die Nutzer, die die SWAP-Funktion wegen genug Arbeitsspeicher in Abrede stellen. Spätestens dann, wenn am Laptop mangels einer SWAP-Partition kein Suspend to Disk funktioniert (dies funktioniert auch mit einer SWAP-Datei nicht) denken sie jedoch wohl anders.
Ganz ehrlich, auf einer SSD ist der SWAP kaum mehr zu bemerken – eine SSD ist doch um vieles schneller als eine mechanische Festplatte und Speicher hat man auch auf aktuellen SSDs mehr als genug.
Das sogenannte Swappen kann man unter Linux jedoch auch anpassen – gerade auf mechanischen Festplatten ist dies sogar sinnvoll. Manche Anwendungen – etwa LibreOffice lagern gerne in den SWAP aus, auch wenn der Arbeitsspeicher noch gar nicht voll ist – ist kein SWAP vorhanden, funktioniert eine solche Anwendung nicht optimal. Damit nur so wenig wie möglich in den SWAP ausgelagert wird, passt man unter Linux den Swapiness-Wert an.
Anpassen von Swapiness
Man muss mit den Testwerten nicht gleich bis zum nächsten Neustart des Systems leben – zu Beginn kann man mit Einstellungen testen und diese sofort ändern.
Sehen wir uns einmal den aktuellen Swapiness-Wert an – als Administrator am Terminal:
sysctl vm.swappiness
Oder auch:
cat /proc/sys/vm/swappiness

Mein Beispiel liefert den Wert „60“ – der Standard der Distribution. Je niedriger der Wert, desto weniger wird in den SWAP ausgelagert. Werte lassen sich angeben von 0 bis 100 – bei 0 ist der SWAP deaktiviert.
Die Logik sagt also – je mehr Arbeitsspeicher vorhanden ist, desto niedriger sollte der SWAP-Wert liegen. Wie schon beschrieben – Sie müssen mit dem aktuell festgelegten Wert nicht bis zum nächsten Neustart leben. Sie geben ganz einfach einen Wert an, testen das System und die Anwendungen – funktionieren diese nicht perfekt, ändern Sie den Wert im laufenden System und testen so lange bis Sie den besten Wert gefunden haben – diesen speichern Sie.
Nun wollen wir den Swapiness-Wert einfach einmal auf 20 setzen, als Administrator am Terminal:
sysctl vm.swappiness=20
Sie sehen mit:
sysctl vm.swappiness
sofort das der Wert angepasst wurde. Nun testen Sie Ihr System und die Anwendungen einige Zeit und prüfen anschließend mit:
free -h
die Belegung des Arbeitsspeichers und des SWAP, ein Beispiel für eine Ausgabe:
gesamt benutzt frei gemns. Puffer/Cache verfügbar
Speicher: 15Gi 2,1Gi 8,5Gi 631Mi 4,8Gi 12Gi
Swap: 17Gi 0B 17Gi
Solange die Anwendungen problemlos laufen und sich die Belegung des SWAP nicht ändert können Sie ruhig den Wert nach unten schrauben. Ist der Arbeitsspeicher voll und der SWAP wird belegt gehen Sie ein wenig höher und Sie haben den optimalen Wert gefunden. Diesen speichern Sie nun in der Datei „/etc/sysctl.conf„. Als Administrator am Terminal:
nano /etc/sysctl.conf
Nun fügen Sie folgende neue Zeile an die Datei an – im Beispiel mit dem Wert „15„:
vm.swappiness = 15
Sie speichern die Datei mit Strg+o, bestätigen mit Eingabe und schließen den Editor mit Strg+x. Nach einem Neustart sind die Einstellungen wirksam.

Eine Reaktion
Danke für den Artikel!
Leider sind ein paar inhaltliche Fehler darin enthalten, ich würde da gern ein paar Dinge klarstellen. Das sind weit verbreitete Irrtümer die leider zu einem nicht idealen Verhalten von vielen „optimierten“ Linux-Rechnern führen.
1. Manche Anwendungen – etwa LibreOffice lagern gerne in den SWAP aus
So funktioniert das nicht. Anwendungen können nichts in den SWAP auslagern, das ist einzig und allein die Entscheidung des Kernels. Die Anwendungen werden vernünftig funktionieren solange genug Speicher da ist, unabhängig von einem eventuell existierenden SWAP-Speichers.
2. … Damit nur so wenig wie möglich in den SWAP ausgelagert wird …
Das zeugt von einem Missverständnis. Swap wird genutzt um „Anonyme“ Seiten frei zu machen, also laufende, aber wenig bis ungenutzte Programme aus dem RAM zu werfen. Bei geringer RAM Auslastung wird der Kernel nur das aus dem RAM entfernen auf das lange nicht mehr zugegriffen wurde, also z.B. ein Programmteil das seit dem Booten oder Programmstart nicht mehr benötigt wurde. Damit wird die Menge an verfügbarem RAM erhöht, was wiederum gut für die Performance des Systems ist. Swap beschleunigt also das System solange er korrekt/sinnvoll konfiguriert wurde. Und um die korrekte Konfiguration geht’s bei der swappiness.
3. … je mehr Arbeitsspeicher vorhanden ist, desto niedriger sollte der SWAP-Wert liegen…
Selber Denkfehler. Die swappiness sagt dem Kernel eine Sache: Wie einfach ist es Daten in den Swap auszulagern und wieder zurückzulesen im Vergleich zum normalen Zugriff auf eine Datei. Das ist alles. 60 ist dabei eine ganz gute Annahme: eine Datei einzulesen kostet 60 Einheiten, zu swappen kostet 140 (im Hintergrund rechnet der Kernel immer mit 200 – swappiness für die Kosten vom Swappen und mit der swappiness für die Kosten von Dateioperationen). Also wird der Kernel erstmal die gecachten Dateien „vergessen“ und diesen RAM verwenden. Wenn aber die neueste der gecachten Dateien noch deutlich neuer ist als die älteste inaktive anonyme Seite (Programme mit ihren Daten) dann wird die irgendwann geswappt. Und mit der swappiness kann man jetzt beeinflussen wann das sein soll.
ABER: Ein wichtiger weiterer Faktor ist die ART des swaps: Ist z.B. zswap oder zram-swap aktiv, wie bei einigen modernen Distributionen (Fedora z.B.) dann wird die Anonyme Seite einfach komprimiert. Das ist viel weniger Aufwand, kostet also im Vergleich fast keine Zeit und die swappiness sollte dementsprechend viel höher sein als bei einem System mit normalem Swap.
Andererseits kommt es bei einem Desktop System eben nicht immer auf die optimale Performance an sondern darauf dass der Desktop gut reagiert und z.B. ein länger nicht verwendetes Menü sich trotzdem schnell öffnet. Spricht dann wiederum für eine geringere swappiness.
4. … Solange die Anwendungen problemlos laufen und sich die Belegung des SWAP nicht ändert können Sie ruhig den Wert nach unten schrauben…
Ich hoffe jetzt ist klar dass dieses Vorgehen am Ziel vorbei läuft. Swap ist da um die Performance zu erhöhen, die swappiness ist da damit der Kernel weiß wie billig das Swappen ist. Es gibt da jetzt keinen korrekten Wert, aber auf einem Desktop würde ich bei normalen Swap-Partitionen eher einen kleinen Wert wie 20 nehmen. Bei aktiviertem zram oder zswap würde ich den Wert dann erhöhen, z.B. auf 60 oder 100. Je nachdem ob Performance oder die Ansprechbarkeit des Desktops im Vordergrund stehen. Bei einem Server werden die Werte dabei oft teilweise über 100 gewählt, einfach weil swappen auf einmal total schnell geht und die Performance verbessert.