Performancevergleich: Xen vs. ESXi

  • Hallo,


    vor einiger Zeit hatte ich im XenServer-Thread bereits einmal das Thema Performance der Virtualisierungslösungen angeschnitten. Nach einigen Versuchen wollte ich es genauer wissen und einmal einen Benchmark machen. Leider führten synthetische Benchmarks nicht unbedingt zu plausiblen Ergebnissen. Also suchte ich nach einer Möglichkeit möglichst unter Anwendungsbedingungen zu testen. Ich kam dabei auf die Phoronix Test Suite. Das ist eine Zusammenstellung von verschiedenen Benchmarks aus verschiedenen Bereichen. Teilweise synthetisch, größtenteils aber Anwendungsbenchmarks. Das erschien mir am sinnvollsten.
    Phoronix fasst mehrere Tests zu Suiten zusammen. Ich habe also die Testsuiten Server, Encoding, Compilation, Network, Disk, Memory und Database laufen lassen. Dieser erschienen mir am zutreffendsten für einen VM-Host. Ich habe bewußt sämtliche Tests weggelassen, die sich auf die grafische Ausgabe beziehen. Dies ist in meinen Augen kein Szenario für eine Virtualisierungsplattform.


    Zum Testablauf:


    Alle Tests erfolgten auf demselben System.
    Die Hardware sieht wie folgt aus:
    - Core i5 4570
    - Board Asrock H87 Pro4
    - 8 GB RAM (2 x 4 GB Riegel)
    - 320 GB Notebook-Platte für das System, von dieser bootet aber nur der Hypervisor
    - 500 GB Western Digital Black für die VM


    Als Betriebssystem für die VM wurde ein Ubuntu Server 13.10 installiert und auf diesem die Phoronix Test Suite. Es wurde jeder Testlauf mit derselben Installation durchgeführt und nicht jedes Mal neu installiert. Zu diesem Zweck wurde die ganze 500 GB WD Black an die VM durchgereicht und darauf das System installiert. Für den Baremetal-Vergleich wurde dann einfach direkt von dieser Platte gebootet. Während des Tests lief natürlich immer nur die eine VM. Bei Xen natürlich neben der Dom0.
    Für den Xen Hypervisor wurde ebenfalls Ubuntu Server 13.10 mit Xen 4.3 genutzt. Hier wurde dann das ganze Device der WD Black (/dev/sdb) an die VM durchgereicht. Bei der Xen HVM hat Ubuntu automatisch die PV-Treiber für Netzwerk, Festplatte usw. geladen.
    Für den ESXi Hypervisor wurde ESXi 5.5 genutzt. Hier wurde von der WD Black ein RDM erzeugt und dieses an die VM durchgereicht. Das ist im Prinzip das Äquivalent zum Durchreichen des Devices unter Xen. Allerdings hängt hier immer noch der ESXi bei den Zugriffen dazwischen. Bei Xen bekommt die VM dann direkten Durchgriff auf die Platte.


    Da die Phoronix Test Suite die Ergebnisse als Website zur Verfügung stellt, habe ich das einfach mal auf meinen Webspace gestellt. Die Ergebnisse sind hier einsehbar.


    Es gibt dabei mehrere Ausreißer, die ich mir wie folgt erkläre:
    Beim IO-Zone Benchmark ist die echte Maschine unplausibel viel schneller als die VMs. Das dürfte am Hauptspeicher liegen. Die physische Maschine hatte volle 8GB während die VMs nur 4 GB zur Verfügung hatten. Da das Testfile 4 GB groß ist passt es bei der physischen Maschine komplett ins RAM und damit ist der Test viel schneller. Leider konnte ich das nicht vermeiden, da ich keine 4 GB RAM in zwei Modulen hier habe. Wenn ich von den 8 GB einen Riegel raus nehme, dann ist die physische Maschine bei allen RAM-Tests nur noch halb so schnell, weil es dann kein Dual-Channel mehr gibt.


    Die anderen Ausreißer betreffen ESXi. Der ist bei einige Filesystemtests und beim SQL-Benchmark sogar schneller als die physische Maschine, was ja nicht sein kann. Ich gehe davon aus, das ESXi die Plattenzugriffe puffert und somit die Zugriffe nicht bis auf die Platte gehen. Das ist natürlich schneller.


    So, dies waren nun die Unschärfen.


    Bei den meisten Tests liegen die Systeme überraschend dicht beieinander. Oft im Bereich der Messtoleranz. Für mich überraschend ist, das XenPV in vielen Bereichen keinen Vorteil gegenüber XenHVM mit PV-Treibern hat. In wenigen Bereichen bringt XenPV einen Vorteil. In überraschend vielen schneidet XenPV aber sogar schlechter ab als XenHVM.
    Abgesehen von den Ausreißern schneidet ESXi in vielen Bereichen gleich ab wie XenHVM. Teilweise etwas schlechter, wobei es nicht gravierend ist.
    In vielen Bereichen haben die VMs kaum Performancenachteile gegenüber der physischen Maschine.


    Mein Fazit:
    Man kann eigentlich kaum einen klaren Sieger ausmachen. Wenn man nicht spezielle Anforderungen hat dürfte es in der Praxis kaum eine Rolle spielen welchen Hypervisor man nutzt.