Was Sie über die Swap-Partition auf Linux wissen müssen

Wenn Sie Linux installieren, wird der Einrichtungsprozess wahrscheinlich eine Swap-Partition auf der Festplatte zusammen mit den Partitionen für Linux selbst hinzufügen. Aber wofür wird diese Swap-Partition verwendet und ist sie wirklich notwendig?
Auch lesen: Brauche ich Swap in Ubuntu? Der realistische Ansatz
Was ist Swap?
Wenn ein Multitasking-Betriebssystem keinen physischen Speicher mehr hat, kann es keine neuen Prozesse starten oder mehr Speicher für bestehende Prozesse zuweisen. Um dieses Problem zu lösen, wird ein spezieller Speicherblock auf dem lokalen Speicher (oft auf der Festplatte) reserviert, der als temporärer Aufbewahrungsort für Prozesse dient, die derzeit nicht ausgeführt werden. Das Betriebssystem „swapped“ den inaktiven Prozess aus dem Speicher und auf die Festplatte. Dies schafft Platz im Speicher für neue Arbeiten. Wenn der inaktive Prozess wieder aktiv wird, wird er zurück vom lokalen Speicher in den Speicher „geswappt“. Dieses Verfahren wird als Swapping bezeichnet.
Ist Swap-Speicher wirklich notwendig?
Ist Swap-Speicher technisch notwendig? Nein. Linux kann ohne ihn arbeiten und in einigen Situationen, wie z.B. in Embedded-Lösungen, kann Linux ohne Swap betrieben werden. Wenn das Betriebssystem in eine Situation gerät, in der es nicht genügend Speicher hat, wird es in Panik geraten und stoppen. Wenn genügend physischer RAM vorhanden ist, funktioniert der Computer ohne Probleme.
Ist Swap-Speicher praktisch notwendig? Ja. Obwohl Swapping einen Computer verlangsamt (da das Lesen und Schreiben auf einer Festplatte viel langsamer ist als der Zugriff auf RAM) und es die beste Lösung ist, so viel physischen Speicher wie möglich an Bord zu haben, gibt es legitime Situationen, in denen Swapping wünschenswert ist. Zum Beispiel kann es während des Systemstarts Prozesse geben, die ausgeführt werden (und so Systemressourcen verbrauchen), aber dann effektiv für sehr lange Zeit schlafen. Oder Speicher, der zugewiesen, beschrieben und dann nie wieder verwendet wird. In diesen Situationen beginnt der Swapping-Algorithmus, diesen Speicher auf die Festplatte zuverschieben und so wertvollen Systemspeicher freizugeben. Dies stellt tatsächlich sicher, dass zu jeder Zeit die maximale Menge an RAM verfügbar ist und erhöht somit die Leistung.

Bei Maschinen, die nicht genügend physischen RAM haben, damit alles im Speicher gespeichert werden kann, ist die Verwendung von Swap-Speicher unerlässlich!
Für die Vollständigkeit ist es erwähnenswert, dass Linux auch ein Untersystem namens Out-Of-Memory Killer (OOM) hat, das anstelle des Stopps des Kernels, wenn der Speicher ausgeschöpft ist, beginnt, Prozesse zu beenden, um Ressourcen freizugeben. Seine Aktionen sind konfigurierbar.
Wie viel Swap-Speicher sollte ich zuweisen?
Es gibt keine absolute Regel und da Festplattenspeicher günstig ist (Dollar pro Gigabyte), ist es besser, zu viel als zu wenig Speicher zuzuweisen. Als Faustregel sollten Sie zwei- bis dreimal so viel Swap-Speicher wie physischen Speicher haben.
Swap hinzufügen, ohne die Swap-Partition zu erweitern
Es gibt zwei Möglichkeiten, Swap-Speicher zu einem System hinzuzufügen, ohne die vorhandene Swap-Partition zu ändern. Eine Möglichkeit besteht darin, eine Swap-Partition auf einem anderen Laufwerk zu verwenden, die andere darin, eine Swap-Datei zu verwenden.
Um ein anderes Festplattenlaufwerk zu verwenden, erstellen Sie eine Partition des Typs „Linux swap“ (Code 82) und führen Sie dann den Befehl „ mkswap “ aus, um den Swap-Speicher vorzubereiten:
mkswap /dev/sdb2Dabei ist /dev/sdb2 der Name der von Ihnen erstellten Partition. Verwenden Sie den Befehl „ swapon “, um den Swap-Speicher sofort zu nutzen:
swapon /dev/sdb2Verwenden Sie „ swapon -s “, um eine Liste der aktuell verwendeten Swap-Speicher zu erhalten. Um den Swap-Speicher dauerhaft zum System hinzuzufügen, müssen Sie die Datei /etc/fstab bearbeiten und eine Zeile hinzufügen, die ähnlich aussieht wie diese:
/dev/sdb2 none swap sw 00Wenn Ihr System eindeutige Identifikatoren verwendet, um die Festplatten zu benennen, verwenden Sie den Befehl blkid, um eine Liste der IDs für die Geräte zu erhalten. Die Zeile zum Einhängen des Swap-Speichers in /etc/fstab würde dann etwa so aussehen:
UUID=036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 00Um eine Datei für Swap zu verwenden, erstellen Sie eine große leere Datei (mit dd) im Dateisystem, das Sie zum Swappen verwenden möchten. Um beispielsweise eine 1-GB-Datei zu erstellen, geben Sie Folgendes ein:
dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576Dabei ist /store/swapfile der Pfad zur Swap-Datei im gewünschten Dateisystem.
Wie bei der zusätzlichen Swap-Partition muss die Datei nun mit mkswap vorbereitet und dann mit swapon verwendet werden. Sie muss auch zur Datei /etc/fstab hinzugefügt werden. Das Verfahren ist genau das gleiche wie oben, aber Sie müssen /store/swapfile anstelle von /dev/sdb2 als Swap-Speicherparameter verwenden.
Swappiness
Der Linux-Kernel kann angepasst werden, um zu definieren, wie aggressiv er versuchen sollte, Prozesse aus dem Speicher zu swappen. Diese Tendenz wird durch eine Kernelvariable namens swappiness gesteuert. Eine swappiness von 0 bedeutet, dass der Kernel das Swapping so weit wie möglich vermeiden wird, während 100 bedeutet, dass der Kernel aggressiv in der Nutzung des Swap-Speichers sein wird. Die Standardeinstellung für viele Linux-Distributionen ist 60. Es ist möglich, die Zahl dynamisch mit diesem Befehl zu ändern:
sudo sysctl vm.swappiness=10Um einen Wert dauerhaft festzulegen, müssen Sie die Variable vm.swappiness in der Datei /etc/sysctl.conf ändern (oder hinzufügen, wenn sie nicht existiert).
Lassen Sie uns wissen, wenn Sie Fragen zu Swap in Linux haben.
Dieser Artikel wurde zuerst im Dezember 2013 veröffentlicht und im August 2020 aktualisiert.
Bildnachweis: Swap