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

KVM - RAM Cache begrenzen & KSM



Hallo zusammen,

ich bin gerade dabei eine Virtualisierungsumgebung auf KVM aufzubauen.
Derzeit kümmere ich mich um den RAM Verbrauch der Virtuellen Maschienen.
Wie bekannt sein sollte kann man mit KVM ja overcommitten, bzw. KVM
lässt die Virtuellen Maschienen als ganz normalen Prozess laufen und das
Host system kümmert sich um den verbrauch ob es nun im RAM, swap oder
ähnliches läuft.

Derzeit habe ich auf dem Host System KSM aktiviert das es doch erlaubt
mehrere Gäste laufen zu lassen. 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. Eventuell weiß hier jemand wo man sonst soetwas eintragen kann
bevor ich ein eigenen startup skript dafür generiere?

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. Das macht das ganze Prinzip des
"Overcommiten" auch zunichte, da man praktisch sowieso nie mehr RAM
zuteilen darf als man hat, sonst werden eventuell VMs zu langsam da
dessen RAM im Swap Bereich auf dem Host System liegt.

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.

Ich hoffe ich habe mein Anliegen soweit verständlich ausgedrückt. Würde
mich freuen wenn jemand hierzu eine Lösung weiß oder wie er generell mit
dem RAM Verbrauch/Overcommit umgeht.


Reply to: