Ich habe 2x 4 TB Festplatten in Hardware RAID1 (es könnte ein LSI MegaRaid sein) auf Debian Wheezy. Die physische Blockgröße beträgt 4 KB. Ich werde 150-200 Millionen kleine Dateien (zwischen 3 und 10 KB) speichern. Ich frage nicht nach Leistung, sondern nach den besten Dateisystem- und Blockgrößen, um Speicherplatz zu sparen. Ich habe eine Datei mit 8200 Byte auf eine ext4 mit einer Blockgröße von 4 KB kopiert. Dies dauerte 32 KB Festplatte!? Ist Journaling der Grund dafür? Welche Möglichkeiten gibt es also, um den meisten Speicherplatz für so kleine Dateien zu sparen?
10
Antworten:
Wenn ich in dieser Situation wäre, würde ich mir eine Datenbank ansehen, die alle Daten in einer einzigen Datei mit einem kompakten, Offset-basierten Index speichern kann, anstatt als separate Dateien. Möglicherweise eine Datenbank, in der ein FUSE-Treiber verfügbar ist, um bei Bedarf als Dateien mit ihm zu interagieren, ohne dass tatsächlich alle separate Dateien sind.
Alternativ können Sie beispielsweise das 60. bis 70. Perzentil der Dateigrößen betrachten und versuchen, diese Dateigröße direkt in die Baumknoten des Dateisystems einzufügen, anstatt als separate Blöcke auf der Festplatte. Das Speichern von 10.000 in jedem Knoten ist wahrscheinlich eine große Frage, aber wenn Sie 60% -70% der Dateien darin erhalten könnten, wäre das wahrscheinlich ein großer Gewinn.
Das können nur bestimmte Dateisysteme (reiserfs ist eins), und ich denke, alles hängt davon ab, wie groß dieses Perzentil ist und ob es in den Baum passt. Möglicherweise können Sie es einstellen. Ich denke, versuchen Sie, den Rest in einen Block zu passen.
Und mach dir keine Sorgen um Zeitschriften; Sie haben sowieso eine obere Größenbeschränkung.
quelle