Leistung von virtuellen Computern und Datenträgern

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

In diesem Artikel wird die Leistung von Datenträgern verdeutlicht und beschrieben, wie Sie Azure Virtual Machines und Azure-Datenträger kombinieren. Es wird auch beschrieben, wie Sie Engpässe für Ihre Datenträger-E/A diagnostizieren können und welche Änderungen Sie zur Leistungsoptimierung vornehmen können.

Wie funktioniert die Datenträgerleistung?

Virtuelle Azure-Computer weisen Leistungsgrenzwerte für E/A-Vorgänge pro Sekunde (Disk Input/Output Operations per Second, IOPS) und Durchsatz auf, die auf dem Typ und der Größe des virtuellen Computers basieren. Betriebssystemdatenträger und reguläre Datenträger können an virtuelle Computer angefügt werden. Die Datenträger verfügen über eigene Grenzwerte für IOPS und Durchsatz.

Die Leistung Ihrer Anwendung wird begrenzt, wenn sie eine höhere IOPS- oder Durchsatzmenge anfordert, als für die virtuellen Computer oder angefügten Datenträger zugeordnet ist. Bei einer Begrenzung ist die Leistung der Anwendung nicht optimal. Dies kann negative Auswirkungen haben, z. B. eine höhere Latenz. Wir gehen nun einige Beispiele durch, um dieses Konzept zu verdeutlichen. Es geht nur um IOPS, um die Beispiele einfach zu halten. Dieselbe Logik gilt aber auch für den Durchsatz.

Obergrenzen der Datenträger-E/A

Setup:

  • Standard_D8s_v3
    • Nicht zwischengespeicherte IOPS: 12.800
  • E30-Betriebssystemdatenträger
    • IOPS: 500
  • Zwei E30-Datenträger × 2
    • IOPS: 500

Diagramm: Begrenzung für Datenträgerebene

Die auf dem virtuellen Computer ausgeführte Anwendung stellt eine Anforderung, für die 10.000 IOPS für den virtuellen Computer erforderlich sind. Alle Vorgänge sind für den virtuellen Computer zulässig, da er den Typ „Standard_D8s_v3“ aufweist und bis zu 12.800 IOPS ausführen kann.

Die 10.000 IOPS-Anforderungen werden in drei verschiedene Anforderungen für die verschiedenen Datenträger unterteilt:

  • 1\.000 IOPS werden vom Betriebssystemdatenträger angefordert.
  • 4\.500 IOPS werden von jedem regulären Datenträger angefordert.

Bei allen angefügten Datenträgern handelt es sich um E30-Datenträger, die nur 500 IOPS verarbeiten können. Sie antworten daher jeweils mit 500 IOPS. Die Leistung der Anwendung wird durch die angeschlossenen Datenträger begrenzt, und es können nur 1.500 IOPS verarbeitet werden. Für die Anwendung können bei höchster Leistung 10.000 IOPS erzielt werden, wenn leistungsstärkere Datenträger verwendet werden, z. B. P30-Datenträger vom Typ „SSD Premium“.

Obergrenzen der E/A der virtuellen Computer

Setup:

  • Standard_D8s_v3
    • Nicht zwischengespeicherte IOPS: 12.800
  • P30-Betriebssystemdatenträger
    • IOPS: 5.000
  • Zwei P30-Datenträger × 2
    • IOPS: 5.000

Diagramm: Obergrenzen der VM-Ebene

Die auf dem virtuellen Computer ausgeführte Anwendung sendet eine Anforderung, für die 15.000 IOPS erforderlich sind. Leider ist der virtuelle Computer vom Typ „Standard_D8s_v3“ nur für die Verarbeitung von 12.800 IOPS vorgesehen. Die Anwendung ist durch die VM-Grenzwerte begrenzt und muss die zugeteilten 12.800 IOPS zuordnen.

Diese angeforderten 12.800 IOPS werden in drei verschiedene Anforderungen für die verschiedenen Datenträger unterteilt:

  • 4\.267 IOPS werden vom Betriebssystemdatenträger angefordert.
  • 4\.266 IOPS werden von jedem regulären Datenträger angefordert.

Bei allen angefügten Datenträgern handelt es sich um P30-Datenträger, die 5.000 IOPS verarbeiten können. Sie antworten also mit den angeforderten Mengen.

Nicht im Cache zwischengespeicherte und zwischengespeicherte Grenzwerte virtueller Computer

Virtuelle Computer, für die sowohl Storage Premium als auch die Storage Premium-Zwischenspeicherung aktiviert sind, weisen bei der Speicherbandbreite zwei Einschränkungen auf. Nehmen wir nun den virtuellen Computer Standard_D8s_v3 als Beispiel. Hier ist die Dokumentation zur Dsv3-Serie und Standard_D8s_v3-VM:

