Leitfaden für Einsteiger : Techniken, um virtuellen Arbeitsspeicher zu managen

Das richtige Management des virtuellen Arbeitsspeichers reduziert Performance-Engpässe virtueller Maschinen. Wir haben Tipps für den Einstieg.

Quetschen Sie viele virtuelle Maschinen (VM) auf einen einzigen physischen Server, müssen Sie den virtuellen Arbeitsspeicher gut managen. Nur so kontrollieren Sie, wie die verfügbaren Ressourcen verteilt und genutzt werden.

Zum Glück benutzt der Hypervisor diverse Techniken für das Management des virtuellen Arbeitsspeichers. Somit verhindert er Engpässe. Das beinhaltet transparentes Page Sharing, Ballooning und Arbeitsspeicher-Komprimierung.

Transparentes Page Sharing

Arbeitsspeicher wird in adressierbaren Bereichen gesammelt, die man Pages nennt. Sind diese Pages recht klein, kann es vorkommen, dass zwei verschiedene Pages die exakt gleichen Daten beinhalten. Dieser Umstand kann Probleme beim Management des virtuellen Arbeitsspeichers verursachen.

Um den Arbeitsspeicher zu konsolidieren, benutzen Hypervisoren einen Prozess, der sich transparentes Page Sharing nennt. Mithilfe dieser Technik werden Arbeitsspeicher-Pages gehasht, um damit gleiche Inhalte zu finden. Sind zwei Pages identisch, lässt die Software diese in einer einzigen Page aufgehen und referenziert darauf mit zwei Pointern. Dieser Prozess funktioniert, so lange sich die Inhalte der Pages nicht ändern. Sollte ein Schreibvorgang passieren, kopiert der Memory-Manager die Inhalte in eine neue Page und passt den Pointer entsprechend an. Danach ist der Schreibvorgang komplett.

Separation des Arbeitsspeichers der VM und des physischen Hosts

Zu den wichtigsten Techniken beim Management des virtuellen Arbeitsspeichers gehört das Erstellen eines zusammenhängenden, adressierbaren Speicher-Raums für jede virtuelle Maschine. Die VM kann diesen Adress-Raum dann für ihre Speicher-Bedürfnisse nutzen. Die verwendeten Portionen werden dann auf dem physischen Arbeitsspeicher des Hosts abgebildet. Dieser Prozess ähnelt der Erstellung eines Adress-Raums für Applikationen.

Benutzt man Adress-Übersetzung, unterscheidet sich die eigentliche Adresse des physischen Speichers der virtuellen Maschine davon, wie der Host sie wahrnimmt. Diese Abstraktion von VM- und Host-Arbeitsspeicher ermöglicht es, dass mehrere virtuelle Maschinen zur selben Zeit auf dem gleichen Host laufen können.

Hardware-unterstützte Speicher-Synchronisierung

Das ERstellen multipler Adress-Räume bringt aber nur bis zu einem bestimmten Punkt Vorteile. Je mehr Ressourcen Sie für die Kreation multipler Adress-Räume zur Verfügung stellen, desto weniger sind für die virtuellen Maschinen vorhanden. Aus diesem Grund  verwenden neuere Prozessor-Chipsätze Hardware, um einen Teil des virtuellen Speicher-Managements auszulagern. Um dies zu realisieren, werden zwei Ebenen an Page-Tabellen statt nur einer geschaffen. Die erste Schicht bildet den virtuellen Arbeitsspeicher einer VM auf den physischen ab. Die zweite ist für die Abbildung des physischen Speichers einer VM auf den physischen Arbeitsspeicher des Hosts zuständig.

Synchronisieren sich diese beiden Ebenen, optimiert dieser Vorgang das Sharing des virtuellen Arbeitsspeichers. Verwendet man für den Synchronisations-Prozess Hardware anstelle von Software, reduziert das den Ressourcen-Aufwand für das so genannte Mapping. Dadurch erhöht sich die allgemeine Performance.

Ballooning

