KVM Tuning

Aus netcup Wiki
Zur Navigation springen Zur Suche springen

KVM Tuning

1. I/O Scheduler

Seit Linux Kernel 2.6.10 ist es möglich den aktuellen I/O Scheduler zur Laufzeit zu wechseln. Welcher Scheduler zur Zeit aktiv ist, zeigt folgendes Kommando:

cat /sys/block/{DEVICE-NAME}/queue/scheduler 

Um den Scheduler zu wechseln, braucht für ein Device nur folgendes durchgeführt werden:

echo noop > /sys/block/{DEVICE-NAME}/queue/scheduler

Diese Einstellung ist jedoch nicht persistent und wird bei einem Reboot wieder auf die default Einstellung zurückgesetzt. Um die Einstellungen bezüglich I/O Scheduler permanent zu ändern, muss dies bereits zur Boot-Zeit über einen Kernel-Parameter durchgeführt werden:

vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=noop"
update-grub

Reboot.

2. Virtual Memory Tweaks

/proc/sys/vm/dirty_ratio

Prozentsatz des gesamten verfügbaren Arbeitsspeichers, in dem Schreiboperationen zwischengespeichert werden können, bevor die Prozesse gezwungen werden den Puffer in der ihnen zugeteilten Zeit auf die Festplatte zu schreiben. Bei höheren Werten werden Prozesse länger zwischengespeichert, mit niedrigeren Werten wird öfter auf die Festplatte geschrieben.
Wird dieser Wert erhöht, sorgt er für eine bessere Performance, da die Daten seltener auf die Festplatte gespeichert werden. Jedoch erhöht sich dadurch das Datenverlustrisiko, wenn der Server offline geht oder sich aufhängt.

/proc/sys/vm/dirty_background_ratio

Prozentsatz des gesamten verfügbaren Arbeitsspeichers, in dem Schreiboperationen zwischengespeichert werden können, bevor sie von einem Flusher-Prozesses des Kernels im Hintergrund auf die Festplatte zurück geschrieben werden.


Um Hung-Tasks zu verhindern:

vim /etc/sysctl.conf
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
sysctl -p

3. VirtIO

Umstellung auf virtio als Netzwerktreiber:

VCP>Allgemein>Netzwerk