Für SSDs stehen ein Bandbreiten-, ein IOPS-, ein Latenz- und ein Sättigungstest zur Auswahl. Listing 1 zeigt die Ausgabe von TKperf während der Tests einer Intel DC S3700 200 GByte SSD.
Listing 1
TKperf-Resultat
Die Tests zu Bandbreite, IOPS und Latenz zeigen einige Gemeinsamkeiten, die sich auch in den aufbereiteten Grafiken widerspiegeln. Für diese Tests gilt, dass sie rundenbasiert ablaufen und in jeder Runde Messgrößen aufgezeichnet werden. Unter Einbeziehung einer sogenannten Dependent Variable wird errechnet, ob sich die SSD in einem stabilen Zustand befindet. Dadurch sollen Messungen im "Fresh out of the Box" oder in undefinierten Übergangsphasen zwischen unterschiedlichen Workloads nicht zu den Messergebnissen beitragen. Nur wenn die Werte der Dependent Variable über die letzten Runden hinweg stabil ist, gehen die Werte dieses "Measurement Windows" ins Testresultat ein.
Am Beispiel einer IOPS-Messung erläutern die folgenden Abschnitte des Artikels den Ablauf eines Tests: vom Secure Erase über die Prüfung des stabilen Zustands bis hin zur Darstellung der Ergebnisse. Zu Beginn eine Definition jener Begriffe, die für die rundenbasierten Tests von Bedeutung sind:
Listing 2
Pseudo-Code des IOPS-Tests
Im Detail bedeuten die einzelnen Schritte:
1. Ein Secure Erase garantiert, dass sich die SSD in einem definierten Ausgangszustand befindet.
2. Zur Präkonditionierung wird das Device zwei Mal (sequentielle Zugriffe mit 128 KByte Blockgröße) überschrieben.
3. Solange der Steady State nicht erreicht ist, werden in jeder Runde verschiedene Kombinationen aus Mixed Workloads und Blockgrößen gestartet. Ein Workload von 100 bedeutet 100 Prozent Lesezugriffe, 95 steht für 95 Prozent Lese- und 5 Prozent Schreibzugriffe und so weiter. Für den IOPS-Test werden dabei immer zufällige Zugriffe (Random I/Os) verwendet. Als Dependent Variable werden die IOPS beim Schreiben mit 4 KByte Blockgröße genutzt. Der Steady State Convergence Plot zeigt die Entwicklung aller Blockgrößen (inklusive der Dependent Variable) für zufälliges Schreiben ( Abbildung 2 ).
Befindet sich das Device in einem stabilen Zustand, werden der Testlauf beendet und die Messwerte für die Diagramme aufbereitet. Dazu berechnet TKperf für die Messgrößen (Workloads und Blockgrößen) den Mittelwert im Measurement Window. Die berechneten Werte stellt der Measurement Plot gesammelt dar ( Abbildung 3 ).
Das vorhergehende Beispiel des IOPS-Tests hat den grundlegenden Ablauf gezeigt, in dem die Messergebnisse ermittelt werden. Für den Bandbreiten- und den Latenztest gelten andere Workloads, Blockgrößen und Dependent Variablen. Welche das sind, zeigt Tabelle 1 .
Tabelle 1
Testparameter für Bandbreiten- und Latenz-Test
Test |
Workloads |
Blockgrößen |
Dependent Variable |
---|---|---|---|
Bandbreite (Throughput) |
Sequentiell: 100 (nur lesen), 0 (nur schreiben) |
1024 KByte, 64 KByte, 8 KByte, 4 KByte, 512 Byte |
Sequentielles Schreiben mit 1024 KByte Blockgröße |
Latenz (Latency) |
Zufällig: 100, 65, 0 |
8 KByte, 4 KByte, 512 Byte |
Zufälliges Schreiben mit 4 KByte Blockgröße |