Hallo Freunde der Sonne,
gerade ist mir bei meinem AWS-FreeTier-Server aufgefallen, dass kein RAM schlecht, alles aber nur im Swap/Pagefile langsam ist.
Wenn man doch nur dem Kernel sagen könnte ab wann er auslagern soll – und hier kommts!
Linux – Swap-Nutzung steuern
Quelle
- Askubuntu – https://askubuntu.com/questions/157793/why-is-swap-being-used-even-though-i-have-plenty-of-free-ram
- Linuxize – https://linuxize.com/post/how-to-add-swap-space-on-centos-7/
Vorwort
Vorweg die Info – Ubuntu baut auf dem Linux-Kernel auf, nicht umgekehrt – diese Einstellung kann also auf jedem anderen Linux-System genauso gesetzt werden!
Anleitung
Setzen des Swappiness
Setzen des aktuellen Swappiness-Wertes – ab wann prozentual ausgelagert werden soll.
Bei 0 wird nicht ausgelagert, bei 100 versaut Ihr Euch das System (alles auslagern)!
Im Artikel wurde ein Wert von 10% bis voll empfohlen, Standard soll 60% sein.
sudo sysctl vm.swappiness=10
Meine Konfiguration auf dem AWS war 0, erst wenn das System nicht mehr anders kann, wird auf den Swap ausgelagert – dieser liegt dann als Datei auf dem Wurzeldateisystem. (wie die pagefile.sys in Windows)
Grund für diese extreme Einstellung ist, das der Blog alles per Puffer, Memcache etc. im RAM halten soll und nur bevor ein Absturz bevorstehen würde auslagert.
Um die Swappiness-Einstellung dauerhaft zu konfigurieren,
kann folgende Konfigurationsdatei angepasst werden: /etc/sysctl.conf
Dort dann folgendes Einfügen:
vm.swappiness=10
Wie gesagt, bei mir ist die 10 eine 0.
Erstellen eines Swap
Falls Ihr wie ich keine Swap-partition haben solltet oder diese bereits gelöscht habt, geht es eben auch als Datei auf einer vorhandenen Partition.
Im Beispiel wird eine leere Datei von 1 GB (rot) Größe angelegt mit dem Namen „swapfile“ (grün),
dann formatiert als Swap und final aktiviert und in der Startkonfiguration angelegt.
fallocate -l 1G /pfad/swapfile mkswap /pfad/swapfile chmod 600 /pfad/swapfile swapon /pfad/swapfile nano /etc/fstab
In der Datei /etc/fstab dann folgendes hinter dem Dateisystem in dem die Datei liegt hinzufügen (grün):
#
UUID=d224eff3-ac37-4a24-a33d-b499ca34c533 / xfs defaults,noatime 1 1
/pfad/swapfile swap swap defaults 0 0
Und schon findet sich der Swap auch nach dem Neustart wieder.
Überprüfen des Swap
Ob der Swap aktiv ist lässt sich über 2 Wege ideal nachvollziehen:
swapon
Mit dem Ergebnis (rot):
NAME TYPE SIZE USED PRIO
/swap file 1024M 223.3M -2
Alternativ kann auch der Taskmanager von Linux befragt werden:
top
Ergebnis (rot):
top - 16:42:22 up 1 day, 8:41, 1 user, load average: 0.01, 0.02, 0.00
Tasks: 129 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st
KiB Mem : 1007332 total, 99908 free, 604372 used, 303052 buff/cache
KiB Swap: 1048572 total, 819964 free, 228608 used. 185296 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3338 mysql 20 0 1548872 300612 5172 S 0.7 29.8 66:42.50 mysqld
Das war es auch schon wieder!