Diagramm mit den Dsv3-Spezifikationen.

  • Der maximale nicht zwischengespeicherte Datenträgerdurchsatz ist die standardmäßige Speicherhöchstgrenze, die der virtuelle Computer verarbeiten kann.
  • Die maximale Grenze für den zwischengespeicherten Speicherdurchsatz ist eine separate Grenze, wenn Sie die Hostzwischenspeicherung aktivieren.

Bei der Hostzwischenspeicherung wird Speicher näher an die VM gebracht, so dass er schnell gelesen und beschrieben werden kann. Angaben zur Speichermenge, die dem virtuellen Computer für die Hostzwischenspeicherung zur Verfügung steht, finden Sie in der Dokumentation. Beispielsweise können Sie sehen, dass Standard_D8s_v3 200 GiB Zwischenspeicher enthält.

Sie können die Hostzwischenspeicherung aktivieren, wenn Sie Ihren virtuellen Computer erstellen und Datenträger anfügen. Sie können die Hostzwischenspeicherung für Ihre Datenträger auch für einen vorhandenen virtuellen Computer aktivieren und deaktivieren. Standardmäßig ist bei cachefähigen Datenträger das schreibgeschützte Zwischenspeichern aktiviert. Bei cachefähigen Betriebssystemdatenträger ist das Lesen/Schreiben-Zwischenspeichern aktiviert.

Der Screenshot zeigt die Hostzwischenspeicherung.

Sie können die Hostzwischenspeicherung für jeden Datenträger an Ihre Workloadanforderungen anpassen. Sie können Ihre Hostzwischenspeicherung wie folgt festlegen:

  • Schreibgeschützt: Für Workloads, die nur Lesevorgänge ausführen.
  • Lesen/Schreiben: Für Workloads mit einem ausgewogenen Verhältnis von Lese- und Schreibvorgängen.

Wenn Ihre Workload keinem dieser beiden Muster folgt, empfehlen wir die Verwendung der Hostzwischenspeicherung nicht.

Lassen Sie uns ein paar Beispiele für verschiedene Einstellungen der Hostzwischenspeicherung durchgehen und betrachten, wie sie sich auf Datenfluss und Leistung auswirken. In diesem ersten Beispiel sehen wir uns an, was mit E/A-Anforderungen geschieht, wenn die Hostzwischenspeicherung auf Nur Lesen festgelegt ist.

Setup:

  • Standard_D8s_v3
    • Zwischengespeicherte IOPS: 16.000
    • Nicht zwischengespeicherte IOPS: 12.800
  • P30-Datenträger
    • IOPS: 5.000
    • Hostzwischenspeicherung: Schreibgeschützt

Wenn ein Lesevorgang durchgeführt wird und die gewünschten Daten im Cache verfügbar sind, gibt der Cache die angeforderten Daten zurück. Es ist nicht erforderlich, vom Datenträger zu lesen. Dieser Lesevorgang zählt für den Cachegrenzwert der VM.

Diagramm, das einen Lesetreffer bei der Host-Lesezwischenspeicherung zeigt.

Wenn ein Lesevorgang durchgeführt wird und die gewünschten Daten nicht im Cache verfügbar sind, wird die Leseanforderung an den Datenträger weitergeleitet. Dann überträgt der Datenträger sie sowohl in den Cache als auch in die VM. Dieser Lesevorgang zählt sowohl für den Cachegrenzwert der VM als auch für den nicht zwischengespeicherten Grenzwert.

Diagramm, das einen Lesefehler bei der Host-Lesezwischenspeicherung zeigt.

Bei einem Schreibvorgang muss sowohl in den Cache als auch auf den Datenträger geschrieben werden, bevor der Schreibvorgang als abgeschlossen angesehen wird. Dieser Schreibvorgang zählt für den Cachegrenzwert der VM sowie für den nicht zwischengespeicherten Grenzwert.

Diagramm, das einen Schreibvorgang bei der Host-Lesezwischenspeicherung zeigt.

Als nächstes sehen wir uns an, was mit E/A-Anforderungen geschieht, wenn die Hostzwischenspeicherung auf Lesen/Schreiben festgelegt ist.

Setup:

  • Standard_D8s_v3
    • Zwischengespeicherte IOPS: 16.000
    • Nicht zwischengespeicherte IOPS: 12.800
  • P30-Datenträger
    • IOPS: 5.000
    • Hostzwischenspeicherung: Lesen/Schreiben

