archy13 - stock.adobe.com

Wie Sie für Virtualisierung die optimale CPU auswählen

Bevor Sie sich für eine CPU entscheiden und Konfigurationen vornehmen, müssen Sie wissen, welche Workloads virtualisiert werden sollen und welche Anforderungen sie mitbringen.

Die Auswahl einer CPU für Virtualisierung und ihre richtige Konfiguration sind ebenso wichtig wie die Auswahl von Memory, Storage und Netzwerkressourcen. Ein Prozessor, der für die Infrastruktur nicht sinnvoll ist, oder ein falsch konfigurierter Prozessor kann sich negativ auf die anderen drei Komponenten auswirken.

Die VM-Performance (virtuelle Maschine) hängt auch weitgehend von den richtig konfigurierten CPU-, Memory-, Storage- und Netzwerkressourcen ab. Prozessorressourcen werden oft mit Hyper-Threads versehen und in einem schädlichen Ausmaß überdimensioniert. Bevor Sie jedoch bewährte Konfigurationsverfahren implementieren können, um das zu vermeiden, müssen Sie zunächst eine CPU auswählen, die Ihren Anforderungen entspricht.

Abgesehen von den Kosten hängt die Entscheidung, welche CPU Sie wählen, zu einem großen Teil von den Arten der Arbeitslasten ab, die Sie ausführen. Einige Prozessoren sind besser für die Optimierung der Memory-Verwaltung geeignet, während andere eine bessere Unterstützung für E/A-Geräte bieten.

Was ist CPU-Virtualisierung?

Bei der CPU-Virtualisierung werden die Ressourcen des physischen Prozessors in eine oder mehrere logische Darstellungen abstrahiert, die auf verschiedene Arbeitslasten angewendet werden können. Betriebssysteme haben direkten Zugriff auf Hardwareressourcen, aber bei der Virtualisierung abstrahiert die Hypervisor-Software diese Ressourcen, so dass IT-Teams sie effizienter bereitstellen und nutzen können.

Überlegen Sie bei der Auswahl einer CPU für die Virtualisierung, was Sie mit Ihrer virtuellen Infrastruktur erreichen möchten und welche Arten von Arbeitslasten Sie ausführen.

Sie können einer VM eine oder mehrere virtuelle CPUs (vCPUs) zuweisen, je nachdem, wie rechenintensiv die Arbeitslast ist. Der Hypervisor abstrahiert jede physische CPU in eine vCPU, die den Workloads einfach zugewiesen werden kann. Es ist einfacher, diese Ressourcen zuzuweisen und neu zuzuordnen, wenn sie virtualisiert sind.

Im Folgenden finden Sie einige Überlegungen zur Auswahl und Konfiguration einer CPU für Virtualisierung.

Vergleichen Sie die Prozessortypen: AMD versus Intel

Prozessortypen, wie sie von Intel und AMD angeboten werden, und ihre spezifischen Verwendungszwecke werden durch Akronyme unterschieden, die für die Befehls- und Anweisungssätze stehen, die für die Ausführung virtualisierungsspezifischer Prozessoraufgaben entwickelt wurden. Zu den VT-Implementierungen von Intel gehören beispielsweise VT-x, VT-i, VT-d und VT-c, und AMD bietet AMD-V und AMD-Vi.

Einer der besten Ansätze zur Auswahl der richtigen CPU für die Virtualisierung besteht darin, die spezifischen Funktionen zu ermitteln, die Sie in Ihrer virtuellen Umgebung implementieren möchten. Die Wahl des Hypervisors – und dessen Unterstützung für bestimmte Prozessoren – kann die Wahl des Prozessors für die Virtualisierung beeinflussen.

Eine Funktion, die sowohl Intel als auch AMD bieten, ist die Isolierung des Memory-Bereichs durch No-Execute- (NX) beziehungsweise Execute-Disable-Bits (XD), die VMs vor Malware schützen. NX- und XD-Bits sorgen dafür, dass die CPU die Ausführung von Code in geschützten Bereichen verweigert.

Weitere CPU-Funktionen, die für die Virtualisierung wichtig sind, sind die Befehle Load AH from Flags (LAHF) und Save AH to Flags (SAHF) sowie Virtualisierungserweiterungen. LAHF- und SAHF-Befehle ermöglichen die Kontrolle über Registerinhalte, während Virtualisierungserweiterungen eine bessere Ressourcennutzung ermöglichen. Die Wahl der richtigen Hardware ist der erste Schritt, um sicherzustellen, dass virtuelle Workloads mit maximaler Leistung ausgeführt werden.

Deaktivierung von Hyper-Threading zur Leistungssteigerung

Der nächste Schritt besteht darin, sicherzustellen, dass Sie Ihre CPU optimal nutzen. Stellen Sie fest, welche Funktionen Sie nutzen sollten und welche Funktionen in Zukunft zu Leistungsproblemen führen könnten. Hyper-Threading ist eine CPU-Funktion, die Anwendungs-Threads organisiert und plant, aber es ist nicht immer der effizienteste Weg, um die Prozessorleistung zu verbessern. Hyper-Threading funktioniert wie eine zweite Pipeline für Befehlssätze, um Ressourcenverschwendung zu vermeiden.

