none
Hyper-V nur geringe CPU-Auslastung RRS feed

  • Frage

  • Hallo!

    Folgendes System: Windows Server 2012, Quad-Core mit HT (also 8 logische Kerne), mehrere Hyper-V VMs, 2 vCPU pro VM

    Wenn ich nun auf einer VM beide vCPU voll auslaste (also 100% CPU-Auslastung laut Task Manager in der VM), dann habe ich auf dem Host eine CPU-Auslastung von max. 10-12%. Das zeigen sowohl Hyper-V-Manger, Task Manager als auch Perfmon an. Der Rest vom System ist Idle. Theoretisch sollten in diesem Fall 25% Auslastung auf dem Host erreicht werden. Das Programm in der VM läuft auch spürbar langsam.

    Woran kann das liegen? Wo sollte man als erstes nachschauen?

    Interessanterweise funktioniert es gelegentlich. Vielleicht 1x pro Monat läuft alles wie es soll, dann liegt die CPU-Auslastung des Hosts bei etwa 25% und das Programm in der VM läuft etwa doppelt so schnell. Da das Programm in der VM regelmäßig läuft, lässt sich das das ganz gut nachvollziehen. Zwischen dem "gut laufen" und dem "langsam laufen" wurde nichts bewusst geändert.

    Danke und beste Grüße,

    cn_mac

    Montag, 5. Dezember 2016 09:18

Antworten

  • Kann das mit C-States der CPU oder anderen Drosselungsmechanismen zusammenhängen?

    ...also wenn das Energieprofil des Hostes (im BIOS) auf etwas anderes eingestellt ist als "High Performance", dann dürfte es genau daran liegen.

    Strom sparen bei Virtualisierung geht grundsätzlich nur auf genau eine Weise: unausgelastete VMs auf wenige Hosts konsolidieren (oder ausschalten) und die restlichen Hosts herunterfahren (oder in Standby versetzen). Und da die Server IPMI können, kann die Virtualisierungssteuerung sie bei Bedarf auch wieder einschalten. Bei VMware heißt es DPM, bei Microsoft PRO.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    • Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 8. Dezember 2016 06:56
    • Als Antwort markiert cn_mac Freitag, 9. Dezember 2016 11:35
    Montag, 5. Dezember 2016 17:27
  • Das war's. Die Energieoptionen vom Host auf "maximale Leistung" geändert und schon laufen die Programme in den VMs >50% schneller.

    Danke auch an Patrick für den Hinweis auf PRIME. Dadurch kam ich auf die richtige Spur.

    Beste Grüße,

    cn_mac

    • Als Antwort markiert cn_mac Freitag, 9. Dezember 2016 11:38
    Freitag, 9. Dezember 2016 11:38

