VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung



Teil 1. Über die CPU
Teil 2. Über den Speicher

Heute werden wir die Metriken des Festplattensubsystems in vSphere analysieren. Das Problem mit dem Speicher ist der häufigste Grund für eine langsame virtuelle Maschine. Wenn in Fällen mit CPU und RAM die Fehlerbehebung auf Hypervisor-Ebene endet, müssen Sie sich bei Problemen mit der Festplatte möglicherweise mit dem Datennetz und den Speichersystemen befassen.

Ich werde das Thema am Beispiel des Blockzugriffs auf den Speicher analysieren, obwohl die Zähler beim Dateizugriff ungefähr gleich sind.

Ein bisschen Theorie


Beachten Sie normalerweise drei verwandte Parameter, wenn Sie über die Leistung des Festplattensubsystems virtueller Maschinen sprechen:

  • Anzahl der Eingabe- / Ausgabeoperationen (Eingabe- / Ausgabeoperationen pro Sekunde, IOPS);
  • Bandbreite (Durchsatz);
  • Latenz der Eingabe- / Ausgabeoperationen (Latenz).

Die Anzahl der IOPS ist normalerweise wichtig für zufällige Workloads: Zugriff auf Blöcke auf der Festplatte an verschiedenen Orten. Als Beispiel für eine solche Belastung können Datenbanken, Geschäftsanwendungen (ERP, CRM) usw. dienen.

Der Durchsatz ist wichtig für sequentielle Lasten: Zugriff auf nacheinander angeordnete Blöcke. Beispielsweise können Dateiserver (aber nicht immer) und Videoüberwachungssysteme eine solche Last erzeugen.

Der Durchsatz hängt wie folgt mit der Anzahl der E / A-Vorgänge zusammen:

Durchsatz = IOPS * Blockgröße, wobei Blockgröße die Größe des Blocks ist.

Die Blockgröße ist ein ziemlich wichtiges Merkmal. Moderne ESXi-Versionen ermöglichen Blöcke mit einer Größe von bis zu 32.767 KB. Wenn der Block noch größer ist, wird er in mehrere unterteilt. Nicht alle Speichersysteme können mit so großen Blöcken effektiv arbeiten, daher verfügt Advanced Settings ESXi über den Parameter DiskMaxIOSize. Mit dieser Option können Sie die maximale Größe eines vom Hypervisor übersprungenen Blocks reduzieren (weitere Details hier ). Ich empfehle, dass Sie sich vor dem Ändern dieses Parameters an den Hersteller von Speichersystemen wenden oder die Änderungen zumindest am Labortisch testen.

Große Blockgrößen können die Speicherleistung beeinträchtigen. Selbst wenn die Anzahl der IOPS und der Durchsatz relativ gering sind, können bei einer großen Blockgröße hohe Latenzen auftreten. Achten Sie daher auf diesen Parameter.

Die Latenz ist der interessanteste Leistungsparameter. Die Latenz von E / A-Vorgängen für eine virtuelle Maschine ist die Summe aus:

  • Verzögerungen innerhalb des Hypervisors (KAVG, Average Kernel MilliSec / Read);
  • Latenz durch Datennetz und Speicher (DAVG, Average Driver MilliSec / Command).

Die im Gastbetriebssystem sichtbare Gesamtverzögerung (GAVG, Average Guest MilliSec / Command) ist die Summe aus KAVG und DAVG.

GAVG und DAVG werden gemessen und KAVG wird berechnet: GAVG - DAVG.


Quelle

Lassen Sie uns bei KAVG verweilen. Im normalen Betrieb sollte der KAVG gegen Null tendieren oder zumindest viel kleiner als der DAVG sein. Der einzige Fall, von dem ich weiß, wann KAVG voraussichtlich hoch sein wird, ist das IOPS-Limit auf der VM-Festplatte. In diesem Fall erhöht sich der KAVG, wenn versucht wird, den Grenzwert zu überschreiten.

Die wichtigste Komponente von KAVG ist QAVG - die Zeit in der Warteschlange für die Verarbeitung im Hypervisor. Die übrigen Bestandteile von KAVG sind vernachlässigbar.

Die Warteschlange im Festplattenadaptertreiber und in der Mondwarteschlange hat eine feste Größe. In stark belasteten Umgebungen kann diese Größe nützlich sein, um sie zu erhöhen. Es wird beschrieben, wie die Warteschlange im Adaptertreiber vergrößert wird (gleichzeitig wird die Warteschlange zu den Monden vergrößert). Diese Einstellung funktioniert, wenn nur eine VM mit dem Mond arbeitet, was selten vorkommt. Wenn sich mehrere VMs auf dem Mond befinden, müssen Sie auch den Parameter Disk.SchedNumReqOutstanding erhöhen (Anweisungen hier ). Durch Erhöhen der Warteschlange verringern Sie QAVG bzw. KAVG.

