OpenVZ: Performancevergleich

Durch Virtualisierung entsteht auch ein gewisser Overhead, der dazu führt, dass die Gast-Systeme nicht mehr so performant wie auf der gleichen Hardware ohne Virtualisierung laufen. Dieser Performanceverlust ist bei einigen Lösungen, bei denen die gesamte Hardware virtualisiert wird recht hoch. Doch wie hoch ist dieser Verlust bei einer Virtualisierung auf Betriebssystemebene wie es zum Beispiel OpenVZ bietet. Genau dies soll in diesem Artikel geklärt werden.

Allgemein

Zur Durchführung der Tests und zum Erstellen der Diagramme wurde die Phoronix Test Suite verwendet. Die Bezeichnungen der im Weiteren aufgeführten Diagramme haben folgende Bedeutung:

  • Ubuntu 8.04 LTS: hierbei handelt es sich um das System, welches direkt auf der Hardware läuft
  • Ubuntu 8.04 LTS OpenVZ: hierbei handelt es sich um das System, welches als Gast läuft

Testumgebung

Hardware

CPU:2x Intel Xeon CPU X5450
RAM:8GB
Festplatte:4x 72GB SCSI (RAID 6)
Chipsatz:Intel 5000X

Software

System:Ubuntu 8.04 LTS (64Bit)
Kernel:2.6.24-24-openvz
Test Suite:Phoronix Test Suite 2.0

Benchmakrs

Komprimierung

Bei dem ersten Test handelt es sich um eine Komprimierung mit der Programm 7-Zip. Hierbei werden die MIPS (Mega Instruktionen pro Sekunde) gemessen. Es ist deutlich zu sehen, dass der Unterschied zwischen virtualisiertem und dem "echten" System sehr gering und eigentlich vernachlässigbar gering sind.

Verschlüsselung

Da die Verschlüsselung in der Regel komplett durch die CPU durchgeführt wird und sie bei vielen Protokollen und Techniken zum Einsatz kommt, ist dies auch ein relativ wichtiger Punkt bei einem Performancetest. An dieser Stelle wird die Verschlüsselung mit OpenSSL und mit GnuPG getestet. Auch hier kann festgestellt werden, dass die Unterschiede zwischen "echter" Hardware und Virtualisierung vernachlässigbar klein sind.

Raytracing

Virtualisierte Systeme, die Raytracing durchführen, kommen meiner Meinung nach eher seltener zum Einsatz, doch an dieser Stelle geht es hauptsächlich um die CPU Performance.

Auch hier ist wieder festzustellen, dass der Performanceunterschied sehr gering ist. Eine Ausnahme ist jedoch YafRay. Bei diesem Test ist sehr deutlich zu sehen, dass das Gastsystem wesentlich länger zum berechnen des Bildes braucht. Vermutlich ist dies jedoch auf die unterschiedliche Größe des RAMs zurückzuführen, der beim Host-System 8GB und beim Gast-System nur 4GB beträgt.

Multimedia

An dieser Stelle geht es nicht um das Abspielen von Videos oder ähnlichem, sondern um das konvertieren von Videos, Audio und Bildern. Es ist zwar zu sehen, dass das Gastsystem etwas langsamer als das Host-System ist, jedoch sind die Unterschiede sehr gering.

Datenbank

Es wurden Tests mit einer SQLite und einer PostgreSQL Datenbank durchgeführt. Wie schon bei den vorherigen Tests ist zu sehen, dass die Performance des Gast-Systems nicht ganz so gut wie die des Host-Systems ist.

Festplatte

Die Geschwindigkeit beim Lesen von einer bzw. beim Schreiben auf eine Festplatte ist neben der reinen CPU Leistung ein weiterer wichtiger Faktor. Jedoch ist bei dem mit OpenVZ virtualiserten Gast-System der Performanceverlust sehr gering und teilweise gar nicht mehr vorhanden.

CPU

Als letztes noch ein paar Benchmarks die die CPU etwas stressen um zu sehen, wie sich das Gast-System in so einem Fall verhält. Auch hier ist festzustellen, dass die Performance des Gast-Systems der des Host-Systems sehr ähnlich ist.

Fazit

Es ist deutlich zu sehen, dass der Performanceverlust des Gast-Systems gegenüber dem Host-System sehr gering ist. In einigen Situationen ist dieser sogar überhaupt nicht vorhanden. Es überwiegt also deutlich der Vorteil der Virtualisierung.

Einen Nachteil gibt es bei OpenVZ trotzdem. Dadurch, dass nicht die Hardware direkt sondern nur der Kern des Betriebssystem virtualisiert wird, ist es nur möglich Linux Gast-Systeme zu betrieben.

Ein weiterer wichtiger Punkt, der in diesem Test nicht betrachtet wurde, ist die Netzwerkperformance. Hierbei gibt es jedoch zwei Möglichkeiten, entweder es wird eine virtuelle Netzwerkkarte verwendet, bei der es mit Sicherheit durch die Verwendung einer Bridge zu einem geringen Performanceverlust kommen kann. Eine zweite Möglichkeit ist, dass eine physische Netzwerkkarte direkt an das Gastsystem weitergereicht wird. Bei dieser Methode sollte kein Performanceverlust erkennbar sein.

Verwandte Artikel