Según este documento en el Haystack de Facebook:
" Debido a cómo los dispositivos NAS administran los metadatos del directorio, colocar miles de archivos en un directorio fue extremadamente ineficiente ya que el mapa de bloques del directorio era demasiado grande para que el dispositivo lo almacenara en caché de manera efectiva. En consecuencia, era común incurrir en más de 10 operaciones de disco para recuperar un imagen única. Después de reducir los tamaños de directorio a cientos de imágenes por directorio, el sistema resultante aún incurriría en 3 operaciones de disco para recuperar una imagen: una para leer los metadatos del directorio en la memoria, un segundo para cargar el inodo en la memoria y un tercero para leer el contenido del archivo " .
Supuse que el sistema operativo siempre almacenaría en la memoria caché los metadatos y el inodo del directorio del sistema de archivos y que la lectura de un archivo generalmente requeriría solo 1 disco IO.
¿Es este problema de "E / S de múltiples discos para leer un solo archivo" descrito en ese documento exclusivo de los dispositivos NAS, o Linux también tiene el mismo problema?
Estoy planeando ejecutar un servidor Linux para servir imágenes. De cualquier manera, puedo minimizar la cantidad de E / S de disco, ¿idealmente asegurándome de que el sistema operativo almacene en caché todos los datos de directorio e inodo en RAM y que cada lectura de archivo solo requiera no más de 1 E / S de disco?