Lesen Sie jedoch zunächst die Dokumentation des HBA-Anbieters und testen Sie die Änderungen am Labortisch.

Die Größe der Warteschlange zum Mond kann durch die Einbeziehung des SIOC-Mechanismus (Storage I / O Control) beeinflusst werden. Es bietet einen einheitlichen Zugriff auf den Mond von allen Servern im Cluster, indem die Warteschlange auf den Servern dynamisch auf den Mond geändert wird. Das heißt, wenn eine VM auf einem Host ausgeführt wird, der eine unverhältnismäßige Leistung erfordert (verrauschte Nachbar-VM), reduziert SIOC die Länge der Warteschlange bis zum Mond auf diesem Host (DQLEN). Weitere Details hier .

KAVG hat sich darum gekümmert , jetzt ein wenig über DAVG . Hier ist alles einfach: DAVG ist die Verzögerung, die durch die externe Umgebung (Datennetz und Speicher) verursacht wird. Jedes moderne und nicht so Speichersystem hat seine eigenen Leistungsindikatoren. Um Probleme mit DAVG zu analysieren, ist es sinnvoll, sie zu betrachten. Wenn auf der ESXi- und Speicherseite alles in Ordnung ist, überprüfen Sie das Datennetz.

Um Leistungsprobleme zu vermeiden, wählen Sie die richtige Pfadauswahlrichtlinie (PSP) für Ihren Speicher. Fast alle modernen Speichersysteme unterstützen PSP Round-Robin (mit oder ohne ALUA, Asymmetric Logical Unit Access). Mit dieser Richtlinie können Sie alle verfügbaren Speicherpfade verwenden. Im Fall von ALUA werden nur die Pfade zu dem Controller verwendet, dem der Mond gehört. Nicht alle Speichersysteme unter ESXi verfügen über Standardregeln, die die Round-Robin-Richtlinie festlegen. Wenn für Ihr Speichersystem keine Regel vorhanden ist, verwenden Sie das Plug-In des Speicherherstellers, mit dem die entsprechende Regel auf allen Hosts im Cluster erstellt wird, oder erstellen Sie die Regel selbst. Details hier .

Einige Speicheranbieter empfehlen außerdem, die Anzahl der IOPS pro Pfad vom Standardwert 1000 auf 1 zu ändern. In unserer Praxis konnten wir dadurch mehr Leistung aus dem Speicher herausholen und die für das Failover bei einem Controller-Ausfall oder einer Aktualisierung erforderliche Zeit erheblich verkürzen. Überprüfen Sie die Empfehlungen des Herstellers. Wenn keine Kontraindikationen vorliegen, ändern Sie diesen Parameter. Details hier .

Grundlegende Leistungsindikatoren des Festplattensubsystems einer virtuellen Maschine


Die Leistungsindikatoren für das Festplattensubsystem in vCenter werden in den Abschnitten Datenspeicher, Festplatte, Virtuelle Festplatte erfasst:



Der Abschnitt Datenspeicher enthält Metriken für vSphere-Festplattenspeicher (Datenspeicher), auf denen sich VM-Festplatten befinden. Hier finden Sie Standardzähler für:

  • IOPS (Durchschnittliche Lese- / Schreibanforderungen pro Sekunde),
  • Bandbreite (Lese- / Schreibrate),
  • Verzögerungen (Lesen / Schreiben / Höchste Latenz).

Aus den Namen der Zähler ist im Prinzip alles klar. Ich möchte noch einmal darauf hinweisen, dass die Statistiken hier nicht für eine bestimmte VM (oder VM-Festplatte) gelten, sondern allgemein für den gesamten Datenspeicher. Meiner Meinung nach ist es bequemer, diese Statistiken in ESXTOP zu betrachten, zumindest auf der Grundlage, dass die minimale Messdauer 2 Sekunden beträgt.

Der Abschnitt Datenträger enthält Metriken für die von der VM verwendeten Blockgeräte. Es gibt IOPS-Zähler vom Summationstyp (Anzahl der Eingabe- / Ausgabeoperationen pro Messperiode) und mehrere Zähler für den Blockzugriff (Befehle abgebrochen, Bus zurückgesetzt). Meiner Meinung nach sind diese Informationen auch in ESXTOP bequemer anzusehen.

