Voici les conseils de quelqu'un qui travaille dans un environnement où les dossiers contiennent des dizaines de millions de fichiers.
- Un dossier stocke les informations d'indexation (liens vers les fichiers et dossiers enfants) dans un fichier d'indexation. Ce fichier devient très volumineux lorsque vous avez beaucoup d'enfants. Notez qu'il n'y a pas de distinction entre un enfant qui est un dossier et un enfant qui est un fichier. La seule différence est que le contenu de cet enfant est soit l'index du dossier de l'enfant, soit les données du fichier de l'enfant. Remarque : je simplifie quelque peu les choses, mais cela permet de faire passer le message.
- Le fichier d'index sera fragmenté. Lorsqu'il est trop fragmenté, il est impossible d'ajouter des fichiers à ce dossier. C'est parce qu'il y a une limite au nombre de fragments autorisés. C'est une question de conception. Je l'ai confirmé auprès de Microsoft lors d'un appel d'incident de support. Ainsi, bien que la limite théorique du nombre de fichiers que vous pouvez avoir dans un dossier soit de plusieurs milliards, bonne chance lorsque vous commencerez à atteindre des dizaines de millions de fichiers, car vous vous heurterez d'abord à la limite de fragmentation.
- Mais tout n'est pas négatif. Vous pouvez utiliser l'outil : contig.exe pour défragmenter cet index. Cela ne réduira pas la taille de l'index (qui peut atteindre plusieurs gigas pour des dizaines de millions de fichiers) mais vous pouvez réduire le nombre de fragments. Remarque : l'outil Disk Defragment ne défragmente PAS l'index du dossier. Il défragmente les données des fichiers. Seul l'outil contig.exe défragmente l'index. Pour information : vous pouvez également utiliser cet outil pour défragmenter les données d'un fichier individuel.
- Si vous procédez à une défragmentation, n'attendez pas d'avoir atteint la limite maximale du nombre de fragments. J'ai un dossier que je ne peux pas défragmenter parce que j'ai attendu qu'il soit trop tard. Mon prochain test consiste à essayer de déplacer certains fichiers de ce dossier vers un autre dossier pour voir si je peux le défragmenter à ce moment-là. Si cela échoue, je devrais alors 1) créer un nouveau dossier. 2) déplacer un lot de fichiers vers le nouveau dossier. 3) défragmenter le nouveau dossier. répéter les étapes 2 et 3 jusqu'à ce que ce soit fait et ensuite 4) supprimer l'ancien dossier et renommer le nouveau dossier pour qu'il corresponde à l'ancien.
Pour répondre plus directement à votre question : Si vous envisagez 100 000 entrées, pas de souci. Allez vous faire voir. Si vous avez des dizaines de millions d'entrées, alors soit :
a) Prévoyez de les subdiviser en sous-dossiers (par exemple, disons que vous avez 100 millions de fichiers. Il est préférable de les stocker dans 1000 dossiers de manière à n'avoir que 100 000 fichiers par dossier plutôt que de les stocker dans un seul grand dossier. Cela créera 1000 index de dossiers au lieu d'un seul gros index qui risque davantage d'atteindre la limite du nombre maximal de fragments ou de la taille du dossier.
b) Prévoyez d'exécuter contig.exe régulièrement pour maintenir l'index de votre grand dossier défragmenté.
Ne lisez ci-dessous que si vous vous ennuyez.
La limite réelle n'est pas le nombre de fragments, mais le nombre d'enregistrements du segment de données qui stocke les pointeurs vers le fragment.
Vous disposez donc d'un segment de données qui stocke des pointeurs vers les fragments de données de l'annuaire. Les données du répertoire stockent des informations sur les sous-répertoires et les sous-fichiers que le répertoire est censé stocker. En fait, un répertoire ne "stocke" rien. Il s'agit simplement d'une fonction de suivi et de présentation qui donne à l'utilisateur l'illusion d'une hiérarchie, puisque le support de stockage lui-même est linéaire.
4 votes
Comment gérer un grand nombre de petits fichiers ?
0 votes
Les réponses à la question connexe sont inférieures à la réponse acceptée ici.
0 votes
Cette mise en œuvre pourrait être utile : github.com/acrobit/AcroFS
1 votes
En rapport : ReFS gère-t-il plus rapidement que NTFS les grandes quantités de fichiers et les suppressions importantes ?