De acordo com este artigo no Haystack do Facebook:
" Devido à maneira como os dispositivos NAS gerenciam os metadados do diretório, colocar milhares de arquivos em um diretório era extremamente ineficiente, pois o mapa de blocos do diretório era muito grande para ser armazenado em cache pelo dispositivo. Consequentemente, era comum incorrer em mais de 10 operações de disco para recuperar um Depois de reduzir o tamanho dos diretórios para centenas de imagens por diretório, o sistema resultante geralmente ainda incorre em 3 operações de disco para buscar uma imagem: uma para ler os metadados do diretório na memória, uma segunda para carregar o inode na memória e uma terceira para ler o conteúdo do arquivo " .
Eu tinha assumido que os metadados e o inode do diretório do sistema de arquivos sempre seriam armazenados em cache na RAM pelo sistema operacional e uma leitura de arquivo normalmente exigiria apenas 1 E / S de disco.
Esse problema de "E / S de discos múltiplos para ler um único arquivo" descrito neste documento é exclusivo para dispositivos NAS ou o Linux também tem o mesmo problema?
Estou planejando executar um servidor Linux para veicular imagens. De qualquer maneira, posso minimizar o número de E / S de disco - idealmente, certificando-se de que o sistema operacional armazene em cache todos os dados de diretório e inode na RAM e que cada leitura de arquivo exija apenas 1 E / S de disco?