Задать вопрос

Много картинок в одной директории?

На сервере картинки выдаются при помощи сервера nginx.


Сколько максимально можно размещать картинок в 1 директории для ФС ext3, чтобы не возрастало время случайного доступа к файлам и не появлялось никакой излишней дополнительной нагрузки из-за поиска файлов в директории с огромным количеством файлов?


Соответственно такой же вопрос про директории: каким числом поддиректорий в директории лучше всего ограничиться?


Какие ограничения на длины имён директорий и файлов следует накладывать, чтоб не возрастало время поиска, какие ограничения на уровни вложенности?


Тот же вопрос интересует (но уже не в практических, а в познавательных целях) для ФС reiserfs, ext4, xfs, jfs… И какая из этих ФС лучше справится с такой задачей?
  • Вопрос задан
  • 3681 просмотр
Подписаться 7 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
Bambr
@Bambr
В стародавние времена был придуман способ хранить множество файлов по такому принципу:
1) было: /files/abcdefg.gif
2) стало: /files/a/b/c/abcdefg.gif
Глубину вложенности больше 3 на практике ни разу не видел, как и задержек. Вот по первому рецепту — задержки были, но тогда была еще ext2 и несколько тысяч файлов в папке. Точные цифры, к сожалению, не помню за давностью лет.
Ответ написан
Комментировать
fozzy
@fozzy
для мелких файлов лучше reiserfs, для остальных ext*
По поводу хранения солидарен с Bambr. Разве что взгляните в сторону mogilefs
Ответ написан
Комментировать
mgyk
@mgyk
Максимально фаилов в одном каталоге для ext3 по-моему около 32к
Чтобы разместить фаилы равномерно по подкаталогам лучше всего работает такая схема. m5sum(file) = a1b2c3… Тогда фаил размещаем в /a/1b/filename… получаем для 100к фаилов по 23-25 файлов в каталоге
Ответ написан
Комментировать
@sendmail
просто для доступа до 5-10 тыс можно не париться
Ответ написан
Комментировать
kashey
@kashey
Программирую большую половину жизни
раньше хранил в front-cache(два гига) + 4 гига картинок(700к чтук) в $1/$2/md5(name) где $1-$2 — два первых и два вторых символа md5 имени.

Теперь храню в кеше и mysql.
Причина проста — когда надо было переехать на другой сервер архивация папочки заняла… 6 часов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы