Bei der Installation eines Linux-Systems ist es schwierig, das perfekte Partitions-Layout auf Jahre im Voraus zu kennen. So wird es im Laufe der Zeit notwendig, Anpassungen daran vorzunehmen. In diesem Beitrag zeige ich Dir, wie Du sehr einfach und ohne an den Festplatten zu arbeiten den Linux swap vergrößern kannst (entspricht in etwa der Windows Auslagerungsdatei).
Im Normalfall ist bei Linux der swap eine eigene Partition. Wenn der aber nicht mehr ausreicht, weil der Server immer mehr Last zu bewältigen hat, kannst Du ihn mit Hilfe einer Datei erweitern.
Dieses Vorgehen wurde auf einem Ubuntu Server getestet, sollte aber bei allen anderen Distributionen identisch funktionieren.
Vorarbeiten
Henry (siehe Kommentare, Danke dafür!) meinte, mehr als ein swapfile pro filesystem könnte zu Problemen führen. Bevor Du deswegen in Probleme rennst, überprüf mit dem Befehl swapon –show, ob sich auf dem Ziel-Dateisystem bereits ein swapfile befindet. Falls ja, wäre das beste Vorgehen, den swap abzuschalten, zu löschen und ggfs. aus der /etc/fstab zu nehmen und ein neues der richtigen Größe angepasstes swapfile zu erstellen.
- swapon –show zeigt den Swap auf dem System und ggfs. eine vorhandene swapdatei.
- swapoff /pfad/zum/swapfile entfernt den gemounteten swap.
- rm /pfad/zum/swapfile löscht das “alte” swapfile
- Editieren der /etc/fstab analog der Überschrift “Änderung dauerhaft machen”
Ab hier geht es mit der Neuanlage weiter:
Erstellen der swap-Datei
Bevor Du die Datei erstellst, solltest Du abschätzen, wie groß sie werden soll. In meinem Beispiel erstelle ich eine 4GB große Datei.
# dd if=/dev/zero of=/Pfad/Dateiname bs=1M count=4096
Dieser Befehl erstellt eine Datei /Pfad/Dateiname gefüllt mit Nullzeichen. Die Datei ist 4096 mal 1 MB groß.
Da nur root in die Datei schreiben und aus ihr lesen darf, passe ich die Berechtigungen an:
# chmod 600 /Pfad/Dateiname
Zuordnen der Datei zum swap
Jetzt werde ich den Linux swap vergrößern. Das mache ich mit den folgenden Befehlen:
# mkswap /Pfad/Dateiname
Damit wird meine Datei als swap “formatiert”.
# swapon /Pfad/Dateiname
Dieser Befehl teilt die Datei den swapspace zu.
Änderung dauerhaft machen
Der Befehl swapon hängt die Datei wie ein Filesystem ein. Nach einem reboot oder init 6 wird die Datei aber nicht mehr eingehängt. Damit die neue swap-Datei aber nach jedem Neustart wieder als swap eingehängt wird, muss ich sie in der /etc/fstab eintragen:
/Pfad/Dateiname swap swap defaults 0 0
Änderung überprüfen
Um festzustellen, ob die Änderung stattgefunden hat, wird ein anderer Schalter des Befehls swapon verwendet:
# swapon --show NAME TYPE SIZE USED PRIO /dev/sda4 partition 4,4G 2,2G -2 /Pfad/Dateiname file 4G 0B -3
Auf der Suche nach weiteren interessanten Artikeln zum Thema Linux?
Ich finde wichtig zu erwähnen, dass
ein bereits vorhandenes swapfile z u e r s t abzuschalten ist, weil es sonst zu Konflikten kommen kann. 2 swapfiles im root-Verzeichnis, kann zu richtigen Problemen führen. Der benötigte Befehl dazu…
sudo swapoff /swapfile
Mit
free -h
kann man kontrollieren, dass die Datei auch wirklich abgeschaltet ist…
Hallo Henry,
vielen Dank für den Hinweis – ich habe den Artikel entsprechend überarbeitet!
Viele Grüße
Claudio
Coole Möglichkeit, den swap dynamisch zu erweitern ^^
Find ich auch, hat mir schon mehrmals geolfen!
geht auch eine swapdisk im RAM?
Vermutlich, aber das wäre eigentlich unsinnig. Swap ist, wenn RAM nicht mehr ausreicht 🙂
Danke, hat mir sehr geholfen 🙂
Immer wieder gerne 🙂