ESXi virtualisiert den physischen Arbeitsspeicher des Gasts, indem eine zusätzliche Ebene der Adressübertragung hinzugefügt wird.
- Der VMM verwaltet die kombinierten Zuordnungen von virtuellen Seiten zu Maschinenseiten in den Schattenseitentabellen. Die Schattenseitentabellen werden auf dem neuesten Stand der Zuordnungen von virtuellen Seiten zu physischen Seiten des Gastbetriebssystems und der vom VMM verwalteten Zuordnungen von physischen Seiten zu Maschinenseiten gehalten.
- Der VMM fängt Anweisungen virtueller Maschinen ab, die die Verwaltungsstrukturen für die Arbeitsspeicher des Gastbetriebssystems manipulieren, sodass die eigentliche Arbeitsspeicherverwaltungseinheit (MMU) des Prozessors nicht direkt durch die virtuelle Maschine aktualisiert wird.
- Die Schattenseitentabellen werden direkt durch die Paging-Hardware des Prozessors verwendet.
- Die Aufrechterhaltung der Kohärenz der Schattenseitentabellen bedeutet einen beachtlichen Berechnungs-Overhead. Dieser Overhead ist höher, wenn sich die Anzahl der virtuellen CPUs erhöht.
Nach der Einrichtung der Schattenseitentabellen, ermöglicht es dieser Ansatz der Adressübertragung, dass normale Arbeitsspeicherzugriffe innerhalb der virtuellen Maschine ohne zusätzlichen Adressübertragungs-Overhead erfolgen können. Da der TLB (Translation Look-aside Buffer) auf dem Prozessor direkte Caches der V2M-Zuordnungen (Virtual-To-Machine) erstellt, die er aus den Schattenseitentabellen abliest, wird durch den VMM für den Arbeitsspeicherzugriff kein zusätzlicher Overhead hinzugefügt. Beachten Sie, dass für Software-MMU höhere Overhead-Arbeitsspeicheranforderungen als für Hardware-MMU gelten. Daher muss der maximal für virtuelle Maschinen unterstützte Overhead im VMkernel erhöht werden, damit Software-MMU unterstützt werden kann. In bestimmten Fällen bietet die softwarebasierte Arbeitsspeichervirtualisierung möglicherweise Leistungsvorteile gegenüber der hardwaregestützten Methode, falls die Arbeitslast eine große Anzahl von TLB-Fehlern beinhaltet.
Überlegungen zur Leistung
Die Verwendung von zwei Seitentabellensätzen hat folgende Auswirkungen auf die Leistung.
- Bei normalen Zugriffen auf den Gastarbeitsspeicher tritt kein Overhead auf.
-
Für die Arbeitsspeicherzuordnung innerhalb einer virtuellen Maschine ist in folgenden Situationen zusätzliche Zeit erforderlich:
- Das Betriebssystem der virtuellen Maschine richtet Zuordnungen von virtuellen zu physischen Adressen ein oder aktualisiert diese.
- Das Betriebssystem der virtuellen Maschine wechselt zwischen zwei Adressbereichen (Kontextwechsel).
- Genau wie bei der CPU-Virtualisierung hängt der Overhead der Arbeitsspeichervirtualisierung von der Arbeitslast ab.