@PlatinumArcade

Linux: большое количество файлов в папке — это сколько?

На хостинге меня пугали, что больше 3000 файлов в одной папке держать крайне не желательно, замедляется производительность доступа к этим файлам. Погуглил, люди сотнями тысяч хранят, вроде.

Так где правда?
  • Вопрос задан
  • 15475 просмотров
Пригласить эксперта
Ответы на вопрос 6
javenue
@javenue
По собственному опыту:
10 тысяч — вполне нормальное число.
50 тысяч и больше — стоит подумать о подпапках и иерархичности папок / документов.
Ответ написан
Комментировать
thecoder
@thecoder
Разработчик веб-приложений и сервисов.
Если ответить коротко — зависит от ограничений файловой системы.

Это, пожалуй, индивидуальная мера для выбранной системы, на каком количестве файлов начнутся тормоза.
На практике, чем больше файлов в папке — тем медленнее листинг. Индивидуальный доступ к одному файлу из 30 тыс. может не отличаться по скорости(если в директорию никогда не заходить через терминал), но листинг может занять несколько минут и загрузить процессор.

Лично я распределяю по удобству копирования и архивации, примерно по несколько сотен файлов(до тысячи) в одной папке.
Ответ написан
Комментировать
Под Линуксом используются разные файловые системы и у них разные ограничения.
Наиболее распространены ext3 и ext4, но не так редко бывает RaserFS, XFS и пр.
Например, в ext3 выделяется 655360 inodes на раздел и когда они кончаются, записать ничего нельзя.
Ответ написан
@Jazzist
Это некорректный вопрос, так как в конкретной ситуации производительность существенно зависит от ряда других факторов.

На одной и той же машине в разных обстоятельствах можно получить ощутимые тормоза при чтении директории с 50000 файлов, и при 1000.
Ответ написан
Комментировать
sledopit
@sledopit
при безумных количествах могут возникать некоторые неудобства в работе, некоторые из которых повергают неопытных пользователей в панику (:
например, df -h показывает что места еще 20 гигов, а файло не создается, рапортуя, что закончилось место (бывает только, если иноды закончились) или не работают rm * и многие маски (шелл ругается на большое количество аргументов).
а так, чтобы это на производительности сказывал, что-то не наблюдал.
Ответ написан
Комментировать
taliban
@taliban
php программист
Большое число файлов в папке на самом деле замедняет доступ к ним.
Когда у меня бала задача расположить сотни тысяч файлов и потом оперативно их доставать, то я делал иерархию, как написал человек выше. На сколько я помню каждая фс имеет свои ограничения на количество файлов в одной папке, вроде как 65тыс. Так что если у Вас количество файлов все время растет, то лучше сразу подумать над иерархией.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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