Alle Antworten

  • Hallo cn_mac,

    schaue dir bitte einmal die Architektur von Hyper-V an - dem Parent OS(Root partition) sind dabei nicht alle CPUs zugeordnet und somit hat er eine andere Last als dein Gast.

    folgender Artikel ist dazu relativ hilfreich.

    https://msdn.microsoft.com/en-us/library/cc768520(v=bts.10).aspx

    Gruß
    Carsten


    Wenn Dir eine Antwort weiter geholfen hat dann markiere sie doch bitte als Antwort! LG Carsten

    Montag, 5. Dezember 2016 09:41
  • Hallo Carsten,

    ich bin nicht sicher, ob ich richtig verstehe. Mich stört nicht, dass in VM 100% und auf dem Host weniger CPU-Auslastung angezeigt werden, sondern, dass der Host unterhalb der CPU-Auslastung liegt, die diese eine VM theoretisch erzeugen kann - auch in den Einstellungen der VM steht, dass diese VM bis zu 25% der CPU-Ressourcen des Hosts abgreifen kann.

    Falls es relevant ist: in den VMs läuft Windows 7.

    Danke und beste Grüße,

    cn_mac

    Montag, 5. Dezember 2016 10:07
  • Hallo,

    wie testest du bzw. mit welcher Anwendung testest du? Hast du mal etwas wie PRIME o.ä. versucht?


    Gruß,
    Patrick

    Montag, 5. Dezember 2016 10:12
  • http://www.mcseboard.de/topic/196172-hyper-v-vm-l%C3%A4uft-am-limit-host-ist-kaum-ausgelastet/

    Du musst wie gesagt differenzieren, dein Hyper-V Host hat quasi seine eigene CPU und RAM und deswegen siehst du die auslastung der Gäste nicht direkt im Taskmanager des Hosts.

    Gruß
    Carsten


    Wenn Dir eine Antwort weiter geholfen hat dann markiere sie doch bitte als Antwort! LG Carsten

    Montag, 5. Dezember 2016 10:40
  • Hallo Patrick,

    es ist ein Programm zur Datenauswertung (SAS).

    Aber wie gesagt: es gibt (wenige) Tage, da läuft's.

    Natürlich kann ich auch mal PRIME probieren.

    Grüße,

    cn_mac

    Montag, 5. Dezember 2016 11:10
  • Hallo Carsten,

    das verstehe ich (glaube ich).

    Ich schaue parallel auf Host und VM. VM bei 100%, Host nur bei 10-12%. Host müsste 25% erreichen können.

    Viele Grüße,

    cn_mac

    Montag, 5. Dezember 2016 11:18
  • Hallo,

    Bilder/Links einfügen geht leider nicht.

    Deswegen Beschreibung: Task-Manager der VM, bei 50% (klassische Single-Thread-Anwendung).

    Aus Perfmon vom Host: Ausführungszeiten des "virtuellen Prozessor des Hyper-V-Hypervisorstamms" (im Durchschnitt <5%) und des "logischen Prozessor für Hyper-V-Hypervisor" (im Durchschnitt 25%).

    Hyper-V-Manager auf dem Host zeigt in der Spalte CPU-Auslastung 3%.

    Grüße,

    cn_mac

    Montag, 5. Dezember 2016 12:00
  • So... ich bin ein Stück weiter: wenn ich eine VM mit Prime95 komplett auslaste, dann zeigt der Hyper-V Manager die erwarteten 25% CPU-Auslastung. Und außerdem steigt nun auch die CPU-Auslastung für die nächsten VM auf das theoretische Maximum, wenn dort das Datenauswertungsprogramm läuft.

    Kann das mit C-States der CPU oder anderen Drosselungsmechanismen zusammenhängen?

    Dann würde die Last des Datenauswertungsprogramms nicht reichen, um diese Drosselungen auszuheben und erst, wenn ein Programm wie Prime alles anfordert, läuft der Prozessor des Hosts auf vollen Touren.

    ??

    Danke und viele Grüße,

    cn_mac

    Montag, 5. Dezember 2016 15:37
  • Kann das mit C-States der CPU oder anderen Drosselungsmechanismen zusammenhängen?

    ...also wenn das Energieprofil des Hostes (im BIOS) auf etwas anderes eingestellt ist als "High Performance", dann dürfte es genau daran liegen.

    Strom sparen bei Virtualisierung geht grundsätzlich nur auf genau eine Weise: unausgelastete VMs auf wenige Hosts konsolidieren (oder ausschalten) und die restlichen Hosts herunterfahren (oder in Standby versetzen). Und da die Server IPMI können, kann die Virtualisierungssteuerung sie bei Bedarf auch wieder einschalten. Bei VMware heißt es DPM, bei Microsoft PRO.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    • Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 8. Dezember 2016 06:56
    • Als Antwort markiert cn_mac Freitag, 9. Dezember 2016 11:35
    Montag, 5. Dezember 2016 17:27
  • Hallo,

    wie Carsten schon sagt. Du siehst in der Parentpartision nicht die tatsächliche Auslastung des Hosts sondern nur den Anteil der "Parent VM" am Host. Um die genau Auslastung zu ermitteln, helfen dir aber Tools Hyper-V Mon.

    http://www.tmurgent.com/appv/index.php/en/87-tools/performance-tools/217-hyperv-mon-3-10-tool-for-monitoring-hyperv-r3

    Weiterhin hat auch Evgnij vollkommen recht, die moisten Server warden mit Power saving enabled ausgeliefert. Das ist Gift für Performance Anwendungen wie SQL, Virtualisierung oder HPC. Sobald die Büchse in den C-State rutscht, brauch sie zu lange um "aufzuwachen" was einen enormen Performance Impact hat.

    Daher immer "volle Power" konfigurieren und mittels PowerShell Skripten oder z.B. VMM die Kisten runterfahren, wenn sie nicht gebraucht warden.


    Kind regards, Flo

    Donnerstag, 8. Dezember 2016 07:01
  • Das war's. Die Energieoptionen vom Host auf "maximale Leistung" geändert und schon laufen die Programme in den VMs >50% schneller.

    Danke auch an Patrick für den Hinweis auf PRIME. Dadurch kam ich auf die richtige Spur.

    Beste Grüße,

    cn_mac

    • Als Antwort markiert cn_mac Freitag, 9. Dezember 2016 11:38
    Freitag, 9. Dezember 2016 11:38