VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

Teil 1. Über die CPU
Teil 2. Über das Gedächtnis

Heute analysieren wir die Metriken des Festplattensubsystems in vSphere. Ein Speicherproblem ist der häufigste Grund für eine langsame virtuelle Maschine. Wenn bei CPU und RAM die Fehlerbehebung auf der Hypervisor-Ebene endet, müssen Sie sich bei Problemen mit der Festplatte möglicherweise mit dem Datennetzwerk und dem Speichersystem befassen.

Ich werde das Thema am Beispiel des Blockzugriffs auf Speichersysteme diskutieren, obwohl die Zähler für den Dateizugriff ungefähr gleich sind.

Ein bisschen Theorie

Wenn man über die Leistung des Festplattensubsystems virtueller Maschinen spricht, achtet man normalerweise auf drei miteinander verbundene Parameter:

  • Anzahl der Ein-/Ausgabeoperationen (Input/Output Operations Per Second, IOPS);
  • Durchsatz;
  • Verzögerung von Ein-/Ausgabevorgängen (Latenz).

Anzahl der IOPS Normalerweise wichtig für zufällige Arbeitslasten: Zugriff auf Festplattenblöcke, die sich an verschiedenen Orten befinden. Ein Beispiel für eine solche Belastung könnten Datenbanken, Geschäftsanwendungen (ERP, CRM) usw. sein.

Durchsatz wichtig für sequentielle Ladungen: Zugriff auf hintereinander liegende Blöcke. Beispielsweise können Dateiserver (aber nicht immer) und Videoüberwachungssysteme eine solche Belastung erzeugen.

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

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

Die Blockgröße ist ein ziemlich wichtiges Merkmal. Moderne Versionen von ESXi erlauben Blöcke mit einer Größe von bis zu 32 KB. Ist der Block noch größer, wird er in mehrere geteilt. Nicht alle Speichersysteme können mit so großen Blöcken effizient arbeiten, daher gibt es in den erweiterten ESXi-Einstellungen einen DiskMaxIOSize-Parameter. Damit können Sie die maximale Blockgröße reduzieren, die vom Hypervisor übersprungen wird (weitere Details). hier). Bevor Sie diesen Parameter ändern, empfehle ich Ihnen, Rücksprache mit dem Hersteller des Speichersystems zu halten oder die Änderungen zumindest auf einem Labortisch zu testen. 

Eine große Blockgröße kann sich nachteilig auf die Speicherleistung auswirken. Auch wenn die Anzahl der IOPS und der Durchsatz relativ gering sind, können bei einer großen Blockgröße hohe Latenzen beobachtet werden. Achten Sie daher auf diesen Parameter.

Latency – der interessanteste Leistungsparameter. Die E/A-Latenz für eine virtuelle Maschine besteht aus:

  • Verzögerungen innerhalb des Hypervisors (KAVG, Average Kernel MilliSec/Read);
  • Verzögerung, die vom Datennetzwerk und Speichersystem bereitgestellt wird (DAVG, Average Driver MilliSec/Command).

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

GAVG und DAVG werden gemessen und KAVG berechnet: GAVG–DAVG.

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung
Quelle

Schauen wir uns das genauer an KAVG. Im Normalbetrieb sollte KAVG gegen Null tendieren oder zumindest deutlich kleiner als DAVG sein. Der einzige mir bekannte Fall, in dem KAVG erwartungsgemäß hoch ist, ist das IOPS-Limit auf der VM-Festplatte. Wenn Sie in diesem Fall versuchen, den Grenzwert zu überschreiten, erhöht sich der KAVG.

Die wichtigste Komponente von KAVG ist QAVG – die Verarbeitungswartezeit im Hypervisor. Die übrigen Bestandteile von KAVG sind vernachlässigbar.

Die Warteschlange im Festplattenadaptertreiber und die Warteschlange zu den Monden haben eine feste Größe. Bei stark ausgelasteten Umgebungen kann es sinnvoll sein, diese Größe zu erhöhen. Hier beschreibt, wie man die Warteschlangen im Adaptertreiber erhöht (gleichzeitig erhöht sich die Warteschlange zu den Monden). Diese Einstellung funktioniert, wenn nur eine VM mit dem Mond arbeitet, was selten vorkommt. Befinden sich mehrere VMs auf dem Mond, müssen Sie den Parameter ebenfalls erhöhen Disk.SchedNumReqOutstanding (Anweisungen  hier). Indem Sie die Warteschlange vergrößern, verringern Sie QAVG bzw. KAVG.

