Was versteht man unter optimaler Blockgröße?

3 Antworten

Physikalische Blockgröße vs. logische Blockgröße in einem Dateisystem sind zwei verschiedene Schuhe, die jedoch zusammenhängen. Die physikalische Blockgröße gibt der Datenträger selbst vor und sie kann, bis auf wenige Ausnahmen, nicht geändert werden. Optimal aufs Dateisystem bezogen gibt es nicht wirklich, es müsste eigentlich optimal für einen bestimmten Zweck, eine betimmte Art von Datei- und Ordnerstrukturen heissen....

Was für den einen Zweck optimal wäre, z.B: 512 Byte für Webspaces, ( viele sehr kleine Dateien, viele Unterverzeichnisse) ist als Ablage für Multimediadaten, wie Videos, Festplattenbackups, ( also wenige, dafür aber sehr große Dateien ) eher ungünstig !

Wichtiger in diesem Zusammenhang sind Besonderheiten moderner SSD-Speicher zu erwähnen, bei denen die Blockgröße bei Schreibzugriffen eine besondere Rolle spielt. Ist die Blockgröße einer Partition kleiner als die physikalische Schreibblockgröße der SSD und der Partitionsanfang / -offset fält nicht auf eine LBA ( logische Blockadresse) , die ganzzahlig durch die Schreibblockgröße teilbar ist, führt das zu einer sehr viel langsameren Schreibperformance und sehr viel mehr unnötigen Schreibzugriffen auf die SSD. Nicht nur die Geschwindigkeit, sondern auch die Lebensdauer einer SSD verkürzt sich dadurch erheblich...

Dateien werden üblicherweise auf der Festplatte gespeichert. Vor 15 Jahren waren auch noch Disketten üblich. Beide Datenträger verwenden zur Speicherung eine zylindrische Magnetplatten. Diese Magnetplatten ist in Spuren und Sektoren eingeteilt. Die Sektoren haben standardmäßig eine Größe von 512 Bytes. Dies sind zunächst einfach nur reine Hardwaredaten.

Weil Festplatten viel größere Datenkapazitäten fassen als Disketten, verwenden Betriebssysteme neben diese Hardwaredaten noch ein Softwarehilfsmittel, das als Block oder Cluster bezeichnet wird. Dabei werden mindestens 2 Sektoren zu einem Block zusammengefasst; d.h. die Daten einer Datei belegen immer mindestens einen Block – unabhängig davon ob es 1 Byte ist oder 1024 Bytes. Die Blockgröße bestimmt, wie die Daten gespeichert werden. Würde man wie dies häufig der Fall ist, 8 Sektoren zu einem Block zusammenfassen, könnte der Block bis zu 4096 Bytes speichern. Er hätte dafür aber auch häufig mehr „Leerbytes“ …

Die Blockgröße wird von den Programmierern des Betriebssystem festgelegt. Üblicherweise ist dies ein Kompromis, der große Festplatten verwalten soll. Da die Programmierer heutzutage viel großzügiger mit dem Speicherplatz für Daten umgehen, interessiert es sie nicht, ob ein Block 3 Bytes oder 4050 Bytes nutzt …

Im Sinner deiner Frage ist die „optimale Blockgröße“ vielleicht ein angepeiltes Ziel, das jedoch nur selten erreicht wird … Welcher Systemprogrammierer soll vorhersehen, welche Blockgröße für eine Festplatte „optimal“ wäre? Insbesondere ist die Größe eines Bytes zu 8 Bit ebenfalls ein willkürlicher Wert … Außerdem gibt es verschiedene Festplattenhersteller die ihrerseits verschiedene Modelle mit unterschiedlichen Kapazitäten anbieten … Da ist es einfacher, man legt die Parameter wie Sektor, Spur und Block fest und speichert „suboptimal“ …

Hallo

eigentlich ist das doch alles hier erklärt:

http://de.wikipedia.org/wiki/Festplattengeometrie

kurz gesagt

  • Wenn die Blockgröße 512 Bytes ist, dann stellt das den Bereich dar der von einer Datei verwendet wird - egal ob die Datei 512 oder nur 130 Bytes physikalisch belegt.
  • Beschäftigt man sich z.B. sehr viel mit Dateien die im Gigabyte Bereich liegen (Videobearbeitung oder ähnliches), dann könnte man die Blockgröße auch gut auf 1024 Bytes setzen.
  • Ist man aber mehr mit Dateien um 200-500 Bytes beschäftigt, dann wäre es eine enorme Speicherplatzverschwendung eine Blockgröße von 1024 Bytes zu verwenden.

Der Standardwert von 512 resultiert auf Erfahrungswerten und hat sich über die Jahre als guter Kompromiss herausgestellt.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102
Thomasg  13.12.2012, 08:18

Ntfs verwendet meist 4096 Bytes. Das wird beim Erstellen des Dateisystems meist automatisch anhand der Partizionsgrösse festgelegt. Das kann man aber meist auch selbst bestimmen.

0