Fragensteller
Monitoring Hyper-V Dispatch Time

Frage
-
Wir haben mehrere Hyper-V Nodes mit einem Terabyte an Memory. Durch die immense Menge an Memory kommen wir immer wieder bei der CPU in Engpässen. Genauer wir haben hohe Dispatch-Time. Sprich der Hyper-V hat so hohe Dispatch-Time das die VMs nicht mehr richtig arbeiten können. Die Dynamic Optimization überwacht nur die CPU Last und nicht die Dispatch-Time. Aus diesem Grund wollen wir die Dispatch-Time überwachen um so proaktiv reagieren zu können.
Bei VMware gibt es einen einfachen Wert (CPU Ready) der dieses Dispatch-Time anzeigt. Zudem gelten für diesen Performance-Indikator folgende Schwellwerte:
<2.5% CPU Ready -> Generally No Problem!
2.5% - 5% CPU Ready -> Minimal contention that should be monitored during peak times
5% - 10% CPU Ready -> Significant Contention that should be investigated & addressed
>10% CPU Ready -> Serious Contention to be investigated & addressed ASAP!Nur Zur Info: Bei dem SCOM Management Pack von Veeam werden diese Dispatch-Time ebenfalls über WMI abgefragt.
Folgende Fragen stellen wir uns:
Pro Hyper-V:
- Wie können wir die Dispatch-Time am besten überwachen? (WMI, Perfmon, PowerShell,...)
- Wie können wir die Dispatch-Time in % umrechnen?
- Was ist der Threshold der Dispatch-Time?
- Der Threshold in % der Dispatch-Time müsste in etwa gleich sein wie bei VMware, können Sie dies bestätigen?
- Falls der Threshold in % nicht der selbe ist, welche Threshold gilt bei Hyper-V
- Gibt es andere Performance-Indikatoren um die Dispatch-Time zu überwachen (Tipps & Tricks)?
- Wie können wir die Dispatch-Time automatisiert verringern? (analog Dynamic Optimization)
Pro VM:
- Wie können wir die Dispatch-Time per VM überwachen/ausrechnen?
- Was ist der Threshold der Dispatch-Time pro VM?
- Der Performance-Counter "CPU Wait Time per Dispatch" zeigt die Warte in Nanosekunden an. Was ist der Threshold?
Wir wollen die Möglichkeit haben die Dispatch-Time jederzeit abfragen zu können und so fähig sein die Dispatch-Time in unser Monitoring System einzubauen.
Alle Antworten
-
Bei VMware gibt es einen einfachen Wert (CPU Ready) der dieses Dispatch-Time anzeigt.
Wobei CPU Ready in einem 20 Sekunden Intervall bewertet.
Gruß,
Marcel
https://www.windowspro.de/marcel-kueppers
I write here only in private interest
Disclaimer: This posting is provided AS IS with no warranties or guarantees, and confers no rights.
- Bearbeitet Marcel Küppers Mittwoch, 21. Februar 2018 09:16
-
Danke für die Rückmeldung.
Der Counter "Hyper-V Hypervisor Virtual Processor\CPU Wait Time Per Dispatch" ist jedoch pro VM angegeben und interessant wäre ein Wert für den gesamten Hyper-V Node.
Zudem ist es nicht 100% sicher das der Wert in der Unit "Nanosekunden" angegeben ist. Wissen Sie das per Zufall.
Am einfachsten und besten wäre ein Wert Äquivalent zu der CPU Ready in Prozent.
-
Ein _Total liefert aber kumulierte Werte. Ich hefte einen Link zum Berechnungsverfahren für CPU Ready an:
https://kb.vmware.com/s/article/2002181https://www.windowspro.de/marcel-kueppers
I write here only in private interest
Disclaimer: This posting is provided AS IS with no warranties or guarantees, and confers no rights.
-
Danke für den Link, aber wie würde ich das nun Rechnen?
Wir haben Hyper-V Nodes mit je 2 CPUs a 14 pCores. Also insgesamt 56 logische Cores.
Durchschnitt ausrechnen (CPU Ready Summation):
Müsste ich dann den Wert "_Total" durch die Anzahl pCores somit 28 rechnen, somit müsste ich die durchschnittliche CPU Wait time per Dispatch in Nanosekunden haben, richtig?
%CPU Ready ausrechnen:
(CPU Ready Summation / 20'000ms) * 100 = % Time spent in Ready state, richtig?
Irgendwie geht das dann aber noch nicht auf. Sprich der Wert sieht nicht logisch aus.