вопрос о 'беспроблемном' количестве файлов при хранении в одной директории

Крю

Guest
вопрос о 'беспроблемном' количестве файлов при хранении в одной директории

в теме где обсуждалось где хранить графику - в файлах или в blob в бд была написано, что ЕСЛИ графические файлы ХРАНИТЬ В ФАЙЛОВОЙ СИСТЕМЕ, да еще в В ОДНОМ КАТАЛОГЕ, ТО в какой-то момент, когда файлов в этом каталоге станет много то будут 'тормоза' .

Вопросы:
1) когда (при каких условиях) и в чем проявляются эти 'тормоза' ?

2) при каком количестве графических файлов в одном каталоге начнут проявлятся эти тормоза

3) для того чтобы избавится от п.2 , то рекомендовали создавать каталоги и сохранять в каждый каталог не более n файлов. Так вот чему равно это n ? (по вашему мнению, или из практики работы)

4) если вместо графических файлов будут выступать текстовые файлы (например html-ки небольшого размера, или txt текстовые файлы небоьшого размера - типа отзывов на какую-либо статью), то все что будет сказано на п. 1, 2, 3 будет ли в полной мере касаться и если б это были текстовые файлы? или есть какие то оговорки? или еще что-то ?
 

Tor

Новичок
1) когда - ты уже сам написал, в чем - если ты не знаешь, что такое "тормоза", то для чего этот топик?

2) это зависит от множества параметров: OC, hardware, filesystem, etc.

3) как правило, поддиректории несколько помогают отодвинуть конец света.

4) дело не в содержимом файла, а в том, что файловой системе нужно время на сопоставление имени файла с инодом. и если в папке туева хуча файлов, этот процесс становится все заметнее и заметнее по времени
 

Profic

just Profic (PHP5 BetaTeam)
Вот уж не знаю ечть ли здесь где на форуме подробный ответ на все эти вопросы...
1) когда кол-во ИМЕН (записей о файлах) в одном каталоге приближается к N
2) для fat32 N=~1000, N как можно заметить зависит от используемой FS
3) n < N - это ИМХО очевидно
4) читать ответ на 1.
 

Крю

Guest
Автор оригинала: Tor
1) когда - ты уже сам написал, в чем - если ты не знаешь, что такое "тормоза", то для чего этот топик?
Мне не понятно тормоза применительно к складыванию файлов в одну папку. Когда возникают эти тормоза ?

2) это зависит от множества параметров: OC, hardware, filesystem, etc.
файлы хранятся на дисках у хостера. какая самая распространенная ОС сейчас у хостеров.

хотя бы порядок. 100, 1000 ?
 

Крю

Guest
Автор оригинала: Profic
1) когда кол-во ИМЕН (записей о файлах) в одном каталоге приближается к N
все понял, СПАСИБО, кроме последнего:

а в чем проявляются 'тормоза' ?
 

Profic

just Profic (PHP5 BetaTeam)
Когда возникают эти тормоза ?
при обращении по имени (случайному) к любому файлу в этом каталоге. в независимости от того зачем к нему обращаться.
тормоза происходят из-за того, что в среднем для каждого обращения нужно просканировать полкаталога
 

Tor

Новичок
"тормоза" проявляются в задержках при
1) открытии файла/ов
2) получении списка файла/ов
3) копировании/перемещении файла/ов
 

vafel

Новичок
c 1000 файлов даже винда не тормазит на FAT32
во всяком случае я тормазов не замечал
а вобще проверить же несложно +)
 

Крю

Guest
т.е. при обращении к файлу лежащему в папке messages содержащей 5000 файлов , скажем, по адресу:

http://mysite.ru/messages/4560.html

то файл 4560.html будет медленно 'отдаваться' браузеру ? так? уточню на всякий случай
 

vafel

Новичок
что значит обращение к папке ? получение размеров, списка файлов или обращение к файлам из етой папки ?
 

Profic

just Profic (PHP5 BetaTeam)
он будет не медленно отдаваться браузеру а медленно искаться в каталоге а отдаваться будет как позволит канал и/или винт
 

Крю

Guest
Profic, Tor

спасибо большое !

Автор оригинала: Tor

3) как правило, поддиректории несколько помогают отодвинуть конец света.
до тех пор, пока самих деррикторий не станет N ?

а что же дальше как быть как делают ?
 

Profic

just Profic (PHP5 BetaTeam)
делают М уровней вложения.
про это уж в форуме точно было
 

.des.

Поставил пиво кому надо ;-)
Автор оригинала: Крю
Profic, Tor

спасибо большое !


до тех пор, пока самих деррикторий не станет N ?

а что же дальше как быть как делают ?
Автор оригинала: Profic
делают М уровней вложения.
про это уж в форуме точно было
Или используют нормальную файловую систему.
Например ReiserFS (для нее порядка 1M файлов на одну директорию проблем быть не должно)
 

Крю

Guest
Автор оригинала: Tor
есть еще более другая
Inodefs, кажется
там такой проблемы вообще нет
эхх, а у .masterhost-а , случайно, не такая ...

кстати, ссылка на ветку про M уровней вложения если навиду у кого-то, запостите пожалуйста.
 

SibProgrammer

Новичок
Причем здесь fat32 и количество файлов? У человека веб-сервер с файловой системой fat32 работать что ли будет? :)

Можно потестить, например, следующим скриптиком изменяя максимальный параметр:

PHP:
#!/bin/sh

i=1

while [ $i -le 10000 ]
do
  cp create.sh file_$i.sh
  i=`expr $i + 1`
done
Например под FreeBSD на USF на моей рабочей не очень мощной машине абсолютно не заметно никаких тормозов при наличии и 10000 файлов в директории...
 

.des.

Поставил пиво кому надо ;-)
Tor я вообще не слышал о такой файловой системе. И уж тем более не слышал о хостере который ее использует, в отличии от ReiserFS.
А раз уж зашла речь о fs у которой нет проблем вообще, не поделитесь ли с общественностью, как именно в ней это достигнуто?
ReiserFS имеет ограничение на количество файлов в директории из-за коллизий hash функции, что резко снижает ее эффективность.
 

Tor

Новичок
это только слухи, но там, как я слышал, как то ушли от резолвинга имя=>инод


я вообще не слышал о такой файловой системе
гугл дает немного ссылок

И уж тем более не слышал о хостере который ее использует
я тоже
 
Сверху