Aber auch hier gilt: Lesen Sie zunächst die Dokumentation des HBA-Anbieters und testen Sie die Änderungen auf einem Labortisch.

Die Größe der Warteschlange zum Mond kann durch die Einbindung des SIOC-Mechanismus (Storage I/O Control) beeinflusst werden. Es ermöglicht einen einheitlichen Zugriff auf den Mond von allen Servern im Cluster, indem die Warteschlange auf den Servern dynamisch auf den Mond umgestellt wird. Das heißt, wenn auf einem der Hosts eine VM läuft, die unverhältnismäßig viel Leistung erfordert (Noisy Neighbor VM), reduziert SIOC die Warteschlangenlänge auf diesem Host auf den Mond (DQLEN). Mehr Details hier.

Wir haben KAVG geklärt, jetzt ein wenig darüber DAVG. Hier ist alles einfach: DAVG ist die durch die externe Umgebung (Datennetzwerk und Speichersystem) verursachte Verzögerung. Jedes moderne und nicht ganz so moderne Speichersystem verfügt über eigene Leistungsindikatoren. Um Probleme mit DAVG zu analysieren, ist es sinnvoll, diese zu betrachten. Wenn auf der ESXi- und Speicherseite alles in Ordnung ist, überprüfen Sie das Datennetzwerk.

Um Leistungsprobleme zu vermeiden, wählen Sie die richtige Path Selection Policy (PSP) für Ihr Speichersystem. 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 Pfade zum Speichersystem verwenden. Im Fall von ALUA werden nur die Pfade zum Controller verwendet, dem der Mond gehört. Nicht alle Speichersysteme auf ESXi verfügen über Standardregeln, die die Round-Robin-Richtlinie festlegen. Wenn es für Ihr Storage-System keine Regel gibt, nutzen Sie ein Plugin des Storage-System-Herstellers, das eine entsprechende Regel auf allen Hosts im Cluster erstellt, oder erstellen Sie selbst eine Regel. Einzelheiten hier

Einige Speichersystemhersteller empfehlen außerdem, die Anzahl der IOPS pro Pfad vom Standardwert 1000 auf 1 zu ändern. In unserer Praxis war es dadurch möglich, mehr Leistung aus dem Speichersystem „herauszuquetschen“ und die für ein Failover erforderliche Zeit deutlich zu reduzieren im Falle eines Controller-Ausfalls oder -Updates. Überprüfen Sie die Empfehlungen des Anbieters und versuchen Sie, diesen Parameter zu ändern, wenn keine Kontraindikationen vorliegen. Einzelheiten hier.

Grundlegende Leistungsindikatoren für das Festplattensubsystem der virtuellen Maschine

Leistungsindikatoren für das Festplattensubsystem in vCenter werden in den Abschnitten „Datenspeicher“, „Festplatte“ und „Virtuelle Festplatte“ gesammelt:

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

Im Abschnitt Datenspeicher Es gibt Metriken für vSphere-Festplattenspeicher (Datenspeicher), auf denen sich die VM-Festplatten befinden. Hier finden Sie Standardzähler für:

  • IOPS (durchschnittliche Lese-/Schreibanfragen pro Sekunde), 
  • Durchsatz (Lese-/Schreibrate), 
  • Verzögerungen (Lesen/Schreiben/höchste Latenz).

Im Prinzip ist aus den Namen der Schalter alles klar. Ich möchte Sie noch einmal darauf aufmerksam machen, dass es sich hier nicht um Statistiken für eine bestimmte VM (oder VM-Festplatte) handelt, sondern um allgemeine Statistiken für den gesamten Datenspeicher. Meiner Meinung nach ist es bequemer, sich diese Statistiken in ESXTOP anzusehen, zumindest aufgrund der Tatsache, dass dort die minimale Messdauer 2 Sekunden beträgt.

Im Abschnitt Festplatten Es gibt Metriken zu Blockgeräten, die von der VM verwendet werden. Es gibt Zähler für IOPS vom Summationstyp (die Anzahl der Ein-/Ausgabevorgänge während des Messzeitraums) und mehrere Zähler im Zusammenhang mit Blockzugriffen (abgebrochene Befehle, Bus-Resets). Meiner Meinung nach ist es auch bequemer, diese Informationen in ESXTOP anzuzeigen.

