Aller au contenu

Des milliers de fichiers dans un répertoire


demoore

Sujets conseillés

Une application créé 5 apperçus images de tailles différentes pour chaque article.

Il y a déjà 800 et quelques articles soit plus de 4000 fichiers dans le répertoire des apperçus, est-ce un problème?

Un serveur avec débian peut-il être ralenti par des dossiers rempli de dizaines de milliers de fichiers?

Merci de vos réponses,

Cordialement.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Un serveur avec débian peut-il être ralenti par des dossiers rempli de dizaines de milliers de fichiers?

Oui il peut. Généralement on essaye de scinder l'arborescence en plusieurs niveaux pour limiter cet effet.

Par exemple : /stockage/b/i/bidule.png au lieu de /stockage/bidule.png

Lien vers le commentaire
Partager sur d’autres sites

Je rebondis sur le sujet. Je suis en train de faire un système de cache par fichier et j'envoie tout dans une répertoire.

Est ce qu'il y a une limite de nombre de fichiers ?

Lien vers le commentaire
Partager sur d’autres sites

J'ai moi aussi 2-3 répertoires avec plus de 3000 fichiers.

J'ai fait des tests et je n'ai jamais pu observer de ralentissement palpable.

Y a t-il des tests fait là dessus?

Cela doit dépendre aussi du système de cache...

Lien vers le commentaire
Partager sur d’autres sites

Perso je suis intervenu plusieurs fois sur des serveurs Web qui subissaient de très forts ralentissement parce qu'il avaient 200'000 fichiers de sessions dans le même dossier. DOnc avec "seulement" quelques dizaines de milliers de fichiers, même si ça ne se ressent pas toujours j'éviterais pour ma part.

Après évidement cela dépend du système de fichier utilisé, de ses options (dir index, noatime), et probablement de la façon d'utiliser l'arborescence en question.

En tous cas la séparation en plusieurs niveaux de dossiers est quelque chose de très fréquent.

Lien vers le commentaire
Partager sur d’autres sites

Gardez toutefois à l'esprit que le système de fichiers EXT3 a par construction une limite de 32000 entrées par répertoire (donc 31998 fichiers/sous-répertoires plus les répertoires . et .. )

Lien vers le commentaire
Partager sur d’autres sites

J'ai également lu ce problème de limitation à 32'000 avec ext3 (64'000 avec ext4 dixit Wikipedia), et je ne comprends d'ailleurs pas : j'ai encore certains clients qui dépassent largement ce chiffre sur du ext3. Ce ne serait pas uniquement la limite du nombre de sous-dossier, et non d'entrées (même si j'étais persuadé qu'un sous dossier était traité de la même façon qu'une autre entrée) ?

captain_torche : non, c'est surtout répandu sur les Linux. Mac OS X, BSD et Solaris utilisent autre chose en standard.

Lien vers le commentaire
Partager sur d’autres sites

C'est la limite de sous-répertoires par répertoire... pas le nombre maxi d'inodes bien évidemment.

Désolé pour le manque de clarté de mon post précédent.

Je n'ai jamais été confronté à cette limite en ce qui me concerne.

Lien vers le commentaire
Partager sur d’autres sites

Bah justement, des dossiers avec 100'000 fichiers dedans, sur un FS en ext3, j'en ai...

Je viens de revérifier, chez un client j'ai un joli dossier "photos" qui contient plus de 170'000 fichiers.

Lien vers le commentaire
Partager sur d’autres sites

Avec pres de 50'000 fichiers je n'ai pas de pb. Dans le doute j'ai mis en place un systeme simple de sous répertoires comme décrit par Kioob ci dessus.

le fichier "cache/filecache.htm" sera mis dans "cache/f/i/l/filecache.htm"

Les sous répertoires vont de a à z et de 0 à 9. ça fait 36 sous répertoires à chaque fois.

Avec ce système simple 1 million de fichiers bien répartis donnent 22 fichiers par sous répertoire.

Lien vers le commentaire
Partager sur d’autres sites

Avec ce système simple 1 million de fichiers bien répartis donnent 22 fichiers par sous répertoire.

Pour le coup tu aurais pu utiliser un ou deux niveaux de moins je crois, non ?

Lien vers le commentaire
Partager sur d’autres sites

Bah justement je ne suis pas certain que ça ne coute rien de plus :P

Moi je le vois comme le partitionnement de table dans une base de données (MySQL 5.1 par exemple) ; c'est pas pour autant qu'on va créer une partition toutes les 20 lignes.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...