Hyper-V: Performanceprobleme bei VMs beheben, Teil 2

16. Januar 2014

Geschwindigkeitseinbrüche beim Einsatz von Hyper-V lösen. In diesem Beitrag setzt sich das NT4ADMINS-Team mit einigen Tricks und Kniffen auseinander. Dabei liegt das Augenmerk zunächst auf schnellen und effizienten Lösungsansätzen. Systemadministratoren sollten zunächst die Basics prüfen, bevor langwierige Analysen zum Zuge kommen. Diese Grundlagen sind in unserer Checkliste zusammengefasst. Neben dem Überprüfen der Integrationsdienste, der Konfiguration von virtuellen Festplatten oder die Verwendung von synthetischer Hardware sind auch Punkte wie die korrekte Konfiguration des eingesetzten Virenschutzes und der zugewiesenen Ressourcen von Belang.

Bild 2. Die virtuelle DVD mit den Integrationsdiensten wird gemounted.
Bild 3. Ein Klick startet den Aktualisierungsvorgang.

Wie schon in ersten Beitrag unserer Hyper-V Reihe angesprochen, lautet die erste Aufgabe des Systembetreuers, objektive Vergleichswerte zu schaffen, um entsprechenden Performance-Einbrüchen auf die Schliche zu kommen. So können Konfigurationsänderungen und Feineinstellungen isoliert beobachtet werden. Wie bei allen Systemanalysen sollte der Administrator stets nur eine Änderung vornehmen, den Effekt des Eingriffs überprüfen und gegebenenfalls mit weiteren Einstellungen systematisch fortfahren. Neben der Möglichkeit, eine detaillierte Analyse mit zahlreichen und zeitintensiven Dauertest durchzuführen, empfiehlt es sich, zunächst einige Grundeinstellungen in den betroffenen VMs zu überprüfen. Zudem kann es im Produktivbetrieb aus Zeitgründen fast unmöglich sein, entsprechende, sehr umfangreiche Diagnosen im laufenden Betrieb zu erstellen. Daher ist es für Systembetreuer umso wichtiger, zunächst die üblichen Verdächtigen zu durchleuchten, statt sich mit tagelanger Datenerhebung für die eigentliche Diagnose zu befassen.

Integrationsdienste unter der Lupe

Im ersten Schritt sollte der Administrator prüfen, ob die Integrationsdienste auf der virtuellen Maschine installiert, und auf dem aktuellen Stand sind. Der Hintergrund ist folgender: In den Integrationsdiensten sind die Treiber zusammengefasst, die es der VM ermöglichen, mit dem Hostsystem zu kommunizieren. Sollten daher diese Dienste nicht installiert oder veraltet sein, so kommt es möglicherweise zu Performanceeinbrüchen. Das weist eine große Ähnlichkeit mit den Gerätetreibern von physikalischen Maschinen hin, hier kann es ebenso zu Geschwindigkeitseinbrüchen beim Einsatz veralteter Gerätetreiber kommen. Je nach eingesetzter Hyper-V beziehungsweise Serverversion werden unterschiedliche Versionsnummern der Integrationsdienste angezeigt. Um das zu überprüfen kann der Systembetreuer entweder die grafische Oberfläche auf der VM, oder auch folgende Kommandos in der Powershell verwenden:

Get-VM | ft Name, IntegrationServicesVersion

Hier wird der Versionsstatus des Integrationsdienstes aller virtuellen Maschinen auf dem betreffenden Host wie in Bild 1 zu sehen angezeigt. Die VM muss allerdings online sein, damit der Status der Integrationsdienste ermittelt werden kann. Ansonsten wird die VM zwar über das Cmdlet angezeigt, allerdings ohne Versionsnummer der Integrationsdienste. Für diesen Fall kann folgender Filter eingesetzt werden. Dadurch werden nur die laufenden VMs angezeigt, und die inaktiven virtuellen Maschinen ausgeblendet. Dies erhöht die Übersichtlichkeit bei einer großen Anzahl von vorhandenen VMs:

Get-VM | Where-Object {$.State -eq „Running“} | ft Name, IntegrationServicesVersion

Der zweite Weg über die grafische Benutzeroberfläche (GUI) ermöglicht nicht nur das Anzeigen der jeweiligen Version, sondern bietet auch den nächsten Schritt an: Das Update der Integrationsdienste. Hierbei klickt der Administrator innerhalb des VM-Fensters auf den Menüpunkt „Aktion“ und wählt den untersten  Eintrag „Installationsdatenträger für Integrationsdienste einlegen“ wie in Bild 2 sichtbar. Danach kann die virtuelle DVD mit den Integrationsdiensten über einen Doppelklick im Explorer gestartet werden. Teilweise startet die Installationsroutine bedingt durch die Autoplay-Funktion von selbst.

Das Fenster in Bild 3 zeigt in unserem System die Versionsnummer  6.2.9200.16384 an, und ein Klick auf OK startet den Updatevorgang auf die aktuelle Version. Nach einem obligatorischen Neustart stehen die aktuellen Integrationsdienste zur Verfügung. Durch die Update-Funktion können etwaige Fehler auch gleich korrigiert werden, sämtliche Integrationsdienste werden durch die Aktualisierung aufgefrischt und sollten wieder im normalen Zustand laufen.

Für den Fall das die automatische Upgrade-Funktion die Dienste nicht korrigieren kann, sollte der Administrator die Funktion der Integrationsdienste manuell überprüfen. Im Hyper-V Eigenschaftsfenster der VM taucht der Eintrag Integrationsdienste unterhalb der virtuellen Hardware auf. Hier sollten alle Checkboxen aktiviert sein, wie in Bild 4 zu sehen.

Antivirensoftware: Ausnahme hinzufügen

Auf Hostsystemen mit Hyper-V sollte ein entsprechender Virenschutz installiert und regelmäßig überprüft werden, genauso wie bei allen vernetzten Systemen. Einige Virenscanner können allerdings zeitweilige Performance-Probleme erzeugen, falls nicht entsprechende Ausnahmen definiert werden. Im schlimmsten Fall kann die Konsistenz bestehender Virtueller Festplatten gefährdet werden, und VMs starten eventuell nicht mehr. Für Server mit Hyper-V sollten folgende Ordner-Ausnahmen im Virenscanner gesetzt werden:

  • Standardordner der VHD-Dateien C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\*.*
  • Standardordner der VM-Konfiguration C:\ProgramData\Microsoft\Windows\Hyper-V\*.*
  • Speicherordner der VMs bei Hyper-V Cluster C:\ClusterStorage\*.*
  • Speicherordner bei Hyper-V-Cluster C:\Windows\Cluster
  • Speicherordner von weiteren VHD-Dateien wie etwa Z:\Virtual-Disks\*.*

Zudem müssen folgende Anwendungen vom Echtzeitscan des Virenscanners ausgenommen werden:

  • Hyper-V Virtual Machine Management:  vmms.exe
  • Hyper-V Virtual Machine Worker Process:  vmwp.exe
  • Cluster Server Service: clussvc.exe
Bild 4. Die Integrationsdienste der VM werden korrekt angezeigt und sind somit funktionsfähig.
Bild 5. Der Hauptprozessor läuft in unserem Beispiel nicht im langsamen Kompatibilitätsmodus.

Emulierte oder synthetische Hardware?

Ein weiterer Punkt für eine geringe VM-Performance stellt die Bereitstellung von emulierter Hardware dar. Daher empfiehlt sich immer der Einsatz von synthetischer Hardware wenn möglich. Es sei denn zwingende Gründe sprechen für den Einsatz der emulierten Hardware (beispielsweise bei sehr alten Gastsystemen wie etwa Windows NT 4.0). Die meisten Betriebssysteme bringen für die von Hyper-V emulierte Hardware bereits passende Systemtreiber mit, allerdings geht durch den Zugriff auf Hostsystem-Ressourcen mittels emulierter Objekte viel Performance verloren.

Um herauszufinden, ob es sich bei den virtuellen Geräten um emulierte oder synthetische Hardware handelt, sollte der Systembetreuer als erstes prüfen, ob sich der virtuelle Hauptprozessor im Kompatibilitätsmodus befindet. Dazu navigiert der Administrator im Hyper-V Manager mittels eines Rechtsklicks auf der virtuellen Maschine in das Eigenschaftsfenster. Im Menüpunkt Prozessor taucht unter dem Knoten Kompatibilität eine Checkbox auf. Diese sollte nicht aktiviert sein, wie Bild 5 zeigt.

Als zweites ist es eine gute Idee den Status der Netzwerkadapter zu prüfen, das geschieht analog zu unserem oberen Beispiel auf der Eigenschaftsseite des Netzwerkadapters. Steht hier oben links der Eintrag „Netzwerkkarte“, so handelt es sich um synthetische Hardware. Ansonsten verwendet Hyper-V den Terminus „Ältere Netzwerkkarte“. Diese auch als „Legacy Network Adapter“ bekannte Emulation hat signifikante Nachteile wie etwa die Begrenzung auf 100 MBit/s Bandbreite, und sollte daher wenn möglich vermieden werden.

Generell ist noch eine Besonderheit anzumerken: Falls die VM bereits als Generation 2 angelegt wurde (nur bei Server 2012 R2 möglich) wird keine emulierte Hardware verwendet, da in diesem Modus nur synthetische Hardware zugelassen wird.

VHD: Dynamisch oder fest eingestellte Größe?

Administratoren sollten sich Gedanken über die eingesetzten virtuellen Festplatten der älteren (VHD) und der aktuellen Generation (VHDX) machen. Erstere können als virtuelle Festplatten mit fester Größe (fixed VHD), als Datenträger mit veränderbarer Größe (dynamic VHD) oder Festplatten mit Änderungen im Vergleich zu einer damit verknüpften weiteren virtuellen Festplatte (differencing VHD) ausgeführt werden.

Letztere können zudem als Festplatte für mehrere VMs gleichzeitig genutzt werden (shared VHDX). Im Produktivbetrieb ist die klare Vorgabe vom Microsoft, auf den Einsatz von dynamischen VHDs zu verzichten. Besser sind VHDs oder VHDX-Dateien mit fest definierter Größe. Shared VHDX-Datenträgerdateien können unter Umständen ebenfalls für Performance-Probleme verantwortlich gemacht werden, Systembetreuer sollten daher ein Augenmerk auf die Art der eingesetzten VHDs haben.

Zusammenfassung

In diesem Teil unseres Beitrags über die VM-Performance bei Hyper-V wurden einige wichtige Punkte zusammengefasst. Diese ermöglichen  es dem Systembetreuer bereits mit verhältnismäßig geringem Aufwand die häufigsten Konfigurationsfehler auszumerzen, und wichtige Grundeinstellungen nacheinander zu prüfen. Somit erreicht der Systembetreuer eine solide Ausgangsbasis für weitere Diagnoseschritte. Diese zeigt das NT4ADMINS-Team nächsten Teil unseres Leitfadens.

Checkliste

Die wichtigsten Kategorien unseres Beitrags lassen sich auf vier Punkte reduzieren.

Mit dieser Checkliste können Systembetreuer die wichtigsten Basics ihrer VMs nacheinander abhaken:

  • Punkt 1. Sind aktuelle Integrationsdienste installiert und werden alle Funktionen ausgeführt?
  • Punkt 2. Wurden entsprechende Ausnahmen beim Virenschutz vorgenommen?
  • Punkt 3. Verwendet die VM synthetische Hardware?
  • Punkt 4. Ist die VHD auf eine feste Größe eingestellt?

Florian Huttenloher

Lesen Sie auch