Swappen in eine Datei

13. November 2005

Ihr Anliegen

Sie brauchen permanent oder verübergehend mehr Arbeitsspeicher, z.B. für einen komplexen Vorgang. Sie können oder wollen aber keine neue Swappartition anlegen.

Die Lösung

Linux kann auch in Dateien swappen. Swapdateien können im laufenden System hinzugefügt und entfernt werden.

Das Vorgehen

Zunächst legen Sie eine Datei an, in die geswappt werden soll. Deren Größe bestimmt, wieviel Swapspace Sie dazugewinnen. Die Datei wird von Linux nicht automatisch vergrößert oder verkleinert. Das Anlegen geht z.B. durch Kopieren von Nullbytes aus der Datei /dev/zero mit dem Befehl dd. bs steht für Blocksize. Das M steht für Megabyte. Folgender Befehl legt eine Datei /tmp/swap.img der Größe 512 MB an:

root@linux# dd if=/dev/zero of=/tmp/swap.img bs=1M count=512

Nun müssen Sie in dieser Datei eine Swapsignatur anlegen. Dazu dient der Befehl mkswap:

root@linux# mkswap /tmp/swap.img
Swapbereich Version 1 wird angelegt, Größe 536866 KBytes

Der neue Swapspace wird eingebunden mit swapon und wird sofort aktiv:

root@linux# swapon /tmp/swap.img

Der Befehl free -m zeigt Speicher und Swapspace in Megabytes:

root@linux# free -m
             total       used       free     shared    buffers     cached
Mem:          1977       1255        721          0         79        957
-/+ buffers/cache:        219       1758
Swap:          511          0        511

Alle aktiven Swapbereiche listet swapon -s auf:

root@linux# swapon -s
Filename                         Type            Size    Used    Priority
/tmp/swap.img                    file            524280  0       -1

Der Befehl swapoff deaktiviert die Swapdatei:

root@linux# swapoff /tmp/swap.img

Danach können Sie die Datei wieder löschen:

root@linux# rm /tmp/swap.img

Hinweis:

Mit swapon aktivierte Swapdateien werden nach einem Reboot nicht automatisch neu aktiviert. Dazu müssen diese in /etc/fstab eingetragen werden.