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:
- Drückt die Windows-Taste um das Startmenü zu öffnen
- 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:
Das Testergebnis finden ihr nun in der Datei C:\DiskSpd\amd64\ergebnis.txt
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