• Lesedauer:14 min Lesezeit
  • Beitrags-Kategorie:IT / VMware
  • Beitrags-Autor:
  • Beitrags-Kommentare:0 Kommentare

Die optimale Einstellung der Server-Hardware ist die Grundvoraussetzungen für eine optimale Performance von VMware ESXi. Um die Turbo Boost-Funktion von Intel-Prozessoren optimal zu nutzen sind beispielsweise bestimmte Einstellungen notwendig.
Auf diese und weitere Einstellungen soll hier eingegangen werden.
Daher habe ich hier Ergebnisse zusammengestellt, die sich über die Jahre bewährt haben. Zielgruppe sind KMU Umgebungen mit wenigen Hosts. Für Rechenzentren mag es Abweichungen geben.
Die Version 6.x (6.0, 6.5, 6,7) und 7.x (7.0) des ESXi sind gleichermaßen Ziel dieses Artikels.


Grundlagen

In diesem Abschnitt möchte ich in groben Zügen auf die Energieverwaltung eingehen. Wenn Sie mit P-States und C-States vertraut sind können Sie diesen Abschnitt überspringen.
Um einige Werte aus der Praxis griffbereit zu haben, verwende ich als Beispiel die Intel CPU Xeon 6254. Diese verfügt mit 18 Kernen über einen Basistakt von 3,10 GHz und einen maximalen Turbo-Takt von 4,00 Ghz.
Sie sehen bereits hier, dass der Turbo-Takt 29% über dem Basistakt liegt. Demzufolge ist dies auch ein beachtlicher Mehrwert an Leistung.
Wichtig zu wissen ist hierbei, dass lediglich der Betrieb im Basistakt von 3,10 GHz stabil garantiert und über einen längeren Zeitraum möglich ist.

Prozessor P-States und C-States

P-States

P steht für performance. Diesen Status hat der Prozessor, während er Code ausführt.
Diese dienen zur Steuerung der Taktfrequenz und Spannung, mit der ein Prozessor läuft. Auch während der Codeausführung soll der Prozessor nicht unnötig viel Strom verbrauchen.
Der Basistakt, in unserem Beispiel also 3,10 GHz entspricht hierbei P1. Der Turbo-Takt von bis zu 4,00 GHz entspricht P0. Es gibt nach unten weitere Taktstufen. Diese werden dann mit P2, P3, P4 …. bezeichnet.

C-States

C-States dienen der Verringerung des Stromverbrauchs. Dieser Status nimmt der Prozessor ein, wenn kein Code ausgeführt wird. Dies ist der Idle-Modus.
Hierbei werden je nach Stufe C0 bis Cx verschiedene Elemente deaktiviert und dadurch eine Stromeinsparung erreicht. Hierdurch reduziert sich auch die entstehende Wärme.

Warum kann meine CPU nicht durchgängig im Turbo-Takt laufen?

Vereinfacht gesagt, weil die entstehende Abwärme nicht ausreichend schnell abtransportiert werden kann. Und zwar nicht nur von der CPU im Gehäuse, sondern bereits innerhalb der CPU gibt es wärmere und kühlere Kerne, je nach Belastung.
In unserem Beispiel beträgt die gesamte Verlustleistung (TDP) 200 Watt. Diese Angabe können Sie im Datenblatt eines Prozessors nachlesen.
Laut Definition von Intel steht die Thermal Design Power (TDP) für die durchschnittliche Leistungsaufnahme (in Watt), die der Prozessor beim Betrieb auf Basisfrequenz ableitet. Sie sehen also, dass hier einiges an Wärme entsteht.
Jeder Kern hat einen gewissen Anteil an diesem Gesamtbudget.
Damit ein Prozessor nicht überhitzt reduziert er den Takt und damit auch die aufgenommene Energie.

Jetzt wird hoffentlich der Zusammenhang klar, warum das Abschalten der C-States in den meisten Fällen einen gegenteiligen Effekt hat.

Nur durch den Betrieb einiger Kerne im C-State bleibt genug Platz im Temperaturfenster, damit andere Kerne im P0-State, also im Turbo-Takt, betrieben werden können.


BIOS

Im BIOS erfolgen die grundlegenden Einstellungen für die Hardware. Damit steht und fällt die Sichtbarkeit von bestimmten Features für ESXi.
Die nachfolgenden Einstellungen sind für DELL Server, konkret 14G. Eine Übersicht über alle Einstellungen findet man im R740 BIOS and UEFI Reference Guide.
Viele der folgenden Einstellungen aus dem Bereich System Profile stammen aus der Veranstaltung SER2724BE von der VMworld 2017. Die Aufzeichnung bei YouTube können Sie unterhalb eingebettet oder unter folgendem Link ansehen: https://youtu.be/e9GWK8Pn8ec
Diese sei als sehr gute Erklärung für das Thema sei empfohlen.
Alternativ können Sie einfach die von mir aufgeführten Werte im BIOS umsetzen und kommen somit schnell zum Ergebnis.

