Nachdem ich es mich jetzt schon etwas länger gestört hat, dass auf einer Linux Maschine immer 150-200 MB ausgelagert wurden obwohl noch 50% des RAMs frei wahren, hab ich mich nun mal ein bisschen mit dem Swap Management unter Linux beschäftigt.
Da es im Internet genügend Artikel dazu gibt, hier der für mich interessante Teil. Ab Kernel 2.6 kann über /proc/sys/vm/swappiness angegeben werden, wann das System anfangen soll auszulagern. Der default Wert ist 60:
~ cat /proc/sys/vm/swappiness ~ 60
Die dieser Wert von 0-100 geht, liegt die Vermutung nahe, dass es sich hier um Prozentwerte handelt. 60 bedeutet also, dass bei weniger als 60% freiem RAM das System anfängt auszulagern. Diesen Wert kann man beliebig ändern.
echo -n "10" >/proc/sys/vm/swappiness
Ich habe jedoch festgestellt, dass einmal geswappte Daten nach der Änderung des Wertes nicht zurück in den RAM verschoben werden. Also sollte der Wert schon beim Systemstart festgelegt werden. Damit dieser dann auch einen Reboot übersteht kann in der /etc/sysctl.conf eine Zeile ergänzt werden.
echo "vm/swappiness=10" >> /etc/sysctl.conf
Für mich hat sich heraus gestellt, dass 10 (%) für meine Systeme ein guter Wert für die Swappinggrenze ist.
Weitere Informationen zum Thema „swap“ sind hier zu finden.