cherezoff - stock.adobe.com

So wählen Sie die beste CPU für die Virtualisierung

Die Workloads, die in einer virtuellen Umgebung laufen sollen, bestimmen, welche CPU und welche Konfiguration sich am besten für diese Virtualisierungsumgebung eignet.

Die Auswahl einer CPU für die Virtualisierung und ihre richtige Konfiguration sind genauso wichtig wie die Auswahl des Memory, des Storage und der Netzwerkressourcen; ein Prozessor, der für die gegebene Infrastruktur nicht sinnvoll ist oder falsch konfiguriert wird, kann die drei anderen Komponenten negativ beeinflussen.

Die Leistung der virtuellen Maschinen hängt ebenfalls weitgehend von der angemessenen Konfiguration von CPU, Memory, Storage und Netzwerkressourcen ab. Prozessorressourcen sind oft zu groß und mit mehr aktiviertem Hyper-Threading, einem Parallelisierungsmechanismus, ausgerüstet, als der Leistung gut tut. Als erstes muss man allerdings eine bedarfsgerechte CPU auswählen – erst danach geht es um die optimale Konfiguration nach in der Praxis bewährten Regeln.

Die Entscheidung für eine bestimmte CPU hängt neben den Kosten stark von den dort laufenden Workloads ab: Einige Prozessoren können das Memory-Management besser optimieren, andere unterstützen I/O-Devices besser.

Die unterschiedlichen CPU-Funktionen identifizieren und bewerten

Prozessortypen wie die von Intel und Advanced Micro Devices (AMD) und ihre speziellen Anwendungsszenarien werden durch unterschiedliche Abkürzungen in den Produktbezeichnungen unterschieden. Beispielsweise bietet Intel die CPU-Typen VT-x, VT-d und VT-c an, AMD die Typen AMD-V und AMD-Vi. Eine der besten Herangehensweisen bei der Auswahl einer CPU für die Virtualisierung besteht darin, spezifische Funktionen zu prüfen, die innerhalb der virtuellen Infrastruktur implementiert werden sollen. Eine Funktion, die sowohl AMD als auch Intel anbietet, ist die Isolierung von Memory-Kapazitäten durch No Execute (NX) beziehungsweise Execute Disable (XD) Bits, was VMs vor Malware schützt. NX/XD-Bits stellen sicher, dass die CPU keinen Code in geschützten Bereichen ablaufen lässt.

Andere für die Virtualisierung wichtige Funktionen der CPU sind die Befehle und Virtualisierungserweiterungen Load AH from Flags (LAHF) und Save AH to Flags (SAHF). Die Befehle LAHF und SAHF eröffnen die Kontrolle der Registerinhalte, während Virtualisierungserweiterungen für eine bessere Ausnutzung der Ressourcen sorgen. Die Auswahl der richtigen Hardware ist der erste Schritt, sicherzustellen, dass die virtuellen Workloads mit Spitzenleistung laufen.

Hyper-Threading abschalten – Leistung steigern

Der nächste Schritt besteht darin, dafür zu sorgen, dass die CPU optimal verwendet wird. Welche Funktionen sind vorteilhaft? Welche könnten irgendwann zu Leistungsproblemen führen? Letztere sollte man abschalten.

Hyper-Threading ist eine CPU-Funktion, die Applikations-Threads organisiert und in eine zeitliche Reihenfolge bringt. Es stellt eine zweite Pipeline für Befehlssätze bereit, um keine Ressourcen zu verschwenden. Das ist allerdings nicht immer der effizienteste Weg, die Prozessorleistung zu optimieren.

Das Problem dieser Herangehensweise liegt darin, dass der Core selbst nur eine Ausführungseinheit hat. Daher kann es durch Hyperthreading zum Volllaufen dieser Ressource kommen, was zu Leistungsengpässen führt. Statt Hyperthreading zu verwenden ist es möglicherweise besser, beim Erwerb einer CPU für die Virtualisierung mehr Geld in zusätzliche Cores zu investieren. Sogar wenn durch Hyper-Threading keine Leistungsprobleme entstehen, bedeuten mehr Cores insgesamt mehr Möglichkeiten, Befehlssätze zu priorisieren und auszuführen.

Virtualisierungs-Overhead mit SLAT minimieren