Das Problem bei diesem Ansatz ist, dass der CPU-Kern selbst nur eine Ausführungs-Engine hat, so dass es zu Ressourcenkonflikten kommen kann, die zu Leistungsengpässen führen. Anstatt Hyper-Threading zu verwenden, sollten Sie beim Kauf einer CPU für die Virtualisierung, wenn möglich, das Geld für mehr Kerne ausgeben. Es kann effizienter sein, mehr CPU-Kerne zu kaufen und Hyper-Threading zu deaktivieren, als weniger Kerne über Hyper-Threading unter den Workloads aufzuteilen.

Selbst wenn Sie keine Leistungsprobleme aufgrund von Hyper-Threading haben, bedeutet das Hosten mehrerer Kerne eine höhere Gesamt-CPU-Leistung für die Priorisierung und Ausführung von Befehlssätzen.

Minimierung des Virtualisierungs-Overheads mit SLAT

Ein häufiges Problem bei Virtualisierung ist der Overhead, der bei der kontinuierlichen Übersetzung zwischen physischem und virtuellem Memory anfällt. Die Softwareschicht bringt einen Overhead mit sich, der die den VMs zur Verfügung stehenden Ressourcen reduzieren kann. Die Adressübersetzung auf zweiter Ebene (Second-Level Address Translation, SLAT) – eine Prozessorfunktion, die von Intel als Extended Page Tables und von AMD als Rapid Virtualization Indexing oder Nested Page Tables bezeichnet wird – reduziert diesen Overhead, was die Virtualisierungsleistung verbessert.

SLAT eliminiert sich wiederholende Arbeiten, indem es einen Cache für aktuelle virtuell- physische Seitentabellen-Zuordnungen hinzufügt, die der Hypervisor generiert hat. Wenn die Zuordnungsinformationen bereits im Cache vorhanden sind, werden diese CPU- und Memory-Ressourcen nicht für die Übersetzung benötigt. Der Umfang des eingesparten Overheads hängt von der jeweiligen Arbeitslast ab. Bei einigen Systemen müssen Sie außerdem die SLAT-Unterstützung im BIOS aktivieren, um diese Funktion nutzen zu können.

Bereitstellung ausreichender vCPU-Ressourcen für VM-Workloads

Anspruchsvolle Workloads erfordern einen kreativen Ansatz bei der Zuweisung von Prozessorressourcen und CPU-Virtualisierung. Jede Anwendung – und ihre Rechenanforderungen – ist anders. Die meisten VMs arbeiten normalerweise mit einer vCPU, aber für arbeitsintensivere Workloads, wie Datenbank- oder E-Mail-Server, benötigen Sie möglicherweise bis zu vier vCPUs – manchmal sogar mehr.

Stellen Sie zunächst so viele virtuelle Prozessoren bereit, wie die Anwendung an physischen Prozessoren benötigt. Wenn die Anwendung zwei physische CPUs benötigt, weisen Sie ihr zwei vCPUs zu und überwachen Sie die Leistung, um festzustellen, ob sie mehr benötigt. Wenn die Arbeitslast besonders anspruchsvoll ist, weisen Sie außerdem vCPUs von verschiedenen Kernen zu, um die Last auszugleichen. Die Anwendung von Affinitäts- und Anti-Affinitätsregeln kann dabei unterstützen, festzulegen, welche CPUs eine einzelne Maschine nutzen sollte und welche nicht.

Überprüfung der Hardwarespezifikationen im Hinblick auf die Ziele

Bei der Auswahl eines physischen Servers für Virtualisierung sollten Sie CPU, Memory, Storage und Netzwerk-E/A berücksichtigen. Alle vier Elemente sind der Schlüssel zur Serverkonsolidierung. Bei den CPU-Spezifikationen sollten Sie die Anzahl der Kerne, die Größe des internen Cache und die Taktfrequenz bewerten.

Legen Sie bei der Auswahl einer CPU für die Virtualisierung fest, was Sie mit Ihrer virtuellen Infrastruktur erreichen wollen und welche Arten von Arbeitslasten Sie ausführen. Wenn die Reduzierung des Platzbedarfs das Hauptziel ist, sollten Sie sich für eine größere Anzahl von Kernen und eine höhere Taktfrequenz entscheiden. Wenn die Workload-Performance jedoch eine größere Rolle spielt, sind schnellere Taktfrequenzen und weniger Kerne möglicherweise sinnvoller.

Mehr Memory und Storage helfen ebenfalls bei der Serverkonsolidierung, doch sollten Sie die Größe von Memory und Storage an Ihren Bedarf anpassen, um eine Verschwendung von physischen Ressourcen zu vermeiden. Schließlich sollten Sie sicherstellen, dass Sie über eine ausreichende Netzwerkbandbreite verfügen, um Ihre virtuellen Arbeitslasten zu bewältigen.

Beliebte CPUs für Virtualisierung

Die drei wichtigsten Prozessorhersteller sind Intel, AMD und IBM. Im Folgenden finden Sie drei der beliebtesten CPUs für die Unternehmensvirtualisierung:

  • Intel 6th Gen Xeon-Prozessoren
  • AMD 5th Gen EPYC-Prozessoren
  • IBM Power11-Prozessoren

Erfahren Sie mehr über Server- und Desktop-Virtualisierung