Der Abschnitt " Virtuelle Festplatte " ist am nützlichsten für die Fehlerbehebung bei Leistungsproblemen des VM-Festplattensubsystems. Hier sehen Sie die Leistung für jede virtuelle Festplatte. Diese Informationen werden benötigt, um zu verstehen, ob eine bestimmte virtuelle Maschine ein Problem hat. Zusätzlich zu den Standardzählern für die Anzahl der Eingabe- / Ausgabeoperationen, das Lese- / Schreibvolumen und die Verzögerungen enthält dieser Abschnitt nützliche Zähler, die die Blockgröße anzeigen: Lese- / Schreibanforderungsgröße.

In der folgenden Abbildung sehen Sie eine grafische Darstellung der Leistung der VM-Festplatte, in der Sie die Anzahl der IOPS, die Latenz und die Blockgröße sehen können.



Leistungsmetriken können auch im gesamten Datenspeicher angezeigt werden, wenn SIOC aktiviert ist. Hier finden Sie einige grundlegende Informationen zu durchschnittlicher Latenz und IOPS. Standardmäßig können diese Informationen nur in Echtzeit angezeigt werden.



ESXTOP


ESXTOP verfügt über mehrere Bildschirme, auf denen Informationen zum gesamten Host-Festplattensubsystem, zu einzelnen virtuellen Maschinen und deren Festplatten angezeigt werden.

Beginnen wir mit Informationen zu virtuellen Maschinen. Der Bildschirm „Disk VM“ wird mit der Taste „v“ aufgerufen:



NVDISK ist die Anzahl der VM-Festplatten. Um Informationen auf jeder Festplatte anzuzeigen, drücken Sie "e" und geben Sie die GID der VM ein, an der Sie interessiert sind.

Die Bedeutung der verbleibenden Parameter auf diesem Bildschirm ergibt sich aus ihren Namen.

Ein weiterer nützlicher Bildschirm zur Fehlerbehebung ist der Festplattenadapter. Es wird mit der Taste „d“ aufgerufen (im Bild unten sind die Felder A, B, C, D, E, G ausgewählt):



NPTH ist die Anzahl der Mondpfade, die von diesem Adapter aus sichtbar sind. Um Informationen zu den einzelnen Pfaden des Adapters zu erhalten, drücken Sie "e" und geben Sie den Namen des Adapters ein:



AQLEN - maximale Warteschlangengröße auf dem Adapter.

Auf diesem Bildschirm befinden sich auch die Verzögerungszähler, über die ich oben gesprochen habe: KAVG / cmd, GAVG / cmd, DAVG / cmd, QAVG / cmd .

Auf dem Bildschirm Festplattengerät, der mit der Taste „u“ aufgerufen wird, werden Informationen zu einzelnen Blockgeräten angezeigt - Monde (im Bild unten sind die Felder A, B, F, G, I ausgewählt). Hier sehen Sie den Status der Warteschlange zu den Monden.



DQLEN - Warteschlangengröße für ein Blockgerät.
ACTV ist die Anzahl der E / A-Befehle im ESXi-Kern.
QUED - Die Anzahl der E / A-Befehle in der Warteschlange.
% USD - ACTV / DQLEN × 100%.
LOAD - (ACTV + QUED) / DQLEN.

Wenn% USD hoch ist, sollten Sie erwägen, die Aufstellung zu erweitern. Je mehr Teams sich in der Warteschlange befinden, desto höher ist die QAVG und dementsprechend die KAVG.

Auf dem Bildschirm des Festplattengeräts können Sie auch sehen, ob die VAAI (vStorage API for Array Integration) im Speicher ausgeführt wird. Wählen Sie dazu die Felder A und O aus.

Mit dem VAAI-Mechanismus können Sie einen Teil der Arbeit vom Hypervisor direkt auf das Speichersystem übertragen, z. B. Nullstellen, Kopieren von Blöcken oder Blockieren.



Wie Sie im obigen Bild sehen können, arbeitet VAAI mit diesem Speichersystem: Null- und ATS-Grundelemente werden aktiv verwendet.

Tipps zur ESXi-Datenträgeroptimierung


  • Achten Sie auf die Größe des Blocks.
  • Stellen Sie die optimale Warteschlangengröße auf dem HBA ein.
  • Denken Sie daran, SIOC in den Datenspeichern zu aktivieren.
  • Wähle deine PSP gemäß den Empfehlungen des Herstellers.
  • Stellen Sie sicher, dass VAAI funktioniert.

Source: https://habr.com/ru/post/de461127/


All Articles