Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen
In diesem Artikel wird erläutert, wie Azure Virtual Machines (VMs) und verwaltete Datenträgerleistungsbeschränkungen interagieren. Außerdem wird beschrieben, wie Datenträger-E/A-Engpässe diagnostiziert und die Speicherleistung optimiert werden.
Interaktion von Azure VM- und verwalteten Datenträgerleistungsbeschränkungen
Azure VMs verfügen über Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) und Durchsatzgrenzwerte basierend auf dem VM-Typ und der Größe. Verwaltete Betriebssystem- und Datenträger verfügen über eigene IOPS- und Durchsatzgrenzwerte.
Datenträgerzuordnung und Leistung
Datenträger, die einer Azure-VM zugeordnet sind, nutzen drei E/A-Pfade. Das folgende Diagramm zeigt, wie Azure Bandbreiten- und Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) über diese Pfade in Echtzeit zuordnet.
Der erste E/A-Pfad ist der Pfad für verwaltete Datenträger ohne Cache. E/A-Vorgänge verwenden diesen Pfad, wenn Sie einen verwalteten Datenträger nutzen und das Host-Caching auf none setzen. E/A-Vorgänge, die diesen Pfad verwenden, werden basierend auf der Bereitstellung auf Datenträgerebene und dann auf VM-Netzwerkebene für IOPS und Durchsatz ausgeführt.
Der zweite E/A-Pfad ist der zwischengespeicherte Pfad für verwaltete Datenträger. Die zwischengespeicherte E/A für verwaltete Datenträger verwendet eine SSD, die sich nah an der VM befindet. Diese SSD verfügt über eigene zugewiesene IOPS und eigenen Durchsatz und wird im Diagramm als „Bereitstellung auf SSD-Ebene“ bezeichnet.
Wenn ein zwischengespeicherter verwalteter Datenträger einen Lesevorgang initiiert, überprüft die Anforderung zunächst, ob sich die Daten auf der Server-SSD-Datei befinden. Wenn die Daten nicht vorhanden sind, tritt ein zwischengespeicherter Fehler auf. Anschließend wird die E/A basierend auf der Bereitstellung auf SSD-Ebene, Bereitstellung auf Datenträgerebene und dann auf VM-Netzwerkebene für IOPS und Durchsatz ausgeführt.
Wenn die Server-SSD Lesevorgänge auf zwischengespeicherten E/A initiiert, die auf der Server-SSD vorhanden sind, tritt ein Cachetreffer auf. Die E/A wird dann basierend auf der Bereitstellung auf SSD-Ebene ausgeführt. Lesevorgänge, die ein zwischengespeicherter verwalteter Datenträger initiiert, folgen immer dem Pfad eines Cachefehlers. Sie durchlaufen die Bereitstellung auf SSD-Ebene, Datenträgerebene und vm-Netzwerkebene.
Der dritte Pfad ist für den temporären Datenträger. Sie ist nur auf virtuellen Computern verfügbar, die temporäre Datenträger unterstützen. Ein E/A-Vorgang, der diesen Pfad verwendet, erfolgt auf Grundlage der auf SSD-Ebene bereitgestellten IOPS- und Durchsatzwerte.
Das folgende Diagramm zeigt ein Beispiel für diese Einschränkungen. Das System verhindert, dass ein virtueller Computer vom Typ „Standard_D2s_v3“ aufgrund von Einschränkungen auf SSD- und Netzwerkebenen das Potenzial von 5.000 IOPS eines P30-Datenträgers erreicht, unabhängig davon, ob er zwischengespeichert wird oder nicht.
Azure verwendet einen priorisierten Netzwerkkanal für Datenträger-Datenverkehr. Datenträger-Datenverkehr hat Vorrang vor Netzwerkdatenverkehr mit niedriger Priorität. Diese Priorisierung hilft Datenträgern, ihre erwartete Leistung aufrechtzuerhalten, wenn Netzwerkkonflikte auftreten.
Ebenso behandelt Azure Storage Ressourcenkonflikte und andere Probleme im Hintergrund durch den automatischen Lastenausgleich. Azure Storage ordnet die erforderlichen Ressourcen zu, wenn Sie einen Datenträger erstellen, und wendet einen proaktiven und reaktiven Ausgleich der Ressourcen an, um den Datenverkehr zu bewältigen. Dieses Verhalten stellt weiterhin sicher, dass Datenträger ihre erwarteten IOPS- und Durchsatzziele einhalten können. Verwenden Sie Metriken auf VM-Ebene und Datenträgerebene, um die Leistung nachzuverfolgen und Benachrichtigungen nach Bedarf einzurichten.
Datenträger-E/A-Deckelung
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. Diese Bedingung kann zu negativen Folgen wie erhöhter Latenz führen. In den folgenden Beispielen wird IOPS verwendet, die gleiche Logik gilt jedoch für den Durchsatz.
Beispielkonfiguration für die Begrenzung auf Datenträgerebene:
- Standard_D8s_v3
- Nicht zwischengespeicherte IOPS: 12.800
- E30-Betriebssystemdatenträger
- IOPS: 500
- Zwei E30-Datenträger × 2
- IOPS: 500
Die auf dem virtuellen Computer ausgeführte Anwendung stellt eine Anforderung, für die 10.000 IOPS für den virtuellen Computer erforderlich sind. All dies wird von der VM zugelassen, weil die VM Standard_D8s_v3 bis zu 12.800 IOPS verarbeiten 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.
- Für jeden Datenträger werden 4.500 IOPS angefordert.
Bei allen angefügten Datenträgern handelt es sich um E30-Datenträger, die nur 500 IOPS verarbeiten können. Also liefern sie jeweils 500 IOPS zurück. Die Leistung der Anwendung wird durch die angeschlossenen Datenträger begrenzt, und es können nur 1.500 IOPS verarbeitet werden. Die Anwendung könnte mit Spitzenleistung bei 10.000 IOPS arbeiten, wenn leistungsstärkere Datenträger verwendet werden, z. B. Premium-SSD-P30-Datenträger.
Begrenzung der E/A virtueller Maschinen
Beispielkonfiguration für die Begrenzung auf VM-Ebene:
- Standard_D8s_v3
- Nicht zwischengespeicherte IOPS: 12.800
- P30-Betriebssystemdatenträger
- IOPS: 5.000
- Zwei P30-Datenträger × 2
- IOPS: 5.000
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.
- Für jede Datenfestplatte werden 4.266 IOPS benötigt.
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.
Zwischengespeicherte und nicht zwischengespeicherte Grenzwerte für virtuelle 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 über die Dsv3-Serie und den Standard_D8s_v3:
Die nicht zwischengespeicherten Datenträgerdaten im Remote-Speicher sind die standardmäßigen maximalen Speichergrenzwerte, die der virtuelle Computer verarbeiten kann.
Die zwischengespeicherten Datenträgerdaten unter der Registerkarte Lokaler Speicher sind separate Grenzwerte, falls Sie die Hostzwischenspeicherung aktiviert haben.
Hostzwischenspeicherung konfigurieren
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 bei einer vorhandenen VM die Hostzwischenspeicherung für Ihre Datenträger auch aktivieren und deaktivieren. Bei cachefähigen Datenträgern ist das Zwischenspeichern standardmäßig nicht aktiviert. Bei zwischenspeicherfähigen Betriebssystemdatenträgern ist der Lese-/Schreibcache aktiviert.
Sie können die Hostzwischenspeicherung für jeden Datenträger an Ihre Workloadanforderungen anpassen. Sie können Ihren Hostcache auf Folgendes 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 Arbeitslast keinem dieser beiden Muster folgt, empfehlen wir nicht, Hostcaching zu verwenden.
Schreibgeschütztes Hostcaching
Das folgende Beispiel zeigt, wie E/A-Anforderungen verarbeitet werden, wenn Sie das Hostcaching auf Schreibgeschützt festlegen.
Beispielkonfiguration für schreibgeschütztes Hostcaching:
- Standard_D8s_v3
- Zwischengespeicherte IOPS: 16.000
- Nicht zwischengespeicherte IOPS: 12.800
- P30-Datenträger
- IOPS: 5.000
- Hostzwischenspeicherung: Nur Lesen
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.
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 stellt der Datenträger sie sowohl dem Cache als auch der VM zur Verfügung. Dieser Lesevorgang wird sowohl auf den nicht zwischengespeicherten Grenzwert der VM als auch auf den zwischengespeicherten Grenzwert der VM angerechnet.
Bei einem Schreibvorgang muss sowohl in den Cache als auch in den Datenträger geschrieben werden, bevor der Schreibvorgang als abgeschlossen angesehen wird. Dieser Schreibvorgang wird sowohl auf die Grenze der VM für nicht zwischengespeicherte Schreibvorgänge als auch auf ihre Cache-Grenze angerechnet.
Hostcaching für Lese-/Schreibzugriffe
Das folgende Beispiel zeigt, wie E/A-Anforderungen ablaufen, wenn Sie die Hostzwischenspeicherung auf Lese-/Schreibzugriff festlegen.
Beispielkonfiguration für Hostcaching bei Lese-/Schreibzugriffen:
- Standard_D8s_v3
- Zwischengespeicherte IOPS: 16.000
- Nicht zwischengespeicherte IOPS: 12.800
- P30-Datenträger
- IOPS: 5.000
- Hostzwischenspeicherung: Lesen/Schreiben
Bei hostseitigem Caching für Lese-/Schreibzugriffe werden Lesezugriffe mit Cachetreffern auf die Cachegrenzwerte der VM angerechnet. Lesevorgänge bei Cache-Fehlzugriffen werden sowohl auf die Grenzwerte der VM für zwischengespeicherte als auch für nicht zwischengespeicherte Zugriffe angerechnet. Schreibvorgänge werden unterschiedlich behandelt: Ein Schreibvorgang muss nur den Hostcache erreichen, der als abgeschlossen betrachtet wird. Der Schreibvorgang wird dann verzögert auf den Datenträger geschrieben, wenn der Cache regelmäßig geleert wird. Sie können einen Flush auch erzwingen, indem Sie einen fua- oder f/sync-Befehl ausgeben. Ein Schreibvorgang wird als zwischengespeicherte E/A gezählt, wenn er in den Cache geschrieben wird, und als nicht zwischengespeicherte E/A, wenn er verzögert auf den Datenträger geschrieben wird.
Beispiel für zwischengespeicherte Grenzwerte
Im folgenden Beispiel wird eine Standard_D8s_v3 VM mit aktivierter Hostzwischenspeicherung und drei angefügten P30-Datenträgern verwendet. Der virtuelle Computer verfügt über einen zwischengespeicherten Grenzwert von 16.000 IOPS, und jeder P30-Datenträger kann 5.000 IOPS verarbeiten.
Beispielkonfiguration für das Cache-Limit:
- 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
Die Anwendung verwendet einen virtuellen Computer vom Typ „Standard_D8s_v3“ mit aktivierter Zwischenspeicherung. Sie stellt eine Anforderung von 16.000 IOPS. Die Anfragen gelten als abgeschlossen, sobald sie aus dem Cache 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. Diese Trennung bedeutet, dass Sie die Hostzwischenspeicherung auf einigen Datenträgern aktivieren können, die an eine VM angefügt sind, ohne die Hostzwischenspeicherung auf anderen Datenträgern zu aktivieren. Diese Konfiguration ermöglicht Ihren virtuellen Computern das Abrufen eines gesamten Speicher-E/A des zwischengespeicherten Grenzwerts plus des nicht zwischengespeicherten Grenzwerts.
Das folgende Beispiel zeigt, wie zwischengespeicherte und nicht zwischengespeicherte Grenzwerte auf einer Standard_D8s_v3 VM mit angefügten Premium-SSDs zusammenarbeiten.
Kombiniertes zwischengespeichertes und nicht zwischengespeichertes Limit – Beispielsetup:
- 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
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 des Cachelimits von 16.000 liegen, werden diese Anfragen erfolgreich abgeschlossen. Es erfolgt keine Leistungsbegrenzung für den Speicher.
- Da die beiden Datenträger, die kein Host-Caching verwenden, innerhalb des Grenzwerts von 12.800 ohne Cache liegen, werden auch diese Anfragen erfolgreich abgeschlossen. Es gibt keine Begrenzung.