Performance Best Practices von der VMworld 2017

Werte, welche von den Standardeinstellungen des Herstellers abweichen sind Fett hervorgehoben.

System Profile Settings

EinstellungEmpfehlung
System Profilecustom
CPU Power ManagementOS DBPM
Memory FrequencyMaximum Performance
Turbo BoostEnabled
C1EEnabled
C StatesEnabled
Memory Patrol ScrubStandard
Memory Refresh Rate1x
Uncore FrequencyMaximum
Energy Efficient PolicyPerformance
Number of Turbo Boost Enabled Cores for Processor 1All
Number of Turbo Boost Enabled Cores for Processor 2All
Monitor/MwaitEnabled
CPU Interconnect Bus Link Power ManagementDisabled
PCI ASPM L1 Link Power ManagementEnabled
System Profile Settings

Processor Settings

EinstellungEmpfehlung
Logical ProcessorEnabled
CPU Interconnect SpeedMaximum data rate
Virtualization TechnologyEnabled
Adjacent Cache Line PrefetchEnabled
Hardware PrefetcherEnabled
DCU Streamer PrefetcherEnabled
DCU IP PrefetcherEnabled
Sub NUMA ClusterEnabled
UPI PrefetchEnabled
LLC PrefetchDisabled
Dead Line LLC AllocEnabled
Directory AtoSDisabled
Logical Processor IdlingDisabled
Configurable TDPNominal
x2APIC ModeEnabled
Dell Controlled TurboDisabled
AVX ICCP Pre-Grant128 Heavy
Number of Cores per ProcessorAll
Processor Settings

Integrated Devices

EinstellungEmpfehlung
I/OAT DMA EngineDisabled
SR-IOV Global EnableEnabled
I/O Snoop HoldOff Response2K Cycles
Integrated Devices Settings

IOAT was experimental support in ESX 3.5 and is not supported in ESXi/ESX 4.x and later.

https://kb.vmware.com/s/article/1003712

Single Root I/O Virtualization (SR-IOV) Enabled nur, falls Sie dies verwenden wollen. Voraussetzungen siehe hier


Memory Settings

EinstellungEmpfehlung
System Memory TestingDisabled
Dram Refresh DelayPerformance
Opportunistic Self-RefreshDisabled
Memory Operating ModeOptimizer Mode
Memory Settings

ESXi Host-Einstellungen

Der ESXi selbst, sollte so eingestellt sein, dass sowohl P- und C-states zur Verfügung stehen.

Die Einstellung dazu kann man direkt auf dem ESXi-Host vornehmen:

ESXi-Energieverwaltung
ESXi-Energieverwaltung

Oder im vCenter, falls der Host darüber gesteuert wird:

Energieeinstellungen des Host in vCenter
Energieeinstellungen des Host in vCenter

Prüfung des Turbo Boost

Die Funktion von Turbo Boost lässt sich wie folgt überprüfen:

  • Verbinden Sie sich per SSH auf den ESXi-Host
  • starten Sie ESXTOP
  • drücken Sie p um auf die Seite power management zu wechseln
  • mittels f und wieder f und Enter fügen Sie die Spalte “%A/MPERF” hinzu
  • Betrachten Sie die Spalte %A/MPERF
  • Werte über 100 in dieser Spalte zeigen Ihnen die Funktion von Turbo Boost an
ESXTOP Ausgabe auf dem ESXi Host
ESXTOP – Turbo Boost während künstlicher Last

In dem oben abgebildeten Beispiel sehen Sie Werte um 128. Dies bedeutet ein 28% höherer Takt über dem Basistakt, also etwa 3,1GHz * 1,28 = 3,97 GHz. Somit befinden wir uns recht nah an der maximalen Frequenz von 4 GHz des Prozessors.
Während dieses Versuchs gab es nur eine Last für den Host, künstlich erzeugt in einer zweiten SSH Sitzung mittels:

# cat /dev/urandom | md5sum

Im Realbetrieb sieht das ganze eher so aus, als dass mehrere Cores den Turbo Boost aktivieren. Daher wird die Spitzenfrequenz nicht ganz erreicht. Hier sind Werte um 25% zu beobachten, also etwa 3,88 GHz.

Turbo-boost aktiv ESXTOP Ausgabe auf dem ESXi Host
ESXTOP – Turbo Boost im Realbetrieb

Quellen:

Teile diesen Beitrag

Schreibe einen Kommentar