XXcode – mit DISKSPD die Workloadspeicherleistung testen

XXco.de

die STANGLSOFT-Trickkiste gefüllt mit manch brauchbaren Befehlen oder Code-Schnipseln

mit DISKSPD die Leistung und Geschwindigkeit von Festplatten-, RAID- oder anderen Speichersystemen feststellen

Mit dem Microsoft-Tool DISKSPD könnt ihr synthetische Workloads erstellen, um damit die Leistung für bestimmte Speicher-Szenarien zu ermitteln. Beispielsweise kann man damit die Fähigkeiten des Systems für den Einsatz von SQL-Datenbanken erproben, generelle Geschwindigkeitsmessungen der Festplatten- und RAID-Speicher durchführen, oder die Ergebnisse für einen Performance-Vergleich diverser Datenspeichersysteme heranziehen.

Das Tool gibt es zum Download unter folgendem Link: https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip

Danach entpackt ihr diese komprimierte Datei und kopiert den gesamten DiskSpd -Ordner auf den zu testenden Speicherort eurer Wahl. Beispielsweise auf C:\

Öffnet nun die Windows PowerShell-App:

  1. Drückt die Windows-Taste um das Startmenü zu öffnen
  2. Tippt powershell ein, klickt mit der rechten Maustaste auf „Windows PowerShell„ und wählt im Kontextmenü „Als Administrator ausführen“ (Bestätigung erforderlich)

Jetzt wechselt im PowerShell-Fenster in das DiskSpd\amd64 -Verzeichnis mit folgendem Kommando:

cd c:\DiskSpd\amd64

Info: „amd64“ (64-Bit-Systeme), „x86“ (32-Bit-Systeme) und „ARM64“ (ARM-Systeme)

mit folgendem Beispielbefehl wird nun der Test gestartet:

.\diskspd -t8 -o32 -b8k -r8k -w0 -d120 -Sh -D -L -c5G C:\DiskSpd\ClusterStorage\testordner\zieldatei\IO.dat > ergebnis.txt

nach zwei Minuten ist der Test abgeschlossen.

Die Powershell-Eingaben sollten dann so aussehen:

DiskSpd PowerShell

Das Testergebnis finden ihr nun in der Datei C:\DiskSpd\amd64\ergebnis.txt

DiskSpd Ergebnis

Am obigen Screenshot einer ergebnis.txt-Datei ist ein guter WERT bei I/O per s ersichtlich.
Dieser Wert ist in unserem Beispiel für Datenbanken sehr relevant.


Auflistung der Parameter für unseren DiskSpd-Beispielbefehl:

-t8: Dieser Parameter gibt die Anzahl der Threads pro Ziel-/Testdatei an. In diesem Fall wurden 8 Threads verwendet um alle CPU-Kerne zu belasten.

-o32: Dieser Parameter gibt die Anzahl der ausstehenden E/A-Anforderungen pro Ziel pro Thread an. Dies wird auch als Warteschlangentiefe bezeichnet, und in diesem Fall wurde „32“ verwendet, um die CPU zu belasten.

-b8K: Dieser Parameter gibt die Blockgröße in Bytes, KiB, MiB oder GiB an. Hier wurde die Blockgröße „8K“ verwendet, um einen zufälligen E/A-Test zu simulieren.

-r8K: Dieser Parameter gibt an, dass die zufällige E/A-Größe an der angegebenen Größe in Bytes, KiB, MiB, GiB oder Blöcken ausgerichtet ist (überschreibt den Parameter -s). Wir verwenden die übliche Größe von „8K“, um ordnungsgemäß mit der Blockgröße auszurichten.

w0: Dieser Parameter gibt den Prozentsatz der Vorgänge an, bei denen es sich um Schreibanforderungen handelt („-w0“ entspricht 100 % Leseanforderungen). In diesem Fall wurden 0 % Schreibanforderungen verwendet, um den Test einfach zu halten.

-d120: Dieser Parameter gibt die Dauer des Tests an, wobei weder Nachlauf noch Vorlauf berücksichtigt werden. Bei unserem Beispiel wurden 120 Sekunden verwendet, um jegliche Ausreißer zu minimieren.

-Sh: Dieser Parameter deaktiviert für Software und Hardware das Zwischenspeichern von Schreibvorgängen.

-D: Erfasst IOPS-Statistiken, z. B. die Standardabweichung, in Intervallen von Millisekunden (pro Thread und pro Ziel).

-L: Misst Wartezeitstatistiken.

-c5G: Legt die im Test verwendete Größe für die Beispieldatei fest. Die Größe kann in Bytes, KiB, MiB, GiB oder Blöcken festgelegt werden. In diesem Fall wurde eine Zieldatei mit 5 GB verwendet.


Eine detailliertere Beschreibung und weitere Einsatzmöglichkeiten zu dem Tool findet ihr auf der Microsoft-Website unter:
https://docs.microsoft.com/de-de/azure-stack/hci/manage/diskspd-overview


INFO: Solltet ihr den Test abgeschlossen haben und danach nicht mehr benötigen, vergesst bitte nicht den DiskSpd-Ordner zu löschen, um den dafür reservierten Speicherplatz wieder freizugeben.