Hallo Fragewurm,
- Warum wird die sequentielle Geschwindigkeit meist in MB/s,
die beim wahlfreien Zugriff (4K) aber in IOPS angegeben?
Bei den MB/s wird der Datendurchsatz abgegeben, bei den IOPS wie schnell der Controller arbeitet.
- Sollte bei SSDs der unterschied zwischen sequentieller und
wahlfreier Zugriffsgeschwindigkeit nicht relativ ähnlich sein,
weil keine mechanischen Teile vorhanden sind und das
Speichermedium, anders als bei einer HDD, nicht erst in eine
andere Position gebracht werden muss.
Die Bezeichnungen „sequentieller“ und „wahlfreier“ Zugriff haben mehr historische Gründe.
Bei den mechanischen Laufwerken, bestand die Zugriffszeit für die Daten hauptsächlich aus zwei Komponenten:
-
Der Datentransferrate, welche durch die Drehzahl und Bitdichte begrenzt wird.
-
Die Zeit für die Positionierung, hier spielen auch noch die Positionierfehler, welche automatisch korrigiert werden mit rein.
-
Wurde mit grossen Datensätze in aufeinanderfolgen Sektoren gemessen. Bei den ganz alten Controllern musste dazu aber für jeden Sektor zuerst ein Positionierbefehl gegeben werden, wobei sich die Zeit für die Positionierung vor allem auf das Abwarten bis sich der Sektor unter dem Kopf durchbewegt beschränkt.
Hier spielte dann der Interleave-Faktor noch eine wichtige Rolle:
Wenn die logischen Sektoren direkt hintereinander abgelegt werden und ich gerade Sektor 1 gelesen habe, befindet sich Sektor2 unter dem Kopf, wenn der nächste Positionierbefehl abgearbeitet wird. Man muss dann fast eine ganze Umdrehung abwarten, bis Sektor 2 gelesen werden kann. Der Trick bestand dann darin, dass man die logischen Sektoren nicht der Reihe nach abgelegt hat, sodass zwischen Sektor 1 und 2 ein oder zwei andere Sektoren abgelegt wurden. Wo das Optimum lag, lag an der Geschwindigkeit des Controllers.
Das Controller gleich eine ganze Spur lesen, kam erst so vor 20 Jahren, vorher war das RAM zu teuer.
Bei den MB/s muss man noch die Burstrate und die mittlere Transferrate unterscheiden. Die Burstrate gibt an wie schnell ein einzelner Datenblock übertragen werden kann und ist meist durch die Transferrate des Interfaces vorgegeben. Eine Floppy an USB 2, kann dabei dann auf die 480 MBit/s kommen, aber bis der nächste Sektor dann übertragen werden kann, braucht es eine Pause.
Die mittlere Datenrate gibt dann den Durchsatz mit den Pausen an, also den eigentlich wichtigen Werten für den praktischen Einsatz.
-
Hier wurde vor allem die Positionierzeit getestet indem man wahlfrei irgendwelche Sektoren nacheinander gelesen hat. Ein typischer Test war der Butterfly-Test. Dabei wurde von Spur 0 ein Sektor gelesen, dann von der letzten Spur, dann die 2 Spur, dann die letzte-1 usw.
Bei den SSD sind die mechanischen Positionierzeiten weggefallen.
Geblieben ist allerdings der Rechenaufwand des Controllers bei der „Positionierung“. Der Befehl muss nach wie vor übermittelt werden. Weil der FLASH-Speicher nur eine begrenzte Anzahl Schreibzyklen überlebt, muss der Sektor in einer Tabelle in den Speicherblock übersetzt werden, damit alle Blöcke gleichmässig abgenutzt werden. Dabei kopiert der Controller auch die Daten aus einem wenig beschrieben Block in einen schon öfters benutzten um öfters veränderte Daten in einem wenig benutzten Block speichern zu können. Dies läuft zwar transparent im Hintergrund ab, kann aber zu Wartezeiten für den Positionierbefehl führen.
Wie effizient die abläuft kann man am Wert IOPS sehen.
MfG Peter(TOO)