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

Как сложность каталога влияет на i-узлы?

Для одного проекта, в котором используется много изображений (± 1–3k в день), я использую собственный PHP-скрипт для обработки изображений и сохранения их на сервере.

Текущий PHP-скрипт обрабатывает их и сохраняет в следующей структуре папок: Таким образом, максимальный уровень равен 5. Но в настоящее время я думаю, как следующая структура каталогов влияет на количество inodes? Снизить уровень до 2 или 3?

Каждая запись каталога также является записью inode.

16 ** 5 = 1 048 576

16 ** 3 = 4096

Один год изображений ... 2000 * 365 = 730 000.

Это даст вам примерно 178 на каталог с глубиной 2. При глубине 5, загрузка будет чуть больше половины. Три звучат для меня хорошо. Может быть, если вы будете в нем десять лет, я бы перешел на 4.

Каждый файл и каталог занимает индексный дескриптор, но я не думаю, что вы сильно рискуете исчерпать индексные дескрипторы в файловой системе приличного размера - на глубине 5 уровней ваше дерево каталогов будет занимать 16^5 или 1048576 inodes, что достаточно, но вряд ли приведет к перегрузке вашей файловой системы. С другой стороны, количество хранимых вами файлов может вызвать проблемы ...

Хотя использовать только одну шестнадцатеричную цифру на уровень немного расточительно - я обычно использую три цифры на уровень (так что ab3/4f5/5e1/...), так как это помещает 4096 каталогов на каждом уровне, что находится в пределах разумной производительности приличной файловой системы (не переходите к 4, поскольку extN допускает только 32000 подкаталогов в одном каталоге).

Затем, конечно же, есть целый мир файловых систем без фиксированных ограничений inode и лучшей производительности перед лицом огромного количества файлов в каталоге и без ограничений на количество подкаталогов ...