[Seite << 1 2 3 4 5 6 7 8 9 10 >>]
dir_index (gelegentlich auch als htree bezeichnet) ist ein für die Performance besonders wichtiges Dateisystem-Feature. Ursprünglich speicherte Ext2 die Dateinamen eines Verzeichnisses als lange verkettete Liste. Das ist eine schön einfache Datenstruktur, die aber den Nachteil hat, dass Operationen darin mit einer wachsenden Zahl von Einträgen immer länger dauern. In einem Dateisystemvergleich vor fünf Jahren hatten wir gefunden, dass die Performance von Ext3 schon bei einigen tausend Dateien in einem Verzeichnis drastisch einbricht (siehe c't 6/02, S. 228).
|
|
|
| | |
Inzwischen verwaltet Ext3 ähnlich wie die Dateisystemkonkurrenz ReiserFS, XFS und JFS Verzeichnisse in Baumstrukturen, wenn dir_index gesetzt ist, was Directory-Operationen drastisch beschleunigt. Einbrüche in der Performance treten erst bei sehr gut gefüllten Verzeichnissen mit zigtausenden Dateien auf. Dabei dürfte es sich allerdings in erster Linie um einen Caching-Effekt handeln: Je weniger Hauptspeicher, desto früher erfolgt der Einbruch. Allerdings scheint der Linux-Kernel nicht unbegrenzt Speicher zum Cachen von Directory-Strukturen zu verwenden: Im Single User Mode fanden wir bereits beim Sprung von 1 auf 2 GByte RAM keine Leistungssteigerung mehr. Im normalen Betrieb mit einer Reihe weiterer Prozesse sahen wir zwischen 1 und 2 GByte allerdings noch einen Unterschied.
Die Option dir_index lässt sich mit dem Befehl
tune2fs -O dir_index
auch nachträglich aktivieren, wirkt sich dann allerdings nur auf neu angelegte Verzeichnisse aus. Die bereits bestehenden Verzeichnisse eines nicht gemounteten Dateisystems stellt der Befehl
e2fsck -fD
auf dir_index um, nachdem das Feature dir_index gesetzt wurde. Danach sollte man sicherheitshalber einen weiteren e2fsck-Lauf mit der Option -f erzwingen.
Diese Option ist auch nützlich, wenn in Verzeichnissen ständig Dateien angelegt und gelöscht werden: Da Ext3 die Namen gelöschter Dateien nicht aus den Verzeichnisdateien entfernt, wachsen die immer weiter an – auch wenn die meisten Einträge gar nicht mehr verwendet werden. e2fsck -fD entfernt ungültige Einträge aus den Verzeichnisdateien und baut die Baumstruktur der Dateinamen neu auf, was die Geschwindigkeit bei Verzeichnisoperationen beträchtlich erhöhen kann.
[Seite << 1 2 3 4 5 6 7 8 9 10 >>]
Themen-Forum Betriebssysteme