Max Smily: Wieviel Dateien passen in ein Verzeichnis (Linux)

Hallo Forum,

ich habe ein selbstgeschriebenes Redaktionsystem(chen), in welches man auch Bilder einbinden kann. Diese werden per Upload in ein bestimmtes Verzeichnis geschrieben. Das System ist nun im Einsatz und langsam ist abzusehen, dass bald mehrere 1000 Bilder upgeloadet sein werden.

Meine Frage: Macht Linux da mit? Wiehoch ist die Maximalanzahl von Dateien, die Linux in EINEM Verzeichnis verwalten kann?

Max

  1. Hi

    also ich sag jetzt einfach mal undendlich. Hab ja noch nie gehört das sich das beschränkt.

    Die einzige Einschränkung is glaub ich max 1 GB / File oder so - aber das is bei Bildern a bissl unwarscheinlich *g

    tOM

  2. Hi,

    probiers doch aus. Schreib ein kleines Skript, dass Dir eine ganze Menge Dateien in ein Verzeichnis schreibt, mit Dateinamen von 1 bis xxxxxx.

    Entweder ist irgendwann die Platte/Partition voll oder das Verzeichnis/Linux will nimmer.

    Aber ich wüsste nicht, dass es Beschränkungen bezüglich der Dateianzahl gibt, zumindest keine, die irgendwie wirklich beschränkend wäre.

    Grüße

    Andreas

  3. Hallo,

    Meine Frage: Macht Linux da mit? Wiehoch ist die Maximalanzahl von Dateien,
    die Linux in EINEM Verzeichnis verwalten kann?

    Kommt auf das Dateisystem an. Grundsaetzlich aber erstmal kannst du nicht mehr
    Dateien als Inodes auf deiner HD haben: pro Datei wird ein Inode belegt. Dann
    kann es uU noch zu Performanceproblemen kommen. Dazu folgender Absatz:

    |The current implementation of ext2 uses a singly-linked list to store
    |the filenames in the directory; a pending enhancement uses hashing of the
    |filenames to allow lookup without the need to scan the entire directory.

    Wenn also diese Hash-Erweiterung bei deiner Version des Datei-Systems noch nicht
    implementiert ist, kannst du die Performance mehr oder weniger vergessen -- denn
    dann muss bei Zugriffen das gesamte Feld durchsucht werden. Es gibt zwar gute
    Such-Algorithmen, aber auch die brauchen so ihre Zeit.

    Gruesse,
     CK

    1. hi!

      |The current implementation of ext2 uses a singly-linked list (...)
      Es gibt zwar gute Such-Algorithmen, aber auch die brauchen so ihre
      Zeit.

      Der einzige Such-Algorithmus auf einer verketteten Liste ist der naive.
      Würde mich sonst sehr wundern... ;)

      bye, Frank!

  4. Hallo Max,

    Wie hoch ist die Maximalanzahl von Dateien, die Linux in EINEM Verzeichnis verwalten kann?

    Warum willst du deine Dateien nicht ein wenig mit Unterverzeichnissen strukturieren? Also z.B. /home/bilder/1/4/6.dat statt /home/bilder/146.dat ? Dann hast du selber auch leichter dich zurechtzufinden.
    Gruß
    Hans35

  5. Moin,

    Meine Frage: Macht Linux da mit? Wiehoch ist die Maximalanzahl von Dateien, die Linux in EINEM Verzeichnis verwalten kann?

    Wie schon erwähnt: nicht mehr als du Inodes hast und die Perfomance hängt vom Dateisystem ab.
    Wenn die Dateien nicht besonders groß sind (die meisten sollten kleiner als 4k sein), empfiehlt sich dafür ReiserFS, da es auf diesem Gebiet gerüchteweise 10 bis 15 mal schneller als ext2 ist. Da es seine Daten in Bäumen statt Listen verwaltet, solltest du auch keine Probleme mit vielen Dateien in einem Verzeichnis bekommen. (Ein Hinweis: Vor dem Einsatz von ReiserFS wird hin und wieder gewarnt. Ich selbst hatte noch keine Probleme damit, aber es wäre keine schlechte Idee ein stets aktuelles Backup deiner Daten zu haben.)
    Ich hatte vor nicht allzu langer Zeit mal die Postings aus dem Forum gespeichert, eine Datei pro Posting. Da haben sich problemarm einige zehntausend Dateien in einem Verzeichnis getummelt (auf ReiserFS).
    Die Idee die Dateien wenigstens auf den ersten paar Ebenen in Verzeichnisse zu trennen, ist übrigens auch nicht verkehrt.

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Hallo,

      auf einer SUSE 7.0 hatte ich vor einiger Zeit auf einem ext2 Filesystem weit ueber 150000 Dateien in einem Verzeichnis (gennaue Zal weiss ich nicht mehr), was fuer Linux kein Problem darstellte. Ich habe allerdings nicht versucht mal "kreuz und quer" auf diese zuzugreifen, kann daher also nicht sagen wie es mit der Performance in diesem Punkt aussieht.

      Ein Problem hatte ich, als ich versuchte diese Files wieder zu loeschen ;-) Ein rm * in diesem directory brach mit einer Meldung ab die Parameterzahl sei zu hoch :-((

      Zum Thema ReiserFS kann ich sagen, dass es nach meiner bisherigen Erfahrung i.A. schneller ist als ext2. Ich bin allerdings trotzdem jemand, der vor dem Einsatz dessen etwas warnt, da es mir bereits passiert ist, dass ich ohne ersichtliche Grund ploetzlich Datenmuell in einigen Verzeichnissen hatte. (Platte war definitiv nicht defekt)

      hoffe etwas geholfen zu haben ;-)
      viele Gruesse, Andreas

  6. Vielen Dank für die Infos.

    Ich werde jetzt erstmal mit Google Begriffe wie "Inodes", "ReiserFS" etc. nachschlagen...
    Eigentlich wollte ich ja nur ein paar Dateien in nem Verzeichnis speichern. Statt dessen beginne ich jetzt mal mit nem Informatikstudium ;-)

    Ich denke, früher oder später werde ich die Bilder über mehrere Verzeichnisse verteilen. Da muss ich mein Redaktionssystem(chen) wohl überarbeiten...