Abschnitt Virtuelle Festplatte – am nützlichsten im Hinblick auf die Suche nach Leistungsproblemen des VM-Festplattensubsystems. Hier können Sie die Leistung für jede virtuelle Festplatte sehen. Diese Informationen sind erforderlich, um zu verstehen, ob bei einer bestimmten virtuellen Maschine ein Problem vorliegt. Zusätzlich zu den Standardindikatoren für die Anzahl der E/A-Vorgänge, das Lese-/Schreibvolumen und Verzögerungen enthält dieser Abschnitt nützliche Zähler, die die Blockgröße anzeigen: Größe der Lese-/Schreibanforderung.

Im Bild unten sehen Sie ein Diagramm der VM-Festplattenleistung, in dem Sie die Anzahl der IOPS, die Latenz und die Blockgröße sehen können. 

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

Sie können auch Leistungsmetriken für den gesamten Datenspeicher anzeigen, wenn SIOC aktiviert ist. Hier finden Sie grundlegende Informationen zur durchschnittlichen Latenz und IOPS. Standardmäßig können diese Informationen nur in Echtzeit angezeigt werden.

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

ESXTOP

ESXTOP verfügt über mehrere Bildschirme, die Informationen zum Host-Festplattensubsystem als Ganzes, zu einzelnen virtuellen Maschinen und ihren Festplatten bereitstellen.

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

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

NVDISK ist die Anzahl der VM-Festplatten. Um Informationen für jede Festplatte anzuzeigen, drücken Sie „e“ und geben Sie die GID der gewünschten VM ein.

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

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

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

NPTH – die Anzahl der Wege zu den Monden, die von diesem Adapter aus sichtbar sind. Um Informationen zu jedem Pfad auf dem Adapter zu erhalten, drücken Sie „e“ und geben Sie den Namen des Adapters ein:

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

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.

Der Festplattengerätebildschirm, der durch Drücken der Taste „u“ aufgerufen wird, bietet Informationen zu einzelnen Blockgeräten – Monden (die Felder A, B, F, G, I sind im Bild unten ausgewählt). Hier können Sie den Status der Warteschlange für die Monde sehen.

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

DQLEN – Warteschlangengröße für ein Blockgerät.
ACTV – Anzahl der I/O-Befehle im ESXi-Kernel.
QUED – Anzahl der I/O-Befehle in der Warteschlange.
%US DOLLAR – ACTV / DQLEN × 100 %.
BELASTUNG – (ACTV + QUED) / DQLEN.

Wenn %USD hoch ist, sollten Sie erwägen, die Warteschlange zu vergrößern. Je mehr Befehle in der Warteschlange sind, desto höher ist der QAVG und dementsprechend der KAVG.

Sie können auch auf dem Bildschirm „Festplattengerät“ sehen, ob VAAI (vStorage API for Array Integration) auf dem Speichersystem ausgeführt wird. Markieren Sie dazu die Felder A und O.

Mit dem VAAI-Mechanismus können Sie einen Teil der Arbeit vom Hypervisor direkt auf das Speichersystem übertragen, beispielsweise Nullen, Blöcke kopieren oder blockieren.

VM-Leistungsanalyse in VMware vSphere. Teil 3: Lagerung

Wie Sie im Bild oben sehen können, funktioniert VAAI auf diesem Speichersystem: Null- und ATS-Primitive werden aktiv verwendet.

Tipps zur Optimierung der Arbeit mit dem Festplattensubsystem auf ESXi

  • Achten Sie auf die Blockgröße.
  • Legen Sie die optimale Warteschlangengröße auf dem HBA fest.
  • Vergessen Sie nicht, SIOC auf Datenspeichern zu aktivieren.
  • Wählen Sie einen PSP entsprechend den Empfehlungen des Speichersystemherstellers aus.
  • Stellen Sie sicher, dass VAAI funktioniert.

Nützliche Artikel zum Thema:http://www.yellow-bricks.com/2011/06/23/disk-schednumreqoutstanding-the-story/
http://www.yellow-bricks.com/2009/09/29/whats-that-alua-exactly/
http://www.yellow-bricks.com/2019/03/05/dqlen-changes-what-is-going-on/
https://www.codyhosterman.com/2017/02/understanding-vmware-esxi-queuing-and-the-flasharray/
https://www.codyhosterman.com/2018/03/what-is-the-latency-stat-qavg/
https://kb.vmware.com/s/article/1267
https://kb.vmware.com/s/article/1268
https://kb.vmware.com/s/article/1027901
https://kb.vmware.com/s/article/2069356
https://kb.vmware.com/s/article/2053628
https://kb.vmware.com/s/article/1003469
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/vsphere-esxi-vcenter-server-67-performance-best-practices.pdf

Source: habr.com

Kommentar hinzufügen