Langzeit-Performanceanalyse von Hyper-V Hosts und grafische Auswertung mit PAL | Hyper-V Server Blog

Langzeit-Performanceanalyse von Hyper-V Hosts und grafische Auswertung mit PAL

logo-perfmonWir haben in letzter Zeit öfters Anfragen von Technikern, die mit einem oder mehreren Hyper-V Hosts Performance-Probleme haben oder sich das Verhalten von gewissen Vorgängen nicht erklären können. Wir haben uns die “Problemkinder” dann angeschaut und konnten auch oftmals die eine oder andere Bremse lösen, manchmal lässt sich das Problem aber nur bedingt eingrenzen, eine genaue Bestimmung des Problems ist hier nicht möglich.

Unser Vorgehen bei einem solchen Problem ist die Aufnahme von Leistungsdaten auf dem oder den Systemen und eine anschließende Auswertung mit dem Performance Analysis of Logs, kurz PAL. Dieses kleine, aber sehr mächtige Tool ist in der Lage, vorhandene Messwerte zu analysieren, sie zu bewerten und grafisch in einem Report auszugeben. Diese Vorgehensweise möchte ich hier einmal näher erklären.

Die Vorgehensweise bei einer Analyse

Mit Hilfe der Leistungsüberwachung auf einem Host (unter Verwaltung zu finden) wird eine Leistungsüberwachung gestartet, die für einen definierten Zeitraum ein Logfile erstellt und vorher definierte Indikatoren abfragt und protokolliert. Dieses Logfile wird später mit dem PAL analysiert und ausgewertet.

Der Download von PAL und die Voraussetzungen

PAL kann frei über Codeplex bezogen werden:

Microsoft Codeplex: Performance Analysis of Logs (PAL) Tool

Voraussetzungen für die Nutzung des Programms sind

  • PowerShell 2.0 oder höher
  • .Net Framework 3.5 SP1
  • Microsoft Chart Controls für .NET Framework 3.5

Es ist nur dann möglich das Programm zu nutzen, wenn man die System-Lokalität auf English-US stellt, da scheinbar gewisse Parameter oder Namen genutzt werden, die nur in dieser Sprache zur Verfügung stehen. Ich habe es mit einem deutschen System probiert, die Analyse startet erst gar nicht, sondern es erscheint direkt eine Fehlermeldung. Eine Umstellung der System-Lokalität habe ich nicht gemacht, ich habe mir für die Auswertung ein Server 2008 R2 SP1 in Englisch installiert, damit hat die Analyse problemlos funktioniert.

Wichtige Information: Nur die Maschine, die die Analyse der Messwerte mit PAL übernimmt muss eine English-US-Lokalität haben, die Erstellung der Performance-Messwerte kann auf einem deutschsprachigem System passieren.

Die Erstellung einer Messung

Das erste Fenster, was man nach dem Aufruf der Leistungsüberwachung sieht, zeigt den Verlauf der CPU-Auslastung im Host:

image

Wir wechseln zu “Sammlungssätze”, und erstellen mit einem Rechtsklick unter “Benutzerdefiniert” einen neuen Sammlungssatz:

image

Wir wählen die folgenden Einstellungen:

image

image

Im nächsten Fenster wählen wir “Hinzufügen” und können nun aus allen zur Verfügung stehenden Indikatoren wählen.

image

Die Frage, dies sich vielen nun stellt, ist die, welche Indikatoren sinnvoll sind und was wofür genutzt wird. Hier kommt PAL das erste Mal mit einer Empfehlung. Wenn man PAL aufruft, erscheint das folgende Fenster mit einer Begrüßung.

image

Im Reiter “Threshold File” gibt es einige Vorlagen, unter anderem die Vorlage “Microsoft Hyper-V R2 SP1”.

image

Wenn wir diesen Eintrag auswählen und auf “Edit” klicken, bekommen wir eine Übersicht über die Indikatoren, die mit dieser Vorlage ausgewertet werden. Wenn man sich die Gruppen aufklappt und einen Indikator markiert, wird rechts eine Beschreibung angezeigt, weiterhin werden teilweise Empfehlungen aufgeführt. Bei “Cluster Shared Volumes” => “Cluster Shared Volumes IO Read Bytes” sieht das wie folgt aus:

image

Eine komplette Liste der Indikatoren sieht wie folgt aus:

image

