Nehmen wir an, wir verwenden ext4 (mit aktiviertem dir_index) zum Hosten von etwa 3 Millionen Dateien (mit einer durchschnittlichen Größe von 750 KB) und müssen uns entscheiden, welches Ordnerschema wir verwenden.
In der ersten Lösung wenden wir eine Hash-Funktion auf die Datei an und verwenden einen Ordner mit zwei Ebenen (1 Zeichen für die erste Ebene und 2 Zeichen für die zweite Ebene). Da der filex.forHash also abcde1234 entspricht, speichern wir ihn in / path / a / bc /abcde1234-filex.for.
In der zweiten Lösung wenden wir eine Hash-Funktion auf die Datei an und verwenden einen Ordner mit zwei Ebenen (bestehend aus 2 Zeichen für die erste Ebene und 2 Zeichen für die zweite Ebene). Wenn der filex.forHash also gleich abcde1234 ist , speichern wir ihn in / path / ab / de /abcde1234-filex.for.
Für die erste Lösung haben wir das folgende Schema /path/[16 folders]/[256 folders]mit durchschnittlich 732 Dateien pro Ordner (der letzte Ordner, in dem sich die Datei befinden wird).
Während auf der zweiten Lösung werden wir haben /path/[256 folders]/[256 folders]mit einem Durchschnitt von 45 Dateien pro Ordner .
In Anbetracht dessen, dass wir von diesem Schema aus viele Dateien schreiben / trennen / lesen ( aber meistens lesen ) (im Grunde genommen das Nginx-Caching-System), ist es in Bezug auf die Leistung von Bedeutung, ob wir die eine oder andere Lösung gewählt haben?
Mit welchen Tools können wir dieses Setup überprüfen / testen?
hdparm -Tt /dev/hdXaber es ist möglicherweise nicht das am besten geeignete Tool.
hdparmist nicht das richtige Tool, es ist eine Überprüfung der unformatierten Leistung des Blockgeräts und kein Test des Dateisystems.
