Performance-Probleme des Storage unter Hyper-V analysieren

    Storage-Performance analysieren mit perfmon.exeNach dem Kauf neuer Hardware und der Konfi­guration des SANs kann sich Ernüch­terung breit­machen, wenn wichtige Appli­kationen nicht den erwarteten Performance­schub erhalten. Dieser Beitrag zeigt, welche Indika­toren von Perf­mon dabei helfen, Engpässe im Storage-System aufzuspüren. Mit diesem Tool lassen sich auch Probleme bei CSV entdecken.

    Neben den Indikatoren für Prozessorlast und Arbeitsspeicher­belegung spielt die Datenträgerleistung für die Analyse von Performance-Problemen eine wesentliche Rolle. Task-Manager und Ressourcen Monitor lassen einen ersten schnellen Blick auf die Auslastung eines Systems zu, doch wenn detaillierte Leistungsdaten abgerufen werden müssen, kommt man um den Performance Monitor (Perfmon.exe) nicht herum.

    Analyse im produktiven Betrieb

    Die Leistungs­fähigkeit eines Hyper-V-Hosts hängt wesentlich von den Latenzen ab, die das Festspeicher­array gegenüber den virtuellen Maschinen aufweist. Storage-IOPS lassen sich bereits im Vorfeld aufschlüsseln und planen, damit virtuelle Server später performant betrieben werden können und Applikationen wie SQL oder Exchange unter Last nicht an ihre Grenzen stoßen.

    Windows Server lässt aber auch eine gezielte Leistungs­überwachung im laufenden Betrieb zu und liefert die dafür erforderlichen Performance-Counter. Unter anderem gibt es auch einen Sammelsatz von Indikatoren speziell für die Analyse von Cluster Shared Volumes.

    Performance-Counter zur Ermittlung von IO-Latenzen

    Einer der wichtigsten Counter für die Eingrenzung von Performance-Engpässen bei der Datenträgerleistung sind die Indikatoren

    • Logischer Datenträger(*)\Mittlere Sek./Lesevorgänge
    • Logischer Daten­träger(*)\Mitt­lere Sek./Schreibvorgänge

    Performance-Counter für logische Datenträger in Perfmon

    Beide Werte geben die durchschnittliche Zeit in Sekunden an, in der Daten gelesen oder geschrieben werden. Sie lassen Engpässe aufgrund von Datenträger­auslastung oder ungünstigen Konfigu­rationen erkennen. Nicht nur auf dem Host sind diese Indikatoren aussagekräftig, sondern auch in einer virtuellen Maschine.

    Wenn das System genug IOPS liefern kann, dann bewegen sich diese Werte zwischen 0,001 Sekunden (1 ms) und 15 ms. Permanente Werte zwischen 15 ms und 25 ms haben einen eher ungünstigen Einfluss auf die Performance von Applikationen und alles ab 26 ms muss als problematisch eingestuft werden.

    Beobachtung über einen festgelegten Zeitraum, mit Mouseover lassen sich gezielt Werte ausgeben.

    Auch für physikalische Datenträger gibt es entsprechende Counter. Diese unterscheiden sich jedoch nicht sonderlich von denen für die logischen, beachten sollte man jedoch, dass das logische Volume meist einen Teil eines physikalischen Arrays darstellt.

    Zu den beiden Latenz-Countern nehmen wir den Indikator für die Leerlaufzeit in % (Idle Time) des Datenträgers plus die Disk Transfers/sec (Übertragungen/s), also IOPS lesen und schreiben, hinzu, um zu erkennen, unter welcher Last das Laufwerk ist und bekommen so ein erstes Analysespektrum.

    Performance Monitor für Cluster Shared Volumes

    Spezielle Aufmerksamkeit gebührt den Cluster Shared Volumes, da diese LUNs dem gemeinsamen Zugriff mehrerer Knoten dienen und im Fall eines Hyper-V Failovercluster einer Vielzahl von virtuellen Maschinen genügend IOPS bereitstellen müssen. Windows Server liefert eine ganze Reihe abgestimmter Indikatoren für CSVs, und die Analyse­bandbreite lässt sich granular einstellen.

    Doch in dieser Indikatoren­sammlung werden nicht nur Counter für den Direct IO angeboten, sondern auch eine Reihe für Redirected IO. Es ist möglich, Leistungsdaten vom CSV-Filesystem abzugreifen oder einen Layer darunter vom CSV Volume Manager, wo der Block Level Redirected IO ankommt.

    Für einen Cluster werden spezifische Indikatoren mitgeliefert.

    Um auch bei Cluster Shared Volumes gleichartige Messwerte für die IO-Latenzen zu erhalten, wählt man zum Beispiel die Counter IO Read Latency und IO Write Latency inklusive der entsprechenden Volumes aus. Wenn die Daten direkt fließen (Direct IO), dann fallen diese Werte gleich den Messwerten für die logischen/physikalischen Datenträger aus, beispielsweise Logischer Datenträger(*)\Mittlere Sek./Lesevorgänge.

    Monitoring der Cluster Shared Volumes

    Darüber hinaus bietet die Sammlung auch diverse Troubleshooting-Indikatoren, beispielsweise für den Volume State, welcher den aktuellen CSV-Status (Status 4 = Active State, IO normal) ausgibt oder Files opened, womit alle aktuell geöffneten Dateien angezeigt werden.

    Möchte man die gesamte Anzahl an IOPS, also Direct IO und Redirected IO darstellen, und die Aktivität der Cluster Shared Volumes überwachen, dann dienen die Indikatoren Reads/sec und Writes/sec. diesem Zweck.

    Keine Kommentare