Anzeige

Optimale Blockgröße für Festplatten

Leserfrage: Ich verwende seit längerem 1,5-TByte-SATA-Platten als Backup für unsere Videoproduktionen. Dafür formatiere ich die Platte mit 16-KByte-Blöcken. Da ohnehin nur wenige tausend Dateien auf eine Platte passen, sind der höhere Overhead und der damit verbundene Speicherplatzverlust unerheblich. Ich mache das auch nicht um das 2-TByte-Problem zu umgehen, irgendwann dachte ich einfach 16-KByte-Blöcke wären völlig ausreichend. Nun würde ich aber gerne wissen, ob so etwas den Plattenzugriff nicht vielleicht sogar schneller macht, da der Controller ja nur mit einem 1/32tel der Sektoren umgehen muss, im Vergleich zu den üblich 512-Byte-Sektoren.

Antwort Doc Storage:

Bei Festplatten setzt sich die Zugriffszeit aus den drei Komponenten für die Zeit des Spurwechsels (Seek), der Latenz (Latency) und der Verarbeitung von Befehlen (Controller oder Command-Overhead) zusammen. Die Veränderung der Blockgrößen beeinflusst zwei der drei Faktoren. Das Laufwerk muss Spuren öfter oder weniger oft wechseln und Kommandos in Extremfällen mehrfach senden, empfangen und interpretieren. Die Zeit für den Kommandofluss ist jedoch vernachlässigbar, daher kann diese mit einer geringen Konstante (unter 0,2 ms) angenommen oder ganz aus der Betrachtung herausgelassen werden. Die mittlere Latenzzeit ist ebenfalls eine Konstante, die von der Umdrehungszahl des Mediums abhängt. In Ihrem Fall kann diese entweder mit 5,5 bis 5,8 ms für Platten mit 5.400 U/min oder 4,0 bis 4,5 ms für Platten mit 7.200 U/min angenommen werden.

Demnach liefert eine moderne SATA-Platte mit 5.400 U/min und einer Spurwechselzeit von 10 ms die Daten im günstigsten Fall in 10 + 5,5 + 0,2 ms = 15,7 ms. Eine 7.200er Disk schafft mit 8,5 ms im günstigsten Fall in 8,5 + 4,5 + 0,2 ms = 13,2 ms.

Da ein zu speichernder Datensatz immer mindestens einen ganzen Block belegt, ist im Sinne einer guten Speicherausnutzung eine möglichst kleine Blockung wünschenswert. Im schlimmsten Falle belegt nämlich ein zu speicherndes Byte einen gesamten Block, der dann nicht mehr für andere Daten zur Verfügung steht. Dem gegenüber steht der Effekt, dass eine simple Verdoppelung der Blockgröße meist schon für einen enormen Geschwindigkeitszuwachs sorgt. Günstig wäre natürlich auch ein Zusammenspiel von physikalischer und logischer Formatierung. Das heißt, dass die Blockung des Dateisystems einem Vielfachen der Low-Level-Formatierung entspricht.

Also, auch hier lautet die Antwort: Ausprobieren, was am besten passt! Wenn Sie den vorhandenen Speicher optimal ausnutzen möchten, dann eben eine möglichst kleine Blockung, allerdings mit Einbußen bei der Geschwindigkeit. Wenn Ihnen die Speichernutzung nicht so wichtig ist und Sie mehr Geschwindigkeit brauchen, erhöhen Sie den Wert entsprechend.

Sie sollten aber auch daran denken, dass die schreibende Anwendung in derselben Blockung (oder eben einem ganzen Vielfachen davon) speichern muss, um optimale Werte zu erreichen.

Gruß
Doc Storage

Anzeige