Freigeben über


Grundlegendes zu Methoden für Leistungstests in Azure NetApp Files

Das in diesen Tests verwendete Benchmarktool heißt Flexible I/O Tester (FIO).

Beim Testen der Leistungsbeschränkungen für den Speicher muss die Workloadgenerierung hoch parallelisiert sein, um die maximal möglichen Ergebnisse zu erzielen.

Dies bedeutet:

  • 1:n-Clients
  • mehrere CPUs
  • mehrere Threads
  • Ausführen von E/A in mehreren Dateien
  • Multithread-Netzwerkverbindungen (z. B. nconnect)

Ziel ist es, das Speichersystem so weit wie möglich auszulasten, bevor Vorgänge auf den Abschluss anderer Vorgänge warten müssen. Die Verwendung eines einzelnen Clients, der einen einzelnen Netzwerkflow durchläuft, und Lese-/Schreibvorgänge für eine einzelne Datei (z. B. mithilfe von dd oder diskspd auf einem einzelnen Client) liefern keine Ergebnisse, die auf die Funktionalität von Azure NetApp Files hinweisen. Stattdessen zeigen diese Setups die Leistung einer einzelnen Datei, die sich im Allgemeinen mit der Geschwindigkeit und/oder den QoS-Einstellungen von Azure NetApp File entwickelt.

Darüber hinaus muss die Zwischenspeicherung so weit wie möglich minimiert werden, um genaue, repräsentative Ergebnisse dessen zu erzielen, was der Speicher leisten kann. Die Zwischenspeicherung ist jedoch ein sehr reales Werkzeug für moderne Anwendungen, um die bestmögliche Leistung zu erzielen. Dazu gehören Szenarien mit gewisser Zwischenspeicherung und mit Umgehung der Zwischenspeicherung für zufällige E/A-Workloads mithilfe von Randomisierung der Workload über FIO-Optionen (insbesondere randrepeat=0 zum Verhindern der Zwischenspeicherung im Speicher und directio zum Verhindern der Clientzwischenspeicherung).

Informationen zu Flexible I/O Tester

Flexible I/O Tester (FIO) ist ein Open-Source-Tool zum Generieren von Workloads, das häufig aufgrund seiner Benutzerfreundlichkeit und Flexibilität bei der Definition von Workloadmustern für Speicherbenchmarks verwendet wird. Informationen zur Verwendung mit Azure NetApp Files finden Sie unter Testempfehlungen von Leistungsbenchmarks für Azure NetApp Files.

Installation von FIO

Folgen Sie dem Abschnitt Binärpakete in der README-Datei FIO zur Installation für die Plattform Ihrer Wahl.

FIO-Beispiele für IOPS

Für die FIO-Beispiele in diesem Abschnitt wird folgendes Setup verwendet:

  • VM-Instanzgröße: D32s_v3
  • Servicelevel und Größe des Kapazitätspools: Premium/50 TiB
  • Volumenkontingentgröße: 48 TiB

Die folgenden Beispiele zeigen die zufälligen Lese- und Schreibvorgänge in FIO.

FIO: Blockgröße 8 KB 100 % zufällige Lesevorgänge

fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: Blockgröße 8 KB 100 % zufällige Schreibvorgänge

fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Ergebnisse von Vergleichstests

Offizielle Benchmarkergebnisse für die Leistung von FIO in Azure NetApp Files finden Sie unter Azure NetApp Files-Leistungsbenchmarks für Linux.

FIO-Beispiele für Bandbreite

Die Beispiele in diesem Abschnitt zeigen die sequenziellen Lese- und Schreibvorgänge in FIO.

FIO: Blockgröße 64 KB 100 % sequenzielle Lesevorgänge

fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: Blockgröße 64 KB 100 % sequenzielle Schreibvorgänge

fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Ergebnisse von Vergleichstests

Offizielle Benchmarkergebnisse für die Leistung von FIO in Azure NetApp Files finden Sie unter Azure NetApp Files-Leistungsbenchmarks für Linux.

Zwischenspeichern mit FIO

FIO kann mit bestimmten Optionen ausgeführt werden, um zu steuern, wie eine Leistungsbenchmark Dateien liest und schreibt. In den Benchmarktests mit ausgeschlossener Zwischenspeicherung wurde das FIO-Flag randrepeat=0 verwendet, um das Zwischenspeichern zu vermeiden, indem eine echte zufällige Workload anstelle eines wiederholten Musters ausgeführt wurde.

[randrepeat]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)

Wenn randrepeat nicht definiert ist, legt das FIO-Tool standardmäßig den Wert auf „true“ fest. Das bedeutet, dass die in den Dateien erzeugten Daten nicht wirklich zufällig sind. Daher werden Dateisystemcaches nicht verwendet, um die Gesamtleistung der Workload zu verbessern.

In früheren Benchmarks für Azure NetApp Files wurde randrepeat nicht definiert, daher wurde eine gewisse Dateisystemzwischenspeicherung implementiert. Bei aktuelleren Tests ist diese Option auf „0“ (false) festgelegt, um eine ausreichende Zufälligkeit der Daten sicherzustellen, um Dateisystemzwischenspeicherung im Azure NetApp Files-Dienst zu vermeiden. Diese Änderung führt zu etwas niedrigeren Gesamtzahlen, ist jedoch eine genauere Darstellung dessen, wozu der Speicherdienst beim Umgehen der Zwischenspeicherung fähig ist.

Nächste Schritte