All diese Schichten verkomplizieren das virtuelle Speicher-Management. Für einen Hypervisor ist es nun sehr schwierig, die eigentlichen Inhalte der Speicher-Inhalte von virtuellen Maschinen einzusehen. Einige Hypervisoren wissen nicht, wie viel Arbeitsspeicher eine virtuelle Maschine benötigt oder wie viel davon nicht in Benutzung ist. Somit weiß das System nicht, ob die virtuelle Maschine zu viel Speicher frisst.

Um unbenutzten Arbeitsspeicher frei zu geben, kann man eine Technik zum virtuellen Speicher-Management verwenden, die sich Ballooning nennt. Ist der Balloon-Treiber in jeder virtuellen Maschine installiert, überträgt er Engpässe vom Host zur VM. Bei den Hosts kommen Engpässe häufiger vor als bei der VM. Der Hypervisor informiert den Balloon-Treiber, wenn der Arbeitsspeicher knapp wird und fordert diesen auf, sich aufzublasen. Nun sperrt der Balloon-Treiber einen gewissen Teil an unbenutztem Arbeitsspeicher, den die virtuelle Maschine nicht verwendet.

Der Arbeitsspeicher der VM und des physischen Hosts sind aufeinander abgebildet. Sobald der Speicher gesperrt ist, kann der Hypervisor den physischen Arbeitsspeicher einer anderen virtuellen Maschine zuweisen. Dieser Prozess des virtuellen Speicher-Managements transferiert den Engpass. Jeglicher gesperrter Arbeitsspeicher darf nicht von der VM genutzt werden, bis sich der Balloon-Treiber entleert und die Sperre somit aufhebt.

Hypervisor Swapping

Sollte es zu größeren Engpässen beim Arbeitsspeicher kommen, kann der Hypervisor auch die grobe Keule auspacken. Dann würde der physische Arbeitsspeicher einer virtuellen Maschine direkt auf die Festplatte ausgelagert, was man Swapping nennt. Das Gleiche gilt natürlich für den assoziierten Speicher des physischen Hosts.

Dieser Prozess schaufelt zwar Arbeitsspeicher frei, allerdings wirkt sich Swapping extrem negativ auf die Performance aus. Beim Swapping verwenden Hypervisoren diverse Methoden, um zu entscheiden, welche Page ausgelagert werden soll. Dies kann aber auch rein zufällig erfolgen. Sollte es zu extremen Engpässen hinsichtlich Arbeitsspeicher bei der VM und dem Host kommen, lagert der Hypervisor möglicherweise eine Memory Page sowohl innerhalb des Gast-Systems als auch auf dem Host aus. Bei einigen Hypervisoren lässt sich dieser Umstand nicht vermeiden. Die Performance kann dabei erheblich in die Knie gehen.

Arbeitsspeicher-Komprimierung

Muss physischer Arbeitsspeicher auf die Festplatte ausgelagert werden, kann man dabei nur verlieren. Selbst die besten Schreib-/Lese-Geschwindigkeiten sind wesentlich langsamer, als was Arbeitsspeicher zu leisten im Stande ist. Mit dem Einsatz von Solid-State Drives (SSDs) kann man den Umstand lindern, aber nicht kompensieren. Um das Swapping zu vermeiden, hilft eine Management-Technik, die sich Speicher-Komprimierung nennt.

Mithilfe dieser Methode komprimiert man Pages, die für eine Auslagerung vorgesehen sind. Ist die Kompressions-Rate gut genug, sagen wir Zwei-zu-Eins, halbiert das die Größe der Page. Somit entscheidet sich der Hypervisor möglicherweise, die Page im Arbeitsspeicher zu behalten. Dieser Prozess verhindert vielleicht, dass das System auf Festplatte auslagern muss und unterstützt somit die Performance. Einige Pages lassen sich aber nicht sehr gut komprimieren und fallen deswegen so oder so dem Swapping zum Opfer.

Schlussendlich sollten Sie immer sicherstellen, dass ausreichend physischer Arbeitsspeicher vorhanden ist. Somit befriedigen Sie die Bedürfnisse der entsprechenden virtuellen Maschinen. Diese Herangehensweise ist immer besser als jede der hier vorgestellten Techniken des Managements virtuellen Arbeitsspeichers.

Folgen Sie SearchDataCenter.de auch auf Facebook, Twitter und Google+!

Artikel wurde zuletzt im März 2011 aktualisiert

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close