Frage Wie viele Dateien können maximal in einem Unix-Ordner gespeichert werden?


Wie viele Dateien können maximal in einem Unix-Ordner gespeichert werden?

Ich denke, es wird das gleiche wie die Anzahl der Dateien sein.


20
2018-01-26 01:18


Ursprung


Eine viel bessere Frage könnte sein: Wie viele sollte ich verwenden? stackoverflow.com/questions/466521/... - Joachim Sauer
Ich würde es lieben, wenn meine Website-URLs wie site.com/username/ usw. aussehen würden, aber ich denke, dass (wenn ich Glück habe) mehr als 2 Millionen Nutzer bekommen, das sind mehr als 2 Millionen Ordner, da ich es nicht tue Ich möchte ein Skript wie PHP mit einem Modrewrite verwenden. Ich habe mir die anderen Möglichkeiten von Ordnern in einem Ordner angeschaut
Tun Sie sich einen Gefallen und erstellen Sie Unterverzeichnisse mit einem Umschreibungsschema. - Peter Eisentraut


Antworten:


Variiert je Dateisystem, http://en.wikipedia.org/wiki/Comparison_of_file_systems


19
2018-01-26 01:20



Ich mochte diesen Tisch besser, wenn er eine Kolumne hat, um Ihnen zu sagen, ob das Dateisystem Ihre Frau ermorden würde oder nicht. - Paul Tomblin
lol! - Zach
en.wikipedia.org/w/... - Zach


Auf allen aktuellen Unix-Dateisystemen kann ein Verzeichnis praktisch enthalten sein unbegrenzt Anzahl der Dateien. Während "unbegrenzt" durch den Speicherplatz und begrenzt ist Inodes - was auch immer abläuft.

Bei älteren Dateisystem-Designs (ext2, UFS, HFS +) Dinge neigen dazu, langsam zu werden, wenn Sie viele Dateien in einem Verzeichnis haben. Normalerweise beginnen die Dinge um 10.000 Dateien herum zu schmerzen. Mit neueren Dateisystemen (ReiserFS, XFS, ZFS, UFS2) Sie können Millionen von Dateien in einem Verzeichnis haben, ohne allgemeine Leistungsengpässe zu sehen.

Aber so viele Dateien in einem Verzeichnis zu haben ist nicht gut getestet und es gibt viele Tools, die das nicht schaffen. Zum Beispiel können periodische Systemwartungsskripte darauf stoßen.

Ich habe gerne ein Verzeichnis mit mehreren Millionen Dateien auf UFS2 benutzt und hatte keine Probleme gesehen, bis ich das Verzeichnis löschen wollte - das dauerte mehrere Tage.


14
2018-01-27 21:23





Es hängt davon ab, wie viele Inodes Das Dateisystem wurde mit erstellt. Ausführen

df -i 

gibt Ihnen die Anzahl der freien Inodes. Dies ist die praktische Grenze dafür, wie viele Dateien ein Dateisystem und somit ein Verzeichnis enthalten kann.


11
2018-01-26 02:22



Bei vielen Dateisystemen ist jedoch die Anzahl der Dateien pro Verzeichnis begrenzt, unabhängig von der Anzahl der freien Inodes.
Ja, aber die Frage zielte auf UNIX-Dateisysteme und soweit ich weiß, begrenzen alle modernen UNIX-Dateisysteme nicht die Anzahl der Dateien in einem Verzeichnis.


Ich nehme an, Sie denken darüber nach, viele Dateien an einem Ort zu speichern, oder?

Die meisten modernen Unix-Dateisysteme können setzen viel von Dateien in einem Verzeichnis, aber Operationen wie das Folgen von Pfaden, das Auflisten von Dateien usw. beinhalten eine lineare Suche durch die Liste von Dateien und werden langsam, wenn die Liste zu groß wird.

Ich erinnere mich zu hören, dass ein paar Tausend zu viel für die meisten praktischen Anwendungen sind. Die typische Lösung besteht darin, die Gruppierung aufzubrechen. Das ist,

/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/

und speichern Sie Ihre Dateien im entsprechenden Unterverzeichnis nach einem Hash ihrer basename. Wählen Sie einen passenden Hash, das erste Zeichen könnte für einfache Fälle ausreichen.


Cristian Ciupitu schreibt in den Kommentaren, dass XFSund möglicherweise andere sehr neue Dateisysteme, verwenden log(N) durchsuchbare Strukturen, um Verzeichnisinhalte zu halten, so ist diese Einschränkung sehr groß verbessert.


6
2018-01-26 02:07



Einige moderne Dateisysteme, z.B. XFS beinhaltet keine lineare Suche. Die B-Tree-Technologie von XFS ermöglicht den direkten Zugriff auf die Blöcke und / oder Extents, die den Speicherort einer Datei enthalten, mithilfe ausgeklügelter Indizes (von uoks.uj.edu.pl/resources/fluorg/IRIX/xfs-whitepaper.html). - Cristian Ciupitu
Ah! Das wusste ich nicht. Vielen Dank. Wird zum Text hinzugefügt. - dmckee
Für ext3 müssen Sie die Funktion "dir_index" aktivieren, vgl. tune2fs (8).


ext3 Eines der gängigsten Linux-Dateisystem-Formate wird sehr träge, wenn Sie etwa 20k + Datei in einem Verzeichnis haben. Unabhängig davon, wie viele es halten kann, sollten Sie versuchen, so viele Dateien in einem Verzeichnis zu vermeiden.


0
2018-01-21 10:51





Von dem Kommentar, den du hinterlassen hast, ist es dir ziemlich egal, wie viele Dateien / Ordner dein FS hosten kann.

Sie sollten wahrscheinlich in Erwägung ziehen, ModRewrite zu verwenden und site.com/username auf site.com/?user= oder etwas Ähnliches neu zu schreiben und alle Ihre Daten in einer Datenbank zu speichern. Das Erstellen eines Ordners pro Benutzer ist in der Regel nicht notwendig (und keine gute Idee).

Das heißt, jedes Dateisystem hat Grenzen und df kann Ihnen sagen, wie viele Inodes auf jeder Partition Ihres Systems verfügbar sind.


0
2018-01-21 11:48