Selon cet article sur Haystack de Facebook:
" En raison de la façon dont les appliances NAS gèrent les métadonnées de l'annuaire, placer des milliers de fichiers dans un annuaire était extrêmement inefficace car la carte de blocs de l'annuaire était trop grande pour être mise en cache efficacement par l'appliance. Par conséquent, il était courant d'engager plus de 10 opérations sur le disque pour récupérer un image unique. Après avoir réduit la taille des répertoires à des centaines d'images par répertoire, le système résultant subissait généralement 3 opérations de disque pour récupérer une image: une pour lire les métadonnées du répertoire en mémoire, une seconde pour charger l'inode en mémoire et une troisième pour lire le contenu du fichier. "
J'avais supposé que les métadonnées et l'inode du répertoire du système de fichiers seraient toujours mis en cache dans la RAM par le système d'exploitation et qu'une lecture de fichier ne nécessiterait généralement qu'un seul disque IO.
Est-ce que ce problème "d'E / S sur plusieurs disques pour lire un seul fichier" décrit dans ce document est unique aux appliances NAS, ou Linux a-t-il le même problème aussi?
Je prévois d'exécuter un serveur Linux pour servir des images. De toute façon, je peux minimiser le nombre d'E / S disque - en s'assurant idéalement que le système d'exploitation met en cache toutes les données de répertoire et d'inode dans la RAM et que chaque fichier lu ne nécessiterait pas plus de 1 disque E / S?