| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > много файлов (миллионы) в одном каталоге |
| Автор: 1234ru 18.3.2010, 23:54 |
| Планируется вещь, отдаленно напоминающая фотохостинг. Количество хранимых фотографий может достигать нескольких миллионов (а, может, и больше). Есть пара вопросов: 1. Допустимо ли при таких объемах сваливать все фотографии в один каталог? Или же надо как-то делить? (Лучше ли будет, если сделать подкаталоги, количество которых будет на пару порядков меньше, чем количество фотографий?) 2. Влияет ли на производительность длина имени файла фотографии? Т.е. есть ли разница 398214.jpg или solntse-vstalo-kakaya-prelest.jpg ? |
| Автор: 1234ru 19.3.2010, 02:05 | ||
Понятно, спасибо. Я так понимаю, при делении нужно стремиться, чтобы не было перекоса, т.е. число подкаталогов = среднее число файлов в каждом каталоге = sqrt(общее число файлов) Верно ли это? |
| Автор: Fortop 19.3.2010, 04:25 |
| Есть вполне конкретные ограничения файловых систем на наличие файлов в одном каталоге. Следует исходить из этого. Используя всего лишь 1ну латинскую букву или цифру в названии каталогов, при уровне вложенности равной 6ти будет возможно хранить 36^6 = 2 176 782 336 файлов. Этого достаточно для планируемого проекта? Если недостаточно увеличьте глубину до 12 и храните до 4 000 000 трлн. файлов. |
| Автор: 1234ru 19.3.2010, 04:29 | ||||
Какие они, эти ограничения?
Не, вложенность 6 не пойдет. Слишком много, потом будет неудобно работать (да и другие причины есть). Я имел в виду, если вложенность два, т.е. все файлы не в одном каталоге, а разбиты по подкаталогам (в смысле, не /dir/files..., а /dir/subdir/files... ). При нескольких миллионах файлов можно сделать тысячу каталогов и хранить по тысяче файлов в каждом. Так нормально будет? |
| Автор: Fortop 19.3.2010, 06:22 | ||
Разные для каждой файловой системы. Конкретные цифры лучше узнавать в гугле.
Я открою секрет, физическое местоположение файла и то под каким соусом он будет доступен через веб - это абсолютно разные и слабо-пересекающиеся вещи. Например, файл доступный по адресу http://mysite.com/user/photo/album1/img1.jpg может находиться где угодно на диске и иметь имя например - bsfdsfwerw2 |
| Автор: 1234ru 19.3.2010, 11:17 | ||||
Знаю. Все равно
|
| Автор: gcc 19.3.2010, 13:44 |
| 1234ru, MogileFS распределенная файловая система |
| Автор: IgorIV 20.3.2010, 08:58 |
| Хранить-то может и можно миллионы файлов на одном сервере, вот только как их будет отдавать веб-сервер. Надо изначально закладывать расширяемость на несколько серверов. |
| Автор: xZ0RGx 26.3.2010, 06:20 |
| Во-первых такие вещи надо проектировать а не от балды делать. 1) Для начала выберите ФС и изучите ее возможности. 2) У вас могут банально кончится inode. 3) Как правило в ядре есть такие параметры как max_open_files |
| Автор: IgorIV 26.3.2010, 22:23 | ||
| xZ0RGx, 1 а че выбирать. UFS2 2
Использованно 1 миллион, свободно - 60 миллионов 3 Вот с этим надо экспериментировать. Просто система работающая в роли шлюза - 788 открытых файлов. Хотя нет, вру |