Назад | Перейти на главную страницу

Оптимальная структура каталогов для хранения миллионов файлов в системе ext4

Мне нужно хранить миллионы файлов в системе ext4.
Я понимаю, что структура с несколькими подкаталогами является общепринятым решением. Интересно, какой подход был бы оптимальным с точки зрения количества каталогов / подкаталогов.
Например, я попробовал структуру типа 16/16/16/16 (то есть (под) каталоги с 1 по 16) и обнаружил, что могу переместить 100 Кб файлов в эту структуру за 2 минуты 50 секунд.
При попытке переместить 100К файлов в структуру 8/8/8/8/8/8 потребовалось 11 минут. Итак, подход 16/16/16/16 кажется лучше, но мне было интересно, есть ли у кого-нибудь эмпирический опыт с еще лучшим распределением dir / subdir.

1) XFS теперь лучший выбор чем EXT4.

2) Даже 1024 для каждой записи каталога должно быть вполне нормально, поэтому вы можете соответствующим образом уменьшить уровень глубины вложенных каталогов.

После большого количества тестов я нашел решение, которое работает для меня, просто найдите, и я надеюсь, что оно может помочь и другим:
Я создал структуру каталогов 255/255, а затем использовал ramdisk (/ dev / shm), чтобы быстро создать каталоги, а затем сохранить файлы внутри них. Затем раз в минуту перемещаю файлы на HDD.
Использование этого подхода сократило время сохранения 100K файлов в каталогах 255/255 с 5 минут до 5 секунд.