[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: KVM - RAM Cache begrenzen & KSM



Hallo,

David Raab <debian@david-raab.de>:

>Kann hier jemand empfehlen wie man KSM
>automatisch beim Booten startet ohne jedesmal "echo 1 >
>/sys/kernel/mm/ksm/run" einzugeben? Über syctl kann ich den wert nicht
>setzen wodurch ich denke das ein eintrag in sysctl.conf keine auswirkung
>hat.

Richtig. Mit sysctl kann man nur Variablen setzen, die im virtuellen
Filesystem unter /proc/sys gemappt sind.

>Eventuell weiß hier jemand wo man sonst soetwas eintragen kann
>bevor ich ein eigenen startup skript dafür generiere?

Ich würde das in die /etc/rc.local eintragen.

>Ansonsten zu der eigentlichen Frage wegen des Overcommiten. Linux selber
>nutzt ja aggressiv den Cache. In der regel wenn das System länger
>benutzt wird, ist der Cache vollständig ausgenutzt. Wenn man nicht
>Virtualisierten Server hat finde ich das verhalten ja ganz richtig, den
>dafür ist RAM ja nunmal da. In der Virtualisierten Umgebung bedeutet es
>aber das wenn ich einer VM 2 Gigabyte RAM zuteile diese früher oder
>später auch 2 Gigabyte nutzen wird, und das primär
>vom RAM des Host Systems.

>Ich persönlich finde es aber etwas ungeschickt
>das der ganze RAM für den Cache der VMs verloren geht, und das Host
>System zu swappen anfängt.

Der Cache geht nicht verloren. Wenn die Anwendungen mehr Speicher brauchen,
entscheidet der Kernel, ob entweder Anwendungsteile ausgeswappt oder der
Cache stückweise freigegeben werden soll.

Wie aggressiv der Swap genutzt werden soll, kann man mit der
"Swappiness" (sysctl vm.swappiness) festlegen. Das ist ein Wert in
Prozent zwischen 0 und 100. Bei Linux steht er standardmässig auf
60, was für Desktop-Systeme ein guter Kompromiss ist.

Bei Datenbankservern, wo sich die Software selber um das Caching
kümmert (z.B. MySQL mit InnoDB Tabellen) wird häufig empfohlen, die
Swappiness auf 0 zu setzen.

>Daher die Idee/Frage ob man den Cache den ein Linux System maximal
>nutzen kann, begrenzen kann. So würde ich gern zum Beispiel den Cache
>einer VM auf 200 oder 400 Mbyte begrenzen (als beispiel) so das das Host
>System mehr echten RAM Speicher für andere VMs zur verfügung hat und der
>ganze RAM nicht für Cache verloren geht.

Eine statische Begrenzung des Caches ist meines Wissens nicht möglich.
Aber mit einer niedrigen Swappiness erreichst du den gewünschten Effekt.

Gruß, Harald


Reply to: