Welche Leistung ist bei hoher CPU- und Speicherauslastung auf den virtuellen Servern Xen oder VirtualBox besser?
Welche Leistung ist bei hoher CPU- und Speicherauslastung auf den virtuellen Servern Xen oder VirtualBox besser?
Xen bietet im Allgemeinen eine viel bessere Leistung als VirtualBox, da VirtualBox das Gastbetriebssystem so ausführt, dass das Gastbetriebssystem nicht weiß, dass es in einer virtuellen Umgebung ausgeführt wird. Oder anders ausgedrückt: Das Gastbetriebssystem ist nicht so geändert, dass es virtuell ausgeführt werden kann. Aus diesem Grund muss VirtualBox Anweisungen zum Kerneltyp abfangen, benutzerdefinierten Code ausführen und dann die Kontrolle an den Gast zurückgeben. Es kann die von Intel und AMD bereitgestellte Hardware-Virtualisierungsunterstützung verwenden, aber selbst dann summiert sich der Overhead.
In der Zwischenzeit stellt Xen sicher, dass das Gastbetriebssystem neu kompiliert wird, damit es in das Xen-Modell passt. Die Steuerung fließt also reibungslos vom Gastbetriebssystem zum Hypervisor, ohne dass Sie den Aufwand haben müssen, so zu tun, als hätte das Gastbetriebssystem direkten Zugriff auf die Hardware.
In diesem Bericht finden Sie eine Übersicht über einige Virtualisierungstechnologien, einschließlich Daten aus Leistungstests . Es wird nur über Linux gesprochen, aber es werden Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox und QEMU behandelt. Linux-Vserver und Xen zeigten im Allgemeinen die besten Ergebnisse. Lesen Sie jedoch den Bericht, um die verschiedenen Workloads zu sehen.
Nach alledem kann es einige Bereiche geben, in denen VirtualBox Xen übertrifft. Wenn Ihr Gastbetriebssystem über eine grafische Fensterebene verfügt, bietet VirtualBox eine gute Unterstützung dafür, insbesondere wenn Sie einige spezielle VirtualBox-Komponenten im Gastbetriebssystem installieren.
Und schließlich sollten Sie sich bewusst sein, dass Xen nur ein modifiziertes Gastbetriebssystem ausführt. Es kann kein unverändertes Gastbetriebssystem ausgeführt werden.
Die Antwort von Hamish Downer ist in ihrem letzten Punkt falsch. Xen kann unveränderte Gäste ausführen, sie müssen jedoch als vollständig virtualisierte HVM-Gäste ausgeführt werden. Dazu muss der Host-Computer Hardware-Virtualisierungsunterstützung mit Intel VT- oder AMD-V-fähigen CPUs bieten.
Xen und Virtualbox haben jeweils einen Platz, aber es handelt sich um zwei verschiedene Arten von Hypervisoren. Xen ist ein Hypervisor vom Typ 1, während Virtualbox ein Hypervisor vom Typ 2 ist. Typ-1-Hypervisoren sind in der Regel das, was Sie in Serverumgebungen finden, in denen Typ-2-Hypervisoren häufiger für die Ausführung mehrerer Betriebssysteme verwendet werden, mit denen Sie als Desktops interagieren. Ich denke, das liegt hauptsächlich an ihrer Einfachheit und besseren Desktop-Integration. Gäste unter einem Typ-2-Hypervisor sind jedoch weiter von der zugrunde liegenden Hardware entfernt und tendenziell langsamer als Gäste unter einem Typ-1-Hypervisor. Wie bei allem wird es immer eine Ausnahme von der Regel geben.
quelle
Ich kann nur über Xen sprechen, da ich Virtualbox bisher nur zum Virtualisieren eines Windows-Computers auf meinem Mac-Desktop verwendet habe.
Wie bereits erwähnt, verwendet Xen (und XenServer, das auf Xen basiert) paravirtualisierte Kernel, die die Leistungsmerkmale von CPU und Speicher erheblich verbessern. Dies gilt jedoch nur für Linux-Hosts mit speziellen Kerneln. Sie benötigen einen Xen- "aktivierten" Kernel, um dies nutzen zu können.
Außerdem unterstützt Windows die Virtualisierung auf diese Weise nicht, aber die Intel VT- und AMD-V-Erweiterungen auf ihren jeweiligen CPUs "fangen" Windows und verhalten sich paravirtualisiert. Windows 2003 und Windows 2000 wissen nie, dass sie virtualisiert ausgeführt werden, während Windows 2008 dies erkennt und im sogenannten "aufgeklärten" Modus ausgeführt wird, der mit dem "paravirtualisierten" Linux-Modus verglichen werden kann.
quelle