James Thew - Fotolia
Arbeitsspeicher in einer virtuellen Umgebung optimieren
Neben der Zuweisung von ausreichend Arbeitsspeicher für jeden Workload können Administratoren auch verschiedene Speicher-Management-Techniken einsetzen.
Es gibt im Wesentlichen zwei Möglichkeiten, Arbeitsspeicherressourcen in einer virtuellen Umgebung zu optimieren: Man wählt die richtige Menge an Arbeitsspeicher, um eine virtuelle Maschine (VM) auszuführen, und aktiviert die entsprechenden Funktionen, die den Speicherverbrauch für Workloads und Server optimieren.
Zunächst sollte man ausreichend Arbeitsspeicher für die Workloads zur Verfügung stellen. Zu wenig Arbeitsspeicher führt dazu, dass das System Auslagerungsdateien verwenden muss und die Leistung erheblich beeinträchtigt wird.
Es ist besser, zu viel Arbeitsspeicher bereitzustellen als zu wenig. Überschüssiger Speicher kann vom Gast-Betriebssystem für das Dateisystem-Caching verwendet werden, und einige Hypervisoren können den Cache für Workloads wieder beanspruchen, wenn der Arbeitsspeicherbedarf steigt. Eine übermäßige Speicherzuweisung kann jedoch auch zu einem unerwünschten und unnötigen VM-Arbeitsspeicher-Overhead führen.
Interessanterweise sind Speicherressourcen häufig der entscheidende Faktor bei der VM-Bereitstellung. Das bedeutet, dass einem Server die physische Arbeitsspeicherkapazität ausgeht, bevor die Prozessorleistung ausgeht.
Während CPUs nicht einfach überlastet werden können, wird Speicher auf virtualisierten Systemen dagegen häufig überlastet. Eine Überlastung (Overcommitting) des Arbeitsspeichers funktioniert, da die meisten Workloads unterschiedliche Mengen an Speicherauslastung aufweisen und selten die maximale Menge des allokierten Arbeitsspeichers einsetzen.
Arbeitsspeicher-Management-Techniken
Folglich können verschiedene Speicher-Management-Techniken verwendet werden, um den physischen Speicher, der einer VM zur Verfügung gestellt wird, dynamisch zu reduzieren. Zum Beispiel stellt VMware ESXi 6.0 und höher fünf verschiedene Techniken zur Optimierung des Speichers zur Verfügung: Page Sharing, Arbeitsspeicherrückgewinnung (Memory Ballooning), Arbeitsspeicherkomprimierung (Memory Compression), Swap-to-Host-Cache und Swapping.
Administratoren können eine oder mehrere dieser Techniken verwenden, um die Speichernutzung zu verbessern und um zusätzliche VMs auf dem Server zu unterstützen, ohne dass man das System mit mehr physischen Arbeitsspeicher versorgen muss.
Gemeinsame Nutzung von Speicherseiten (Page Sharing)
Page Sharing funktioniert, da VMs häufig redundante Inhalte enthalten, die in Speicherseiten gespeichert sind. Zum Beispiel haben identische Betriebssysteme oft Speicherseiten – kleine Teile des physischen Speichers –, die redundante Inhalte enthalten. Ohne die gemeinsame Nutzung von Seiten (Page Sharing) müsste der Speicher jede Instanz des redundanten Inhalts aufnehmen.
Wenn Page Sharing aktiviert ist, kann eine VM eine einzelne Kopie dieser redundanten Speicherseiten verwenden. Es ist möglich, dass Page Sharing sowohl mit einer einzelnen VM arbeitet – das Aussortieren redundanter Speicherseiten innerhalb des von einer einzelnen VM verwendeten Speicherplatzes – als auch über VMs hinweg funktioniert, so dass praktisch alle VMs die redundanten Speicherseiten gemeinsam einsetzen können. Man sollte sich Page Sharing als eine Art von Datendeduplizierung für virtualisierten Arbeitsspeicher vorstellen.
Arbeitsspeicherrückgewinnung (Memory Ballooning)
Memory Ballooning ist eine Technik, die verwendet wird, um Speicher mit niedriger Priorität freizugeben, wenn die VM nahe daran ist, ihren gesamten allokierten Speicher zu nutzen, aber nur noch wenig freien Speicher auf dem Host-System vorhanden ist, um ihn zur VM hinzuzufügen.
Wenn der Speicherplatz niedrig ist, werden die am wenigsten wichtigen Speicherseiten vom Hypervisor gelöscht. Der Inhalt wird nicht verworfen, sondern in vorhandenen Swap-Speicher (Memory Page Swap), eine Auslagerungsdatei, verschoben. Dadurch können Seiten wiederhergestellt und bei Bedarf wiederverwendet werden.
Disk Swapping
Eine weitere Möglichkeit zur Optimierung des Arbeitsspeichers ist die Verwendung der Disk-Swap-Funktionen. Disk-Swapping-Techniken (Speicherseitentausch) sind für eine zuverlässige Workload-Leistung von entscheidender Bedeutung, da sie Festplattenplatz als Ergänzung für fehlenden physischer Arbeitsspeicher verwenden. Allerdings ist Disk Swapping weitaus langsamer als der Arbeitsspeicherzugriff und übermäßiges Disk Swapping kann sich spürbar auf die Workload Performance auswirken.
Moderne Server können genügend physischen Arbeitsspeicher integrieren, um Disk Swapping zu umgehen. Allerdings kann der Bedarf für die Optimierung der Systemauslastung dazu führen, dass Disk Swapping weiterhin Plan B bleibt. Wenn Disk Swapping weiterhin erforderlich ist, kann die Arbeitsspeicherkomprimierung die Anzahl der auszulagernden Speicherseiten reduzieren und so die Performance-Auswirkungen des Disk Swapping reduzieren. Die Arbeitsspeicherkomprimierung führt in der Regel zu weniger Overhead als Disk Swapping.
Typischerweise werden für Disk Swapping konventionelle Festplatten (HDD) verwendet. Allerdings sind HDDs notorisch langsam, was erhebliche Leistungseinbußen für Anwendungen verursacht, die Disk Swapping einsetzen.
Administratoren können hochleistungsfähige Host-Cache-Speicherreservoirs auf Solid-State Drives (SSD) erstellen und den Host-Cache als Swap-Ziel verwenden. Die Swap-to-Host-Cache-Funktion sorgt für eine weitaus geringere Latenz und geringere Auswirkungen auf die Workloads. Wenn ein Swap-to-Host-Cache nicht verfügbar ist oder nicht konfiguriert wurde, wird der Hypervisor auf eine Speicherseite (Auslagerungsdatei) auf der lokalen Festplatte wechseln.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!