Ein verbreitetes Problem bei der Virtualisierung ist der benötigte Overhead. Die Softwareschicht bedeutet Overhead, der die Ressourcen für die VMs signifikant verringern kann. Second Level Address Translation (SLAT) ist eine Prozessorfunktion, die Intel Extended Page Tables (Erweiterte Seitentabelle) und AMD Rapid Virtualization Indexing (Schnelle Virtualisierungsindexierung) oder Nested Page Tables (Verknüpfte Seitentabellen) nennt. Beides hilft, den oben erwähnten Overhead zu verringern und steigert daher die Virtualisierungsleistung.

SLAT eliminiert repetitive Verarbeitungsschritte, indem in einem speziellen Cache vor kurzem durchgeführte Seitentabellen-Mappings von virtuell auf physisch gespeichert werden, die der Hypervisor erzeugt hat. Wenn die Mapping-Informationen bereits im Cache stehen, werden diese Memory-Ressourcen nicht für die Übersetzung gebraucht. Wie viel Overhead dadurch eingespart wird, hängt von der spezifischen Workkload ab. Zudem muss man bei manchen Systemen den SLAT-Support im BIOS aktivieren, bevor man die Funktion nutzen kann.

Bei der Hardware-Evaluierung zählen die eigenen Anforderungen

Bei der Auswahl eines Servers für die Virtualisierung sind CPU, Memory, Storage und Netzwerk-I/O zu berücksichtigen. Diese vier Elemente sind der Schlüssel der Serverkonsolidierung. Bei CPU-Spezifikationen sollte man also die Zahl der Cores, die Größe des internen Cache und den Taktzyklus berücksichtigen.

Die Entscheidung für eine bestimmte CPU hängt neben den Kosten stark von den dort laufenden Workloads ab: Einige Prozessoren können das Memory-Management besser optimieren, andere unterstützen I/O-Devices besser.

Was soll die virtuelle Infrastruktur erreichen? Welche Workloads sollen in der virtuellen Umgebung laufen? Diese Fragen entscheiden, welche CPU am besten in die Virtualisierungsumgebung passt. Soll in erster Linie der Footprint verringert werden, liegt es nahe, mehr Cores zu wählen statt einer schnelleren Taktrate.

Geht es dagegen eher um die Workload-Leistung, empfehlen sich schnellere Taktraten und weniger Cores. Mehr Memory und Storage helfen genauso bei der Serverkonsolidierung. Allerdings sollten Memory und Storage bedarfsorientiert dimensioniert werden, um keine Ressourcen zu verschwenden. Schließlich sollte sichergestellt sein, dass genügend Netzwerkbandbreite vorhanden ist, um alle virtuellen Workloads zu versorgen.

Ausreichende vCPU-Ressourcen für die VM-Workloads bereitstellen

Anspruchsvolle Workloads erfordern eine kreative Herangehensweise bei der Zuweisung von Prozessorressourcen. Jede Anwendung hat andere Ansprüche an die Computing-Ressourcen. Die meisten VMs arbeiten mit einer vCPU, aber für arbeitsintensivere Workloads wie eine Datenbank oder einen Email-Server können bis zu vier vCPUs nötig sein.

Erst einmal sollte man daher genauso viele virtuelle Prozessoren bereitstellen wie bei physischer Implementierung physische Prozessoren von der Anwendung benötigt werden. Stimmt die Leistung nicht, probiert man weiter. Mit anderen Worten: Erfordert eine Anwendung zwei physische CPUs, weist man ihr auch zwei vCPUs zu. Dann misst man die Leistung und stellt fest, ob das reicht und weist gegebenenfalls weitere vCPUs zu. Zusätzlich kann man, wenn es sich um eine besonders leistungshungrige Applikation handelt, vCPUs zuweisen, die zu unterschiedlichen Cores gehören und so eine Lastverteilung durchführen. Zusätzliche Affinitäts- und Nicht-Affinitäts-Regeln können zudem festlegen, welche CPUs VMs verwenden sollten und welche nicht.

Nächste Schritte

So können Sie vCPUs richtig virtuellen Maschinen zuweisen

Windows Server Hyper-V: virtuelle CPUs korrekt konfigurieren

Deswegen sind Affinitätsregeln für vCPU-Ressourcen notwendig

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

ComputerWeekly.de
Close