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.
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.
Links
- OpenVZ (englisch)
- Phoronix Test Suite (englisch)
- Ubuntu (englisch)