Als letzte Alternative bleibt also die Virtualisierung mittels Hardwarevirtualisierung der ersten Generation: AMD-V oder VT-x. Dabei läuft der Kernel-Code des Betriebssystems unmodifiziert ohne jegliches Patching im Ring 0. Der Hypervisor kann mit dieser Technologie bestimmte Befehle, etwa IN und OUT, trotzdem abfangen. Das ermöglicht, dass User-Mode-Programme wieder direkt Funktionen des Gastmaschinenkernels aufrufen können. Viele Kernel-Funktionen, die keinen I/O verursachen, beispielsweise Dateisystemoperationen oder Prozessinformationen wie bei getppid, laufen dadurch nahezu mit nativer Geschwindigkeit.
Ein dritter Benchmark, nämlich forkwait, zeigt, dass auch die VT-x- beziehungsweise AMD-V-Technologie mit Nachteilen behaftet ist. Ändern sich Page Tables, so muss der Hypervisor eingreifen.
Die Veränderung der Page Tables erreicht forkwait, indem es eine Million Mal einen neuen Prozess startet.
Bild 7: forkwait.c verursacht mindestens zwei Millionen Page-Table-Updates.
Bei forkwait sind die nativen Ergebnisse nur zur Information dargestellt. Da die verwendeten Rechner 4, 8 oder 24 Cores haben, ist keine Vergleichbarkeit mit den virtuellen Maschinen gegeben, die nur je über 2 Cores verfügen.
Bild 8: Ändern sich Page Tables, dann ist Hardwarevirtualisierung der zweiten Generation die einzig performante Alternative.
Bild 9: Im 64-Bit-Modus verliert AMD-V so stark, dass eine logarithmische Skalierung gewählt werden muss.
Die Benchmarks zeigen, dass AMD-V und VT-x sehr schwach performen. Binary Translation überzeugt ebenfalls nicht, da beim Anlegen und Beenden eines Prozesses viele Kernel-Funktionen aufgerufen werden. Abhilfe könnte eine Kombination von AMD-V oder VT-x mit Binary Translation schaffen. Dabei könnten Page-Table-Updates und I/O-Befehle durch Binary Translation erledigt werden, während AMD-V oder VT-x für einen performanten User-Kernel-Übergang in den Gastmaschinen sorgen. Allzu verständlich ist jedoch, dass die Virtualisierungshersteller nicht weiter in die Risikotechnologie Binary Translation investieren möchten.
RVI oder EPT liefert im forkwait-Benchmark zufriedenstellende Ergebnisse. Den Page-Table-Update erledigen die Prozessoren genauso mit Hardwareunterstützung wie den User-Kernel-Übergang.
- Virtualisierung mit Server-CPUs: Leistungsbremse inklusive
- Intels EPT schlägt AMDs RVI
- Segmentierung und Paging bremsen Speicherzugriff
- Der TLB als Abkürzung
- Hardware- oder Softwarevirtualisierung
- Risikotechnologie Binary Translation: bei Intel nicht mit 64 Bit
- Hardwarevirtualisierung der ersten Generation wenig ausgereift
- Core-2-CPUs nur eingeschränkt virtualisierungstauglich
- Auswahl der richtigen Technologie: meist nicht einfach
- Fazit
- Benchmarkergebnisse in der Übersicht
Neueste Kommentare
1 Kommentar zu Virtualisierung mit Server-CPUs: Leistungsbremse inklusive
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Story comment
A very interesting story