Linux: Speichermanagement tunen - Swappiness ändern
Das Linux Speichersystem ist ein hochkomplexes Gebilde dass sich aber trotzdem mit ganz simplen Problemen herumschlagen muss.
Eins davon ist: Was mach das System wenn der Arbeitsspeicher voll ist?
Dem System stehen meist zwei Lösungen zur Verfügung um Platz zu schaffen:
- Es löscht alte Cache Daten aus dem Arbeitsspeicher
- Es verschiebt wenig genutzte Teile des Arbeitsspeichers in die Swap-Partition auf der Festplatte.
Wie sich Linux entscheidet lässt sich ab Kernel Version 2.6 beeinflussen. Es gibt dazu einen Wert namens 'swappiness', dieser kann Werte zwischen 0 und 100 annehmen. Standard ist meist 60.
Was hat dieser Wert zu bedeuten?
Mit diesem Wert kann man beeinflussen für welche Lösung sich Linux entscheidet. Ein Wert in Richtung 0 wird Linux anweisen möglichst alten Cache zu löschen und die Swap-Partition nicht zu benutzten.
In die andere Richtung zur 100 hin sollte das Auslagern auf Festplatte bevorzugt werden.
Wie kann ich den Wert ändern?
Die aktuelle swappines anzeigen:
60
Neue swappiness setzten:
Achtung! damit die Einstellung auch nach Reboots bestand hat schreibt man folgendes in die /etc/sysctl.conf
Wo ist der Unterschied?
Der Unterschied liegt ganz klar in der Geschwindigkeit.
Während der Arbeitsspeicher mit einer enormen Geschwindigkeit angesprochen werden kann muss erst mechanisch auf die Festplatte zugegriffen werden. Je nach Einsatzgebiet des Rechners kann das teils fatale Folgen haben.
Beispiele:
- Linux Desktoprechner
Dieser Rechner muss meist keine Höchstleistungen vollbringen, sondern effektiv arbeiten. Dass heisst auch dass bei vielen Programmen viel Arbeitsspeicher gebraucht wird. Ob dann die langsamere Swap-Partition zum auslagern genutzt wird spielt da keine große Rolle und kann bei vielen verstreuten Programmdateien auch Vorteile haben.
- Linux Datenbankserver
Ein dedizierter Datenbankserver macht genau dass wonach sich sein Name anhört, arbeiten, arbeiten, arbeiten. Jede Datenbankabfrage sollte immer möglichst schnell beantwortet werden. Arbeitsspeicher ist kostbar und sollte nicht unnütz verschwendet werden. Wenn die Festplatten des Server, welche eh schon stark frequentiert sind, auch noch mit auslagern von Arbeitsspeicher gequält werden, kann das fatal sein. In diesem Fall spricht man von 'swappen' - und wenn ein Server damit anfängt, dann sollte man Ihm getrost mehr RAM schenken und/oder alles unnütze aus diesem löschen.
Fazit:
Der Desktoprechner sollte eher in Richtung >50 tendieren und der Server <50.
Je nach Anwendungszweck kann das aber variieren.
No related posts.


[...] [...]
[...] [...]
[...] [...]
Wunderbare Erklärung. Warum auch immer ich mir die Pfade nicht merken kann :-)
Ich kann mir die Pfade meist auch nicht merken, darum schreib ichs mir hier auch auf :)