Was Sie über die Swap-Partition unter Linux wissen müssen
Wenn Sie Linux installieren, wird der Setup-Prozess wahrscheinlich zusätzlich zu den Partitionen für Linux selbst eine Swap-Partition zur Festplatte hinzufügen. Aber wofür wird diese Swap-Partition verwendet und ist sie wirklich notwendig?
Lesen Sie auch: Brauche ich Swap in Ubuntu? Der realistische Ansatz
Was ist Swap?
Wenn einem Multitasking-Betriebssystem der physische Speicher ausgeht, kann es keine neuen Prozesse starten oder vorhandenen Prozessen mehr Speicher zuweisen. Um dieses Problem zu lösen, wird ein spezieller Speicherplatzblock auf dem lokalen Speicher (häufig die Festplatte) reserviert, der als temporärer Zwischenspeicher für Prozesse dient, die derzeit nicht ausgeführt werden. Das Betriebssystem „lagert“ den inaktiven Prozess aus dem Speicher auf die Festplatte aus. Dadurch wird Speicher für neue Aufgaben freigegeben. Wenn der inaktive Prozess wieder aktiv wird, wird er vom lokalen Speicher zurück in den Speicher ausgelagert. Dieser Vorgang wird als Swapping bezeichnet.
Ist Swap-Speicher wirklich notwendig?
Ist Swap-Speicher technisch notwendig? Nein. Linux kann auch ohne ihn funktionieren und in manchen Situationen, wie eingebetteten Lösungen, kann Linux ohne Swap ausgeführt werden. Wenn das Betriebssystem in eine Situation gerät, in der es nicht genügend Speicher hat, gerät es in Panik und stoppt. Wenn genügend physischer RAM vorhanden ist, läuft die Maschine 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 den RAM) und so viel physischer Speicher wie möglich an Bord die beste Lösung ist, um Swapping zu vermeiden, gibt es legitime Situationen, in denen Swapping wünschenswert ist. Beispielsweise kann es während des Systemstarts Prozesse geben, die ausgeführt werden (und so Systemspeicher verbrauchen), dann aber effektiv sehr lange schlafen. Oder Speicher, der zugewiesen, beschrieben und dann nie wieder verwendet wird. In diesen Situationen beginnt der Swapping-Algorithmus, diesen Speicher auf die Festplatte zu migrieren und so wertvollen Systemspeicher freizugeben. Dadurch wird tatsächlich sichergestellt, dass jederzeit die maximale Menge an RAM verfügbar ist, was die Leistung erhöht.
Auf Maschinen, die nicht über genügend physischen RAM verfügen, um alles im Speicher zu belegen, ist die Verwendung von Swap-Speicher unerlässlich!
Der Vollständigkeit halber sei erwähnt, dass Linux auch über ein Subsystem namens Out-Of-Memory Killer (OOM) verfügt, das den Kernel nicht stoppt, wenn der Arbeitsspeicher knapp wird, sondern damit beginnt, Prozesse zu beenden, um Ressourcen freizugeben. Seine Aktionen sind konfigurierbar.
Wie viel Swap-Speicherplatz sollte ich zuweisen?
Es gibt keine absolute Regel. Da Festplattenspeicher billig ist (Dollar pro Gigabyte), ist es besser, zu viel als zu wenig Speicherplatz zuzuweisen. Als Faustregel gilt, dass Sie zwei- bis dreimal so viel Swap-Speicherplatz wie physischen Speicher haben sollten.
Hinzufügen von Swap ohne Erweiterung der Swap-Partition
Es gibt zwei Möglichkeiten, einem System Swap-Speicherplatz 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 eine andere Festplatte zu verwenden, erstellen Sie eine Partition vom Typ „Linux-Swap“ (Code 82) und führen Sie dann den Befehl „mkswap“ aus, um den Swap-Speicherplatz vorzubereiten:
Dabei ist /dev/sdb2 der Name der Partition, die Sie erstellt haben. Um den Swap-Speicher sofort zu nutzen, verwenden Sie den Befehl „swapon“:
Verwenden Sie „swapon -s“, um eine Liste der aktuell verwendeten Swap-Speicherplätze zu erhalten. Um den Swap-Speicherplatz dauerhaft zum System hinzuzufügen, müssen Sie die Datei /etc/fstab bearbeiten und eine Zeile ähnlich dieser hinzufügen:
/dev/sdb2 keine Swap-SW 0 0Wenn Ihr System eindeutige Kennungen zur Benennung der Datenträger verwendet, können Sie mit dem Befehl blkid eine Liste der Kennungen für die Geräte abrufen. Die Zeile zum Einbinden des Swap-Speichers in /etc/fstab würde dann etwa so aussehen:
UUID=036da155-1ea1-4392-b8d4-700f65aa1ead keine Swap-SW 0 0Um eine Datei zum Auslagern zu verwenden, erstellen Sie eine große leere Datei (mit dd) auf dem Dateisystem, das Sie zum Auslagern verwenden möchten. Um beispielsweise eine 1 GB große Datei zu erstellen, geben Sie Folgendes ein:
dd wenn=/dev/null von=/store/swapfile bs=1024 Anzahl=1048576Dabei ist /store/swapfile der Pfad zur Auslagerungsdatei im gewünschten Dateisystem.
Wie bei der zusätzlichen Swap-Partition muss die Datei nun mit mkswap vorbereitet und dann mit swapon verwendet werden. Außerdem muss sie zur Datei /etc/fstab hinzugefügt werden. Die Vorgehensweise ist genau die gleiche wie oben, allerdings muss als Swap-Space-Parameter /store/swapfile anstelle von /dev/sdb2 verwendet werden.
Austauschbarkeit
Der Linux-Kernel kann angepasst werden, um festzulegen, wie aggressiv er versuchen soll, Prozesse aus dem Speicher auszulagern. Diese Tendenz wird durch eine Kernelvariable namens Swappiness gesteuert. Eine Swappiness von 0 bedeutet, dass der Kernel das Auslagern so weit wie möglich vermeidet, während 100 bedeutet, dass der Kernel den Swap-Speicher aggressiv nutzt. Die Standardeinstellung für viele Linux-Distributionen ist 60. Mit diesem Befehl ist es möglich, die Zahl dynamisch 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, falls sie nicht vorhanden ist).
Lassen Sie es uns wissen, wenn Sie Fragen zu Swap in Linux haben.
Dieser Artikel wurde erstmals im Dezember 2013 veröffentlicht und im August 2020 aktualisiert.
Schreibe einen Kommentar