Den Swap benötigt Linux um bei Engpässen im RAM Speicherbereiche auf die Festplatte auszulagern. Dieses Feature erlaubt uns trotz vollen RAMs weitern Speicher zu nutzen. Die Auslagerung in den Swap bringt aber enorme Geschwindigkeitsverluste mit sich da der Zugriff im RAM um ein Vielfaches schneller geht als auf der Festplatte.
Für den Swap wird in der Regel bei der Installation eine extra Partition angelegt. Steht eine solche Partion nicht zur Verfügung oder wurde diese zu knapp bemessen können wir auch eine Datei für die Auslagerung benutzen.
Tip – vServer Speicher erhöhen
Ich nutze diese Funktion hauptsächlich um meine Test-vServer etwas aufzubohren. Ich ich miete mir dazu einen kleinen vServer mit 512MB für wenig Geld. Diese vServer werden in der Regel ohne eigene Swap-Partition bereitgestellt und bekommen dadurch etwas mehr Speicher. Der Swapspeicher reicht dort völlig.
Es geht mir dabei primär darum nicht gleich einen OOM(out of memory)-Kill auszulösen wenn ich mal etwas mehr Speicher brauche. Den Performanceverlust nehme ich beim Testen gern in Kauf.
Weiterhin ist zu beachten, dass dies nur bei Servern mit KVM oder ähnlicher Virtualisierung funktionert. Bei containerbasierter Virtualisierung wie openVZ oder LXC funktioniert dieser Trick leider nicht.
Swapdatei erstellen
Zuerst erstellen wir uns ein Verzeichnis in das wir unseren Swap ablegen wollen.
mkdir /var/cache/swap
Dann erzeugen wir eine Datei in der Größe unser Auslagerungsdatei. Hinter dem Parameter count= geben wir die gewünschte Größe in Megabyte an. In diesem fall sind es 4GB
dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=4096
Anschliessend passen wir noch die Rechte entprechend an.
chmod 0600 /var/cache/swap/swap0
Um den Swap zu nutzen müssen wir diese voher noch formatieren. Dies geschieht mit folgendne Befehl.
mkswap /var/cache/swap/swap0
Nun hängen wie unser Swapdatei als Swap in das System ein. Dazu ist kein Neustart erforderlich.
swapon /var/cache/swap/swap0
Wenn alles korrekt gemacht wurde verfügt unser System nun über 4GB Swap-Speicher.
Um die Swapdatei gleich beim Systemstart zu aktivieren müssen wir diese noch in unser fstab eintragen.
vi /etc/fstab
Dort fügen wir diesen Eintrag hinzu.
/var/cache/swap/swap0 none swap sw 0 0
Auf der Wikipedia-Seite zu Swapping wird das Thema nochmal ganz anschaulich anhand eines kleinen Videos erklärt. Weiterhin bietet die Manpage von swapon noch ein paar Infos.
Ein Kommentar