Auf einem englischen System fangen die einzelnen Gruppen fast alle mit “Hyper-V …” an, auf einem deutschen System wurde dies leider nicht so übernommen, dort sind die Gruppen teilweise recht schwer zu finden. Aus diesem Grund hier eine Liste mit den deutschen Namen, damit diese einfacher zu finden sind:

  • Cache
  • Freigegebene Clustervolumes
  • Hyper-V-Ausgleichsmodul für dynamischen Arbeitsspeicher
  • Dynamischer Hyper-V-Arbeitsspeicher – virtueller Computer
  • Logischer Prozessor für Hyper-V-Hypervisor
  • Hyper-V-Hypervisor-Partition
  • Hyper-V-Hypervisorstammpartition
  • Virtueller Prozessor des Hyper-V-Hypervisorstamms
  • Virtueller Prozessor von Hyper-V-Hypervisor
  • Hyper-V-Hypervisor
  • Hyper-V – Integritätszusammenfassung
  • Virtueller Hyper-V-Netzwerkadapter
  • Virtuelles Hyper-V-Speichergerät
  • Virtueller Hyper-V-Switch
  • Hyper-V VM-VID-NUMA-Knoten
  • Hyper-V VM-VID-Partition
  • Logischer Datenträger
  • Arbeitsspeicher
  • Network Inspection System
  • Netzwerkschnittstelle
  • Auslagerungsdatei
  • Physikalischer Datenträger
  • Prozess
  • Prozessorinformationen
  • Prozessor
  • RemoteFX Root GPU Management
  • Server
  • System

Export und Import von einer Vorlagen-Datei

Man muss sich die oben aufgelisteten Indikatoren nicht einzeln heraussuchen, die im PAL hinterlegten Einträge können exportiert und auf Host wieder importiert werden, das spart Zeit und Sucherei. Im PAL unter “Threshold File” wählen wir die Vorlage “Microsoft Hyper-V R2 SP1” aus und klicken auf “Export to Perfmon template file…”.

image

image

Die exportierte XML-Datei kopieren wir nun auf unseren Hyper-V Host und öffnen dort die Leistungsüberwachung. Unter “Sammlungssätze” => “Benutzerdefiniert” wählen wir “Neu” => “Sammlungssatz”.

image

Wir geben dem Sammlungssatz einen Namen und wählen die Option “Aus einer Vorlage erstellen”.

image

Im nächsten Fenster klicken wir auf “Durchsuchen…” und wählen die zuvor erstellte XML-Datei aus

image

image

Ein Klick auf “Fertig stellen” erstellt unsere “Hyper-V Messung”. In den Eigenschaften können wir bestimmte Optionen anpassen

image

Was ich persönlich immer direkt einstelle ist eine Stoppbedingung. Dies verhindert, das eine Auswertung (falls sie mal vergessen wird) ewig läuft und die Festplatte vollschreibt.

image

Weiterhin sehr hilfreich ist die Erstell-Möglichkeit eines Zeitplans, so könnten z.B. über eine Woche hinweg jeden Tag zwischen 06 und 18 Uhr die Werte mitprotokolliert werden, in der Nacht wenn niemand arbeitet nicht.

Wenn man links in der Spalte auf die benutzerdefinierte Messung klickt, sieht man rechts eine Auflistung der definierten Indikatoren-Sammlungs-Sätzen. Ein Doppelklick hierauf öffnet die oben aufgeführte Liste mit den Indikatoren und eine Einstellmöglichkeit für die Intervalle. Standardmäßig werden die Werte alle 15 Sekunden abgefragt, evtl. sollen bestimmte Indikatoren aber häufiger protokolliert werden. Dies ist hier einstellbar.

image

Die Auswertung des Logfiles mit PAL

Nachdem die Messung gelaufen ist, können wir mit der Auswertung und Analyse der Werte beginnen. Hierzu rufen wir das PAL-Programm auf und klicken und durch die Einstellungen. Im zweiten Reiter wählen wir die von uns erzeugte BLG-Datei

image

Unter “Threshold File” wählen wir “Microsoft Hyper-V R2 SP1” aus

image

Im nächsten Fenster werden uns einige Fragen gestellt, diese sind

    • NumberOfProcessors – Hier wird die Anzahl an Kernen eingetragen, die auch im Taskmanager unter Performance/Leistung angezeigt wird
    • ThreeGBSwitch – Wird der RAM des Servers künstlich auf 3 GB begrenzt? Ich vermute mal nein ;)
    • SixtyFourBit – Ist das System ein 64-Bit-System?
    • TotalMemory – Die Anzahl an Arbeitsspeicher im Server
    • RAID5Drives – Sind in dem Server Festplatten zu einem RAID5-Verbund zusammengeschlossen? Hier müssen, falls ja, die Laufwerksbuchstaben angegeben werden
    • RAID1Drives – Sind Festplatten im RAID1 oder RAID10-Verbund vorhanden? Wenn ja, müssen hier die Laufwerksbuchstaben angegeben werden

image

Unter “Output Options” können die Analyse-Intervalle im Logfile angegeben werden, alternativ werden automatisch Intervalle gesetzt. Die untere Option zwingt das Programm, alle Counter auszuwerten, falls diese vorhanden sind.

image

Unter “File Output” kann der Ausgabe-Pfad sowie das Ausgabe-Format gewählt werden. Standardmäßig wird ein HTML-Report erzeugt, auf Wunsch kann allerdings auch eine XML-Datei erzeugt werden.

image

Der Reiter “Queue” zeigt uns eine Zusammenfassung der Einstellungen an.

image

Unter “Execute” können wir wählen ob die Auswertung sofort gestartet wird oder in eine Warteschlange aufgenommen wird, um später konvertiert zu werden. Zusätzlich kann hier die Priorität der Konvertierung heruntergesetzt werden.

