Согласно этой статье в стоге сена Facebook:
« Из-за того, как устройства NAS управляют метаданными каталога, размещение тысяч файлов в каталоге было крайне неэффективным, поскольку блок-карта каталога была слишком большой для эффективного кэширования устройством. Следовательно, для получения одиночное изображение. После уменьшения размеров каталогов до сотен изображений на каталог, получающаяся система, как правило, все равно будет выполнять 3 операции с дисками для извлечения изображения: одну для чтения метаданных каталога в память, вторую для загрузки индекса в память и третью. читать содержимое файла. "
Я предполагал, что метаданные и inode каталога файловой системы всегда будут кэшироваться в оперативной памяти ОС, а для чтения файла обычно требуется всего 1 дисковый ввод-вывод.
Является ли эта проблема «нескольких дисковых операций ввода-вывода для чтения одного файла» описанной в этой статье уникальной для устройств NAS, или же в Linux тоже есть такая же проблема?
Я планирую запустить сервер Linux для обслуживания изображений. В любом случае, я могу минимизировать количество дисковых операций ввода-вывода - в идеале, чтобы убедиться, что операционная система кэширует все данные каталогов и индексов в ОЗУ, а для каждого чтения файла потребуется не более 1 дискового ввода-вывода?