KVM vs. Xen - Load

Diggo

Cadet 4th Year
Registriert
Jan. 2012
Beiträge
78
Hi,

ich suche schon seit längerem, aber ich kann leider keine guten aussagekräftigen Seiten zu dem Thema finden.

Folgendes Szenario:
Ich habe einen Xenserver und einen KVM Server. Der KVM Server hat die mordernere Hardware und ist etwas schneller. (Hetzner EQ4 vs EX4).

Beide Maschinen machen das gleiche, jedoch ist auf der Dom0 des Xenserver kaum eine Load bemerkbar, auf dem KVM System hingegen geht das ganze hoch bis Load 12 und idlet im Idealfall bei 2.

Ist´s möglich, dass KVM in die Load mit reinspielt, weil das ganze als Linuxprozess läuft und Xen sich da anders verhält, weil der Hypervisor nicht über den Linuxkernel in die Load mit reinspielt?
 
HI

Du vergleicht hier gerade Äpfel mit Birnen...



Unter KVM siehst du die Last (load) von der Domäne, dem Hypervisor und allen Virtuellen Maschienen (im Idle)

Unter XEN siehst du nur die Last der DomU da der Hyperviser ja darunter liegt...

Im Idle sollte KVM sogar weniger Last verursachen, da der Hypervisor ja im Kernel integriert ist und es also zu weniger Kontextwechseln kommt.

Es kann natürlich sein, dass du auch noch dinge wie KSM oder HugepageCoalessing aktiviert hast, das die Last natürlich künstich erhöht.

Aber letztendlich ist doch die LEistung unter Last und nicht im Idle interessant...
 
Danke für die Antwort :)

Jo KSM ist an, ohne dass wäre noch weniger los.
Ja ich habe mich missverständlich ausgedrückt. Im wesentlichen ist der Gedanke der gleiche gewesen (glaube ich). Bei KVM sehe ich wirklich die Last und in der XenDom0 sitze ich ja bereits in einer virtuellen Schicht drin, von der aus ich dann halt die DomU beherrsche.
Ist´s so ungefähr richtig?

Bei KVM bleibe ich, mir war nur dieser Punkt aufgefallen. Wenn man virtio, raw und caching ordentlich einstellt, kommt mir KVM insgesamt jetzt runder vor, als der doch schon ältere Xensetup.
 
Bei KVM sehe ich wirklich die Last und in der XenDom0 sitze ich ja bereits in einer virtuellen Schicht drin, von der aus ich dann halt die DomU beherrsche.
Ist´s so ungefähr richtig?

Ja genau so

Bei KVM ist der Leinux Kernel ja der Hypervisor.

Das hat natürlich auch sicherheitsrelevante Konsequenzen. Auf der Bare-Metal Maschiene sollten keinerlei services ausgeführt werden. vor allem keine Netzwerk Services. Am besten ist die Maschiene gar nicht direkt ansprechbar - und die ethernet schnitstelle wird direkt an ne Firewall VM durchgereicht.

So ganz halte ich mich aber da nie dran - ich lasse da noch ein paar sehr hardware nahe Dienste laufen. Typische Beispiele sind smartmontools, lm-sensors, dmraid, swap und natürlich KSM und ZRAM usw.

Noch ein Hinweis zu KSM und ZRAM. Die verursachen zwar durchaus messbare Last, aber nur wenn die maschiene eh idelt oder wenn der Speicherdruck zu nimmt. Sie Tauschen also CPU gegen Speicher genau wenn man es braucht ;)
Swap sollte am besten nur auf dem Bare Metal verfügbar sein - dann wird immer die VM Geswappt die eh am wenigsten mit dem Speicher anfangen kann.
Dadurch kann man je nach Situation durchaus gut die doppelte menge des verfügbaren Speichers an Speicher an die VMs geben.

Beispiel:
Verfügbar 16GB
Angelegt 8 VMs mit je 4GB RAM

(geht natürlich am besten, wenn die OS gleich sind --> KSM voll zuschlagen kann :D

PS:
Dadurch das der Linux Kernel der Hypervisor ist wird natürlich auch dessen top Prozessmanagement genutzt -> KVM fühlt sich meist etwas interaktiver an wenn die Resourcen knapp werden.
 
Kurze Zwischenfrage:

Ich höre immer wieder von KVM. Ist KVM eine Technologie, eine Marke oder ein spezielles Produkt. Wohin gehört die Virtualisierungslösung OpenVZ? Da dort ja der Kernel des Hostsystems genutzt wird, sollte es sich dabei um einen Kernel Virtualisierungs Mechanism handeln. Richtig?
 
Ich versuch´s mal. Crossblade kann mich dann ja korrigieren ;)

KVM ist kurz für Kernel-based Virtual Machine. Der Name sagts im Prinzip schon:
der Hypervisor steckt hier im Kernel mit drin. Dabei wird ein Feature (Vanderpool bei AMD Pacifica) im Prozessor genutzt um die Virtualisierung umzusetzen. D.h. deine DomU´s booten einen eigenen Kernel, der in der virtuellen Umgebung läuft.
Wenn ich OpenVZ richtig verstanden habe, ist das eher ein Containersystem. D.h. die dortigen Container haben keinen eigenen Kernel am laufen, sondern nutzen den Kernel der "Dom0" mit. Das würde auch erklären, warum man z.B. mit OpenVZ nach meinem Wissen kein Windows laufen lassen kann. Solange Du homogen nur Linuxvirtualisierungen machen willst, kommt aber OpenVZ in Frage, weil es wegen dieses Prinzips nur geringen Overhead gibt.
 
Ja ist genau richtig

OpenVZ ist eine Platformvirtualisierung und keine Hypervisorbasierte. Dadurch hat man natürlich weniger overhead - ist also theoretisch schneller.
Aber
1. Laufen nur gan bestimmte anwendungen
2. Liegt (im vergleich zu KVM und XEN) keine Trennung auf Hardwareebne vor und Prozesse konnen zumindest theoretisch aus ner VM ausbrechen
 
Zuletzt bearbeitet:
Zurück
Oben