Disons que nous utilisons ext4 (avec dir_index activé) pour héberger environ 3 millions de fichiers (avec une taille moyenne de 750 Ko) et que nous devons décider du schéma de dossiers que nous allons utiliser.
Dans la première solution , nous appliquons une fonction de hachage au fichier et utilisons un dossier à deux niveaux (étant 1 caractère pour le premier niveau et 2 caractères pour le deuxième niveau): étant donc le filex.for
hachage égal à abcde1234 , nous le stockerons sur / path / a / bc /abcde1234-filex.for.
Dans la deuxième solution , nous appliquons une fonction de hachage au fichier et utilisons un dossier à deux niveaux (étant 2 caractères pour le premier niveau et 2 caractères pour le deuxième niveau): étant donc le filex.for
hachage égal à abcde1234 , nous le stockerons sur / path / ab / de /abcde1234-filex.for.
Pour la première solution, nous aurons le schéma suivant /path/[16 folders]/[256 folders]
avec une moyenne de 732 fichiers par dossier (le dernier dossier, où le fichier résidera).
Alors que sur la deuxième solution, nous aurons /path/[256 folders]/[256 folders]
une moyenne de 45 fichiers par dossier .
Étant donné que nous allons beaucoup écrire / dissocier / lire des fichiers ( mais surtout lire ) à partir de ce schéma (essentiellement le système de mise en cache nginx), cela a-t-il une importance, en termes de performances, si nous choisissons l'une ou l'autre solution?
De plus, quels sont les outils que nous pourrions utiliser pour vérifier / tester cette configuration?
hdparm -Tt /dev/hdX
mais ce n'est peut-être pas l'outil le plus approprié.
hdparm
n'est pas le bon outil, c'est une vérification des performances brutes du périphérique de bloc et non un test du système de fichiers.