Wenn Sie Linux installieren, wird der Setup-Prozess wahrscheinlich eine Swap-Partition zusammen mit den Partitionen für Linux selbst zur Festplatte hinzufügen. Aber wofür wird diese Swap-Partition verwendet und ist sie wirklich notwendig?
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 Speicherplatz auf dem lokalen Speicher (häufig auf der Festplatte) als temporärer Speicherbereich für Prozesse reserviert, die derzeit nicht ausgeführt werden. Das Betriebssystem “tauscht” den inaktiven Prozess aus dem Speicher auf die Festplatte. Dies schafft Speicherplatz für neue Arbeiten. Wenn der inaktive Prozess wieder aktiv wird, wird er vom lokalen Speicher zurück in den Speicher verschoben. Dieser Vorgang wird als Tauschen bezeichnet.
Ist Swap Space wirklich notwendig?
Ist Swap Space technisch notwendig? Nein. Linux kann ohne es arbeiten und in einigen Situationen, wie bei eingebetteten Lösungen, kann Linux ohne Swap ausgeführt werden. Wenn das Betriebssystem in eine Situation gerät, in der es nicht über genügend Speicher verfügt, gerät es in Panik und stoppt. Wenn genügend physischer RAM vorhanden ist, kann der Computer problemlos ausgeführt werden.
Ist Swap Space praktisch notwendig? Ja. Obwohl das Austauschen einen Computer verlangsamt (da das Lesen und Schreiben auf eine Festplatte viel langsamer ist als der Zugriff auf den Arbeitsspeicher) und möglichst viel physischer Speicher an Bord ist, um das Austauschen zu vermeiden, gibt es legitime Situationen, in denen das Austauschen wünschenswert ist. Während des Systemstarts kann es beispielsweise Prozesse geben, die ausgeführt werden (und somit Systemspeicher verbrauchen), dann aber sehr lange effektiv schlafen. Oder Speicher, der zugewiesen, geschrieben und dann nie wieder verwendet wird. In diesen Situationen beginnt der Auslagerungsalgorithmus, diesen Speicher auf die Festplatte zu migrieren und so wertvollen Systemspeicher freizugeben. Dies stellt tatsächlich sicher, dass die maximale Menge an RAM jederzeit verfügbar ist, und erhöht so die Leistung.
Auf Computern, die nicht über genügend physischen RAM verfügen, damit sich alles im Speicher befindet, ist die Verwendung von Swap Space unerlässlich!
Der Vollständigkeit halber ist zu erwähnen, dass Linux auch ein Subsystem namens Out-Of-Memory Killer (OOM) hat, das den Kernel nicht stoppt, wenn ihm der Speicher ausgeht, sondern Prozesse abbricht, um Ressourcen freizugeben. Seine Aktionen sind konfigurierbar.
Wie viel Swap-Speicher sollte ich zuweisen?
Es gibt keine absolute Regel und da der Festplattenspeicher billig ist (Dollar pro Gigabyte), ist es besser, zu viel als zu wenig Speicherplatz zuzuweisen. Als Faustregel gilt, dass Sie zwei- oder dreimal so viel Swap-Speicherplatz wie physischer Speicher haben sollten.
Swap hinzufügen, ohne die Swap-Partition zu erweitern
Es gibt zwei Möglichkeiten, einem System Swap-Speicherplatz hinzuzufügen, ohne die vorhandene Swap-Partition zu ändern. Eine Möglichkeit besteht darin, eine Auslagerungspartition auf einem anderen Laufwerk zu verwenden, die andere darin, eine Auslagerungsdatei zu verwenden.
Um eine andere Festplatte zu verwenden, erstellen Sie eine Partition vom Typ “Linux Swap” (Code 82) und führen Sie dann “mkswap
Befehl zum Vorbereiten des Swap Space:
mkswap /dev/sdb2
Wo /dev/sdb2
ist der Name der Partition, die Sie erstellt haben. Um den Swap Space sofort zu nutzen, verwenden Sie das “swapon
” Befehl:
swapon /dev/sdb2
Verwenden “swapon -s
”, Um eine Liste der aktuell verwendeten Swap Spaces zu erhalten. Um den Swap Space dauerhaft zum System hinzuzufügen, müssen Sie den bearbeiten /etc/fstab
Datei und fügen Sie eine ähnliche Zeile hinzu:
/dev/sdb2 none swap sw 0 0
Wenn Ihr System eindeutige Bezeichner verwendet, um die Festplatten zu benennen, verwenden Sie die blkid
Befehl, um eine Liste der IDs für die Geräte abzurufen. Die Linie, in der der Swap Space montiert werden soll /etc/fstab
würde dann ungefähr so aussehen:
UUID=036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 0 0
Um eine Datei für den Austausch zu verwenden, erstellen Sie eine große leere Datei (mit dd
) auf dem Dateisystem, das Sie zum Austauschen verwenden möchten. Geben Sie beispielsweise Folgendes ein, um eine 1-GB-Datei zu erstellen:
dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576
Wo /store/swapfile
ist der Pfad zur Auslagerungsdatei im gewünschten Dateisystem.
Wie bei der zusätzlichen Auslagerungspartition muss die Datei jetzt mit vorbereitet werden mkswap
und dann mit verwendet swapon
. Es muss auch zum hinzugefügt werden /etc/fstab
Datei. Das Verfahren ist genau das gleiche wie oben, aber Sie müssen verwenden /store/swapfile
eher, als /dev/sdb2
als Swap Space Parameter.
Swappiness
Der Linux-Kernel kann optimiert werden, um zu definieren, wie aggressiv er versuchen soll, Prozesse aus dem Speicher zu tauschen. Diese Tendenz wird durch eine aufgerufene Kernelvariable gesteuert swappiness
. EIN swappiness
0 bedeutet, dass der Kernel das Tauschen so weit wie möglich vermeidet, während 100 bedeutet, dass der Kernel aggressiv im Umgang mit dem Auslagerungsraum ist. Die Standardeinstellung für viele Linux-Distributionen ist 60. Mit diesem Befehl können Sie die Nummer dynamisch ändern:
sudo sysctl vm.swappiness=10
Um einen Wert dauerhaft festzulegen, müssen Sie den Wert ändern (oder hinzufügen, falls er nicht vorhanden ist) vm.swappiness
Variable in der /etc/sysctl.conf
Datei.
Lassen Sie uns wissen, wenn Sie Fragen zum Austausch unter Linux haben.
Dieser Artikel wurde erstmals im Dezember 2013 veröffentlicht und im August 2020 aktualisiert.
Bildnachweis: Tauschen