Ein paar unabhängige Quellen würden deinem Fachwissen trotzdem gut tun.
Für alle die es nicht kennen, da ist auch oben rechts eine Anschauliche Animation:
Fragmentierung (Dateisystem)
Ich hätte gerne links zu einem Paper oder irgendwas was Dateisystemfragmentierung in Verbindung mit SSD Performance und Defrag bringt.
In Verbindung mit der Performance muss man das schon selbst bringe, es wird nicht immer alles im Leben mundgerecht vorgekaut geliefert. Überlege aber nur mal, was bei der extremsten Fragmentierung passiert. Da wird eine mehrere MB große Datein nämlich im schlimmsten Fall in zahlreiche Fragmente zerligt, die nur jeweils einen Cluster, also normalerweise bei NTFS 4k, groß sind und nicht zusammenhängen.
Jetzt schauen wir mal in den
ATA8 Befehlssatz, wie denn so gelesen wird. Da finden wir z.B. auf S. 163 den Syntax des READ STREAM DMA EXT - 2Ah Befehls, der im zweiten Word die Länge enthält, danach dann den LBA ab dem zu lesen ist:
01h Count The number of logical sectors to be transferred. A value of 0000h indicates that
65536 logical sectors are to be transferred.
Mit einem einzige Lesebefehl können also maximal 655356 LBAs zu normalerweise je 512 Byte gelesen werden, was 32MiB ausmacht. Mehr als die Länge eines Fragments wird aber natürlich nie gelesen, da die Daten der nachfolgenden LBAs ja nicht zu der gewünschten Datei gehören, kann man auch sicher irgendwo in der API Dokumentation von Windows nachlesen, wenn man es nicht so glaubt.
In unserem Beispiel der extrem fragmentierten Daten die nur auf 4k Langen Fragmentien besteht, können also immer nur 4k lange Lesezugriffe erfolgen, statt einiger Zugriffe mit bis zu 32MiB pro Lesebefehl also Lesezugriffe. Keine Ahnung ob die Treiber von Windows diese 32MiB ausnutzen oder nicht, aber das spielt auch keine Rolle, denn auf jeden Fall lesen sie ja mehr als 4k mit einem Befehl, wenn das Fragment bzw. die Daten entsprechend lang sind.
Glaubt wieder einer nicht? Gut dann schauen wir uns noch mal aus den Screenshot mit AS-SSD von pinki auf der letzten Seite:
Da wurde beim sequentiellen Lesen 461,32MB/s erreicht, bei 4k lange Lesezugriffen aber nur 20,56MB/s. Selbst wenn nun Windows die ganze Fragmente der Datei parallel adressiert (ob es so ist, weiß ich nicht), dann würden wir eben maximal auf die 116,93MB/s kommen, die bei 4k_64 ermittelt wurden, immer noch weit unter den 461,32MB/s, oder?
Aber nur, weil du es gebetsmühlenartig wiederholst, wird es richtiger!? Nee, so funktioniert das nicht.
So, jetzt schreibe mir bitte, wie es Deiner Meinung nach funktionieren soll, eine extrem fragmentierte Daten wie in meinem Beispiel mit pinkis SSD mit den gleichen 461MB/s zu lesen, die beim seq. Zugriff möglich sind!