Ein Lesevorgang wird auf die gleiche Weise wie ein schreibgeschützter Vorgang behandelt. Schreibvorgänge sind das Einzige, was sich beim Zwischenspeichern von Lese-/Schreibvorgängen unterscheidet. Beim Schreiben mit auf Lesen/Schreiben eingestellter Hostzwischenspeicherung muss der Schreibvorgang nur in den Hostcache erfolgen, um als abgeschlossen angesehen zu werden. Der Schreibvorgang wird dann verzögert auf den Datenträger geschrieben, wenn der Cache regelmäßig geleert wird. Kunden können zusätzlich eine Leerung erzwingen, indem sie einen f/sync- oder fua-Befehl ausgeben. Dies bedeutet, dass ein Schreibvorgang zur zwischengespeicherten E/A gezählt wird, wenn er in den Cache geschrieben wird. Wenn der Schreibvorgang auf den Datenträger verzögert erfolgt, wird er zu nicht zwischengespeicherten E/A gezählt.

Diagramm mit Schreibvorgang bei Host-Lese-/Schreibzwischenspeicherung.

Fahren wir mit unserem virtuellen Computer vom Typ „Standard_D8s_v3“ fort. Nur dieses Mal werden wir die Hostzwischenspeicherung auf den Datenträgern aktivieren. Damit liegt der Grenzwert für die IOPS der VM bei 16.000 IOPS. An den virtuellen Computer sind drei zugrunde liegende P30-Datenträger angeschlossen, die jeweils 5.000 IOPS verarbeiten können.

Setup:

  • Standard_D8s_v3
    • Zwischengespeicherte IOPS: 16.000
    • Nicht zwischengespeicherte IOPS: 12.800
  • P30-Betriebssystemdatenträger
    • IOPS: 5.000
    • Hostzwischenspeicherung: Lesen/Schreiben
  • Zwei P30-Datenträger × 2
    • IOPS: 5.000
    • Hostzwischenspeicherung: Lesen/Schreiben

Das Diagramm zeigt ein Beispiel für die Hostzwischenspeicherung.

Die Anwendung verwendet einen virtuellen Computer vom Typ „Standard_D8s_v3“ mit aktivierter Zwischenspeicherung. Sie stellt eine Anforderung von 16.000 IOPS. Die Anforderungen werden abgeschlossen, sobald sie gelesen oder in den Cache geschrieben werden. Schreibvorgänge werden dann verzögert auf die angefügten Datenträger geschrieben.

Kombinierte nicht zwischengespeicherte und zwischengespeicherte Grenzwerte

Die Grenzwerte für die Zwischenspeicherung eines virtuellen Computers sind separat von ihren Grenzwerten für nicht zwischengespeicherte Daten. Das bedeutet, dass Sie die Hostzwischenspeicherung auf Datenträgern, die an eine VM angefügt sind, aktivieren können, während Sie die Hostzwischenspeicherung auf anderen Datenträgern nicht aktivieren. Diese Konfiguration ermöglicht es Ihren virtuellen Computern, eine Gesamtspeicher-E/A aus zwischengespeichertem Grenzwert und nicht zwischengespeichertem Grenzwert zu erhalten.

Lassen Sie uns ein Beispiel durchgehen, damit Sie verstehen, wie diese Grenzwerte zusammenwirken. Wir fahren mit der Konfiguration des virtuellen Computers vom Typ „Standard_D8s_v3“ und den angefügten Premium-Datenträgern fort.

Setup:

  • Standard_D8s_v3
    • Zwischengespeicherte IOPS: 16.000
    • Nicht zwischengespeicherte IOPS: 12.800
  • P30-Betriebssystemdatenträger
    • IOPS: 5.000
    • Hostzwischenspeicherung: Lesen/Schreiben
  • Zwei P30-Datenträger × 2
    • IOPS: 5.000
    • Hostzwischenspeicherung: Lesen/Schreiben
  • Zwei P30-Datenträger × 2
    • IOPS: 5.000
    • Hostzwischenspeicherung: Deaktiviert

Diagramm mit einem Beispiel zur Hostzwischenspeicherung mit Remotespeicher.

In diesem Fall stellt die auf dem virtuellen Computer vom Typ „Standard_D8s_v3“ ausgeführte Anwendung eine Anforderung von 25.000 IOPS. Die Anforderung wird zu jeweils 5.000 IOPS auf die einzelnen angefügten Datenträger aufgeteilt. Drei Datenträger verwenden die Hostzwischenspeicherung und zwei Datenträger verwenden keine Hostzwischenspeicherung.

  • Da die drei Datenträger, die die Hostzwischenspeicherung verwenden, innerhalb der zwischengespeicherten Grenzwerte von 16.000 liegen, werden diese Anforderungen erfolgreich abgeschlossen. Es erfolgt keine Leistungsbegrenzung für den Speicher.
  • Da die zwei Datenträger, die die Hostzwischenspeicherung nicht verwenden, innerhalb der nicht zwischengespeicherten Grenzwerte von 12.800 liegen, werden diese Anforderungen ebenfalls erfolgreich abgeschlossen. Es erfolgt keine Begrenzung.