Genervt von Nagiosmeldungen über belegten SWAP-Speicher?
Warum zum Teufel Swappen Server, wenn noch RAM frei ist?
Bis vor einiger Zeit, haben auch wir uns diese Frage gestellt und haben auch eine Antwort gefunden:
Linux lagert Standardmäßig alles aus, was eher selten gebraucht wird, vollkommen unabhängig davon, wie viel RAM noch frei ist. Der Sinn dahinter ist der, dass so direkt genug RAM frei ist, wenn er denn mal dringend benötigt wird. Diese beschleunigt zwar Desktopsysteme, sorgt insbesondere bei Datenbankservern aber für Frust.
Linux wäre nicht Linux, wenn man dieses Verhalten nicht steuern könnte.
Über die Systemvariabl vm.swappiness lässt sich das Swapverhalten der Speicherverwaltung regeln.
Standardinstallationen (RHEL, Debian, Ubuntu) haben für die Swappiness einen Wert von 60 vorgesehen, was für Desktopsysteme okay ist.
Kommen wir zur Bedeutung des Wertes.
Die Variable kann Werte zwischen 0 und 100 aufnehmen:
- Null bedeutet: Swappe niemals, wenn es sich vermeiden lässt
- Einhundert bedeutet: Swappe alles, was aktuell nicht benötigt wird
Für Server Empfiehlt sich also immer ein Wert von Null.
Mit der folgenden Anweisung können Sie der Variablen den Wert Null zuweisen:
echo 0 > /proc/sys/vm/swappiness
Achtung: Diese Lösung ist nicht persistent, sodass nach einem Reboot der Standardwert von 60 wieder gesetzt ist.
Um die Einstellung gleich beim booten setzen zu lassen, empfiehlt es sich, das ganze in der Datei /etc/sysctl.conf einzutragen:
vm.swappiness = 0