KVM Tuning
Inhaltsverzeichnis
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