Was Sie über Swap-Partitionen unter Linux wissen müssen
Wenn Sie Linux installieren, fügt der Installationsprozess wahrscheinlich eine Auslagerungspartition zur Festplatte zusammen mit den Partitionen für Linux selbst hinzu. Wofür wird diese Swap-Partition verwendet und ist das wirklich notwendig?
Was ist ein Tausch?
Wenn auf einem Multitasking-Betriebssystem kein physischer Speicher mehr verfügbar ist, kann es keine neuen Prozesse mehr starten oder vorhandenen Prozessen mehr Speicher zuweisen. Um dieses Problem zu lösen, wird ein spezieller Speicherplatz auf dem lokalen Speicher (oft die Festplatte) reserviert, der als temporärer Speicherbereich für Prozesse dient, die derzeit nicht ausgeführt werden. Das Betriebssystem "tauscht" den inaktiven Prozess aus dem Speicher und auf die Festplatte. Dies gibt Speicher für neue Arbeit frei. Wenn der inaktive Prozess wieder aktiv wird, wird er vom lokalen Speicher in den Speicher ausgelagert. Dieser Vorgang wird als Austausch bezeichnet.
Ist Auslagerungsspeicher wirklich notwendig?
Ist Swap Space technisch notwendig? Nein. Linux kann ohne es arbeiten und in einigen Situationen, wie eingebettete 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, wird es in Panik geraten und stoppen. Wenn genügend physischer RAM vorhanden ist, wird die Maschine ohne Probleme ausgeführt.
Ist Swap Space praktisch notwendig? Ja. Obwohl Swapping einen Computer verlangsamt (da das Lesen und Schreiben auf eine Festplatte wesentlich langsamer ist als der Zugriff auf RAM) und derselbe physische Speicher an Bord die beste Lösung ist, um ein Austauschen zu vermeiden, gibt es legitime Situationen, in denen Swapping wünschenswert ist. Beispielsweise können während des Systemstarts Prozesse ausgeführt werden (die Systemspeicher verbrauchen), die dann jedoch für sehr lange Zeit effektiv inaktiviert werden. Oder Speicher, der zugewiesen, geschrieben und dann nie wieder verwendet wird. In diesen Situationen beginnt der Austauschalgorithmus damit, diesen Speicher auf die Festplatte zu migrieren und so wertvollen Systemspeicher freizusetzen. Dies stellt tatsächlich sicher, dass die maximale Menge an RAM zu jeder Zeit verfügbar ist und so die Leistung erhöht.
Auf Maschinen, die nicht über genügend physischen Arbeitsspeicher verfügen, um alles im Arbeitsspeicher zu speichern, ist die Verwendung von Auslagerungsspeicher unerlässlich!
Der Vollständigkeit halber sei erwähnt, dass Linux auch ein Subsystem namens Out-of-Memory Killer (OOM) hat, das den Kernel nicht mehr stoppt, wenn es nicht mehr genügend Arbeitsspeicher hat. Seine Aktionen sind konfigurierbar.
Wie viel Swap Space sollte ich zuweisen?
Es gibt keine absolute Regel und da Festplattenspeicher billig ist (Dollar pro Gigabyte), ist es besser, zu viel als zu wenig Speicherplatz zuzuweisen. Als Faustregel gilt, dass Sie als physischen Speicher die zwei- bis dreifache Menge an Swap Space haben sollten.
Hinzufügen von Swap, ohne die Swap-Partition zu erweitern
Es gibt zwei Möglichkeiten, Swap-Space zu einem System hinzuzufügen, ohne die vorhandene Swap-Partition zu ändern. Eine Möglichkeit besteht darin, eine Auslagerungspartition auf einem anderen Laufwerk zu verwenden, die andere besteht 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 den Befehl " mkswap
" aus, um den Auslagerungsspeicher vorzubereiten:
mkswap / dev / sdb2
Dabei ist /dev/sdb2
der Name der Partition, die Sie erstellt haben. Um den Swap-Space sofort zu verwenden, verwenden Sie den Befehl " swapon
":
swapon / dev / sdb2
Verwenden Sie " swapon -s
", um eine Liste der aktuell verwendeten Swap- swapon -s
zu erhalten. Um den Auslagerungsspeicher permanent dem System hinzuzufügen, müssen Sie die Datei /etc/fstab
bearbeiten und eine Zeile ähnlich der folgenden hinzufügen:
/ dev / sdb2 keine sw sw 0 0
Wenn Ihr System eindeutige Bezeichner verwendet, um die blkid
zu benennen, verwenden Sie den Befehl blkid
, um eine Liste der IDs für die Geräte blkid
. Die Zeile zum Mounten des Swap-Space in /etc/fstab
würde dann /etc/fstab
so aussehen:
UUID = 036da155-1ea1-4392-b8d4-700f65aa1ead keine sw sw 0 0
Um eine Datei für den Austausch zu verwenden, erstellen Sie eine große leere Datei (unter Verwendung von dd
) für das Dateisystem, das Sie für das Auslagern verwenden möchten. Um beispielsweise eine 1-GB-Datei zu erstellen, geben Sie Folgendes ein:
dd if = / dev / zero von = / store / swapfile bs = 1024 count = 1048576
Wo /store/swapfile
ist der Pfad zur Auslagerungsdatei auf dem gewünschten Dateisystem.
Wie bei der zusätzlichen Swap-Partition muss die Datei nun mit mkswap
vorbereitet und dann mit swapon
. Es muss auch zur Datei /etc/fstab
hinzugefügt werden. Die Prozedur ist genau so wie oben, aber Sie müssen /dev/sdb2
statt /dev/sdb2
als Swap-Space-Parameter verwenden.
Swappiness
Der Linux-Kernel kann optimiert werden, um zu definieren, wie aggressiv er versuchen sollte, Prozesse aus dem Speicher auszulagern. Diese Tendenz wird durch eine swappiness
namens swappiness
. Ein swappiness
von 0 bedeutet, dass der Kernel so viel wie möglich austauscht, während 100 bedeutet, dass der Kernel aggressiv sein wird, wie er den Swap Space nutzt. Die Standardeinstellung für viele Linux-Distributionen ist 60. Es ist möglich, die Anzahl dynamisch mit diesem Befehl zu ändern:
sudo sysctl vm.swappiness = 10
Um einen Wert dauerhaft vm.swappiness
Variable vm.swappiness
in der Datei /etc/sysctl.conf
ändern (oder hinzufügen, falls sie nicht vorhanden ist).
Lassen Sie uns wissen, wenn Sie Fragen zu Swap in Linux haben.