Überlegungen zur Leistung für Azure NetApp Files-Speicher mit kaltem Zugriff
Datensätze werden nicht immer aktiv verwendet. Bis zu 80 % der Daten in einem Satz können als "kalt" betrachtet werden, was bedeutet, dass sie derzeit nicht verwendet wird oder kürzlich nicht darauf zugegriffen wurde. Beim Speichern von Daten auf hochleistungsfähigem Speicher wie Azure NetApp Files wird das für die verwendete Kapazität ausgegebene Geld im Wesentlichen verschwendet, da kalte Daten erst dann eine hohe Leistung erfordern, wenn wieder auf sie zugegriffen wird.
Der Speicher von Azure NetApp-Dateien mit kaltem Zugriff soll die Kosten für Cloudspeicher in Azure reduzieren. Es gibt Leistungsüberlegungen in bestimmten Anwendungsfällen, die berücksichtigt werden müssen.
Der Zugriff auf Daten, die in die kalten Ebenen verschoben wurden, verursacht mehr Latenz, insbesondere für zufällige E/A. Im schlimmsten Fall befinden sich alle Daten, auf die zugegriffen wird, auf der kalten Ebene, sodass jede Anforderung einen Abruf der Daten durchführen muss. Es ist ungewöhnlich, dass sich alle Daten in einem aktiv verwendeten Dataset in der kalten Ebene befinden, daher ist es unwahrscheinlich, dass eine solche Latenz beobachtet wird.
Wenn die standardmäßige kalte Zugriffsempfangsrichtlinie ausgewählt ist, werden sequenzielle E/A-Lesevorgänge direkt von der kalten Ebene bereitgestellt und in der heißen Ebene nicht erneut aufgefüllt. Zufällig gelesene Daten werden in der heißen Ebene aufgefüllt, wodurch die Leistung der nachfolgenden Lesevorgänge erhöht wird. Optimierungen für sequenzielle Workloads reduzieren häufig die Latenz, die durch den Cloudabruf entsteht, im Vergleich zu zufälligen Lesevorgängen und verbessert die Gesamtleistung.
In einem kürzlich durchgeführten Test mit Standardspeicher mit kaltem Zugriff für Azure NetApp Files wurden die folgenden Ergebnisse abgerufen.
Hinweis
Alle veröffentlichten Ergebnisse dienen nur zu Referenzzwecken. Die Ergebnisse sind nicht garantiert, da die Leistung in Produktionsworkloads aufgrund zahlreicher Faktoren variieren kann.
100 % sequenzielle Lesevorgänge auf heißer/kalter Ebene (einzelner Auftrag)
Im folgenden Szenario wurde ein einzelner Auftrag auf einem D32_V5 virtuellen Computer (VM) auf einem 50-TiB Azure NetApp Files-Volume mit der Ultra-Leistungsstufe verwendet. Verschiedene Blockgrößen wurden verwendet, um die Leistung auf heißen und kalten Stufen zu testen.
Hinweis
Der Höchstwert für den Ultra Service Level beträgt 128 MiB/s pro Tebibyte zugeordneter Kapazität. Ein reguläres Azure NetApp Files-Volume kann einen Durchsatz bis zu ca. 5.000 MiB/s verwalten.
Das folgende Diagramm zeigt die kalte Ebenenleistung für diesen Test mithilfe einer Vielzahl von Warteschlangentiefen. Der maximale Durchsatz für einen einzelnen virtuellen Computer betrug ca. 400 MiB/s.
Die Leistung der heißen Ebene war rund 2,75-mal besser, mit einer Obergrenze bei ca. 1.180 MiB/s.
Dieses Diagramm zeigt einen parallelen Vergleich der kalten und heißen Ebenenleistung mit einer Blockgröße von 256K.
Was verursacht Latenz in heißen und kalten Ebenen?
Die Latenz in der heißen Ebene ist ein Faktor des Speichersystems selbst, bei dem Systemressourcen erschöpft sind, wenn mehr E/A an den Dienst gesendet wird, als zu einem bestimmten Zeitpunkt verarbeitet werden kann. Daher müssen Vorgänge in die Warteschlange gestellt werden, bis zuvor gesendete Vorgänge abgeschlossen werden können.
Die Latenz in der kalten Ebene wird im Allgemeinen mit den Cloudabrufvorgängen gesehen: Entweder Anforderungen über das Netzwerk für E/A an den Objektspeicher (sequenzielle Workloads) oder kalte Blockrehydrierung in die heiße Ebene (zufällige Workloads).
Ergebniszusammenfassung
- Wenn eine Workload 100 % sequenziell ist, verringert sich der Durchsatz der kalten Ebene um etwa 47 % gegenüber der heißen Ebene (3330 MiB/s im Vergleich zu 1742 MiB/s).
- Wenn eine Workload 100 % zufällig ist, verringert sich der Durchsatz der kalten Ebene um etwa 88 % gegenüber der heißen Ebene (2.479 MiB/s im Vergleich zu 280 MiB/s).
- Der Leistungsrückgang für die heiße Ebene bei einer Sequenz von 100 % (3.330 MiB/s) und 100 % zufälligen Arbeitsauslastungen (2.479 MiB/s) betrug ungefähr 25 %. Der Leistungsrückgang für die kalte Ebene bei einer Sequenz von 100 % (1.742 MiB/s) und 100 % zufälligen Arbeitsauslastungen (280 MiB/s) betrug ungefähr 88 %.
- Wenn eine Workload einen beliebigen Prozentsatz zufälliger E/A enthält, liegt der Gesamtdurchsatz für die kalte Ebene näher bei 100 % zufällig als 100 % sequenziell.
- Liest von kalter Ebene um ca. 50 % ab, wenn sie von 100 % sequenziell zu einer sequenziellen/zufälligen Mischung von 80/20 wechselt.
- Sequenzielle E/A kann einen
readahead
Cache in Azure NetApp-Dateien nutzen, die zufällige E/A nicht ausführen. Dieser Vorteil für sequenzielle E/A hilft dabei, die Gesamtleistungsunterschiede zwischen den heißen und kühlen Ebenen zu reduzieren.
Überlegungen und Empfehlungen
- Wenn Ihre Workload Zugriffsmuster häufig unvorhersehbar ändert, ist der kalte Zugriff aufgrund der Leistungsunterschiede zwischen heißen und kalten Ebenen möglicherweise nicht ideal.
- Wenn Ihre Workload einen Prozentsatz zufälliger E/A enthält, sollten die Leistungserwartungen beim Zugriff auf Daten auf der kalten Ebene entsprechend angepasst werden.
- Konfigurieren Sie das Kälte-Fenster und die kalten Zugriffsabrufeinstellungen so, dass sie Ihren Workloadmustern entsprechen und die Menge an kalten Abrufen der Ebene minimieren.
- Die Leistung von Zugriff auf kalter Ebene kann je nach Dataset und Systemlast an dem Standort, an dem die Anwendung ausgeführt wird, variieren. Es wird empfohlen, relevante Tests mit Ihrem Dataset durchzuführen, um die Leistungsvariabilität von Zugriff auf kalter Ebene zu verstehen und zu berücksichtigen.