image

Als letzten Schritt klicken wir auf “Finish” und die Konvertierung startet. Wenn diese fertig ist, öffnet sich ein Browser mit dem erzeugten HTML-Report.

Die Übersetzung des Logfiles

Wenn die Erstellung des Logfiles nicht auf einem englischen System vorgenommen wurde, kann es passieren das nach dem Start der Auswertung der folgende Fehler auftaucht.

image

Dies bedeutet, dass das Programm die BLG-Datei nicht lesen kann. In diesem Fall muss man sich das kleine Programm “Perfmon Log Translator” herunterladen und die Datei konvertieren. Das Programm ist hier zu finden:

Download: Perfmon Log Translator (PLT)

Das Programm ist sehr einfach aufgebaut, man wählt als erstes seine Datei aus, wählt die Quell-Sprache und kann dann eigentlich schon mit “Execute!” die Konvertierung starten.

image

Das Ergebnis sieht wie folgt aus:

image

Wenn wir nun das PAL-Tool mit dem neuen Logfile füttern, sieht das Ergebnis besser aus:

image

Der Report

Wenn die Auswertung komplett durchgelaufen ist, bekommen wir als Ausgabe einen Report, der als erstes alle Fehler bzw. Warnungen in chronologischer Reihenfolge auflistet, danach werden alle Auswertungen, gruppiert nach Parameter, aufgelistet. Der Report an sich ist sehr aufwendig und groß, zusätzlich zu den Werten werden noch weitere Informationen und Tipps aufgelistet. Dies sieht z.B. für die Anzahl an Disk-Transfers pro Sekunde wie folgt aus:

image

 

Wenn Sie Unterstützung bei der Messung Ihrer Host-Performance, Hilfe bei der Interpretierung Ihrer Ergebnisse oder Referenz-Werte von z.B. unseren Systemen benötigen stehen wir Ihnen natürlich gerne zur Verfügung.

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.

  • A. Spies sagt:

    Scheint nicht mit der Version Hyper-V R2 CORE zu funktionieren. Bei diesem müsste man den Server-Manager / den Performance-Monitor remote verbinden, dann ist allerdings das “Fertig stellen”-Feld im Einrichtungs-Dialog “Neuen Sammlungssatz erstellen” ausgegraut. Dabei scheint es egal zu sein, wo die verwendete .XML-Datei liegt (auf dem Host, auf dem Client/Server mit dem Remote-Server-Manager, Netzwerkshare).

    Gibt es hierfür einen Kniff, wie auch dort das Perfmon genutzt werden kann?

  • Jan Kappen sagt:

    Hi,
    funktioniert eine manuelle Auswahl der Indikatoren ebenfalls nicht oder funktioniert hier die Erstellung?
    Gruß

  • A. Spies sagt:

    Eine manuelle Auswahl der Indikatoren funktioniert, allerdings ist das relativ aufwendig. Sollte man von allen – im Blog aufgelisteten – Indikatoren immer alle Instanzen wählen? Eine Verwendung des XML-Files von PAL funktioniert leider nicht bei Core.

  • Jan Kappen sagt:

    Das kommt darauf an, was genau du beobachten möchtest. Wenn du ein Problem mit dem Festplatten-System vermutest bzw. “beweisen” möchtest macht es wenig Sinn, Dynamic Memory zu beobachten. Um allerdings einen Gesamt-Pberblick zu bekommen sind die von PAL empfohlenen Indikatoren durchaus sinnvoll. Außerdem kostet es (außer der zusätzlichen Zeit) nichts, wenn alle Indikatoren dabei sind :)
    Gruß

  • Andreas sagt:

    Hallo,
    ich habe das gleiche Problem wie A. Spies. Außerdem fehlen bei meinen Hyper-V Servern die Performance Counter für die Hyper-V-spefifischen Werte.

    Vielleicht einen Tipp?

    Gruß
    Andreas

  • Peter Weber sagt:

    Hi,

    Danke Jan für die tolle Anleitung.

    Aber es geht heute noch etwas einfacher mit dem kostenlosen Veeam ONE.

    Ein Super Tool für Kurzzeit- und Langzeit-Analysen.
    Über 200 vorkompilierte Warneinrichtungen und eine umfangreiche Knowledge Base warnen Sie rechtzeitig bei Problemen und bieten außerdem alle nötigen Informationen zur Fehlersuche, Ursachenanalyse und Problemlösung.

    Probiere es einfach aus. Mir hat es sehr geholfen.

    Veeam ONE – http://www.veeam.com/de/virtual-server-management-one-free.html

    Gruss Peter

  • Jan Kappen sagt:

    Hallo Peter,
    vielen Dank für deinen Kommentar. Der Beitrag ist bereits über zwei Jahre alt, in der Zwischenzeit hat sich einiges getan :) Wir setzen Veeam One bei einigen unserer Kunden ein, vor allem da die Lizenz für die vollständige Veeam One-Lizenz bereits in den Essential-Lizenzen enthalten ist und diese dann “nur” installiert und eingerichtet werden muss.
    Lieben Gruß, Jan

  • >