Каково maxium количество файлов, которые может содержать папка Unix?

Хотя теория операции SSD должна сделать это более надежным, чем жесткий диск, технология и получающиеся продукты являются незрелыми.

Вы должны ожидать, что SSD будут иметь интенсивность отказов, подобную любому электронному компоненту. Так как последствия потери данных часто более серьезны, чем последствия времени простоя из-за неудавшегося ЦП, дублирование имеет больше смысла. Реалистично, SSD на уровне конечного пользователя будут иметь большую интенсивность отказов, чем ожидалось, потому что они так плохо сделаны, и высокопроизводительные SSD будут иметь большее, чем ожидаемая интенсивность отказов, потому что они - новейшая технология.

Даже если данные не важны, время простоя и работа, вызванная путем восстановления системы, могут быть значительными. Я работал в одной среде, где горстка системных администраторов управляет многими сотнями систем с исключительно накопителем большой емкости. Была однажды вера, что было приемлемо иметь нерезервированное устройство хранения данных для неважных легко восстанавливаемых данных. К счастью урок относительно того, почему это неправильно, был правильно извлечен. Восстановление системы от сбоя диска связывало системного администратора в течение многих часов. Снижение расходов в цене диска было ничем по сравнению с отходами в оплате кому-то для восстановления системы.

20
задан 13 February 2011 в 10:31
6 ответов

Варьируется на файловую систему, http://en.wikipedia.org/wiki/Comparison_of_file_systems

19
ответ дан 2 December 2019 в 20:07

Это зависит, с каким количеством inodes файловая система была создана. Выполнение

df -i 

даст Вам количество свободного inodes. Это - практический предел того, сколько файлов файловая система и следовательно каталог может содержать.

12
ответ дан 2 December 2019 в 20:07
  • 1
    Однако много файловых систем имеют предел файлов на каталог, независимо от количества свободного inodes. –   26 January 2009 в 09:01
  • 2
    да, но вопрос предназначался для файловых систем UNIX и насколько я знаю, что все современные файловые системы UNIX не ограничивают количество файлов в каталоге. –   26 January 2009 в 16:33

Во всех текущих файловых системах Unix каталог может содержать практически неограниченное количество файлов. Принимая во внимание, что "неограниченный" ограничен дисковым пространством и inodes - независимо от того, что заканчивается сначала.

С более старыми проектами файловой системы (ext2, UFS, HFS +) вещи имеют тенденцию становиться медленными, если у Вас есть много файлов в каталоге. Обычно вещи начинают становиться болезненными приблизительно 10 000 файлов. С более новыми файловыми системами (ReiserFS, XFS, ZFS, UFS2) у Вас могут быть миллионы файлов в каталоге, не видя общие узкие места производительности.

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

Я счастливо использовал каталог с несколькими миллионами файлов на UFS2 и не видел проблем, пока я не хотел удалить каталог - который занял несколько ДНЕЙ.

14
ответ дан 2 December 2019 в 20:07

Я предполагаю, что Вы думаете о хранении большого количества файлов в одном месте, нет?

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

Я, кажется, вспоминаю слушание, что несколько тысяч - слишком многие для наиболее практических применений. Обычно решение состоит в том, чтобы разбить группировку. Таким образом,

/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/

и храните свои файлы в соответствующем подкаталоге согласно хешу их basename. Выберите удобный хеш, первый символ мог бы сделать для простых случаев.


Cristian Ciupitu пишет в комментариях, что XFS и возможно другие очень новые файловые системы, используют log(N) доступные для поиска структуры для содержания содержания каталога, таким образом, это ограничение значительно улучшено.

6
ответ дан 2 December 2019 в 20:07
  • 1
    Некоторые современные файловые системы, например, XFS don' t включают линейный поиск. XFS' s технология B-дерева позволяет этому перейти непосредственно к блокам и/или степеням, содержащим file' s местоположение с помощью сложных индексов (от uoks.uj.edu.pl/resources/flugor/IRIX/xfs-whitepaper.html ). –  Cristian Ciupitu 26 January 2009 в 04:30
  • 2
    А-ч! Я didn' t знают это.Спасибо. Добавит к тексту. –  dmckee 26 January 2009 в 04:37
  • 3
    Для ext3 необходимо активировать " dir_index" функция, cf. tune2fs (8). –   26 January 2009 в 13:27

ext3 один из наиболее распространенных форматов файловой системы Linux становится действительно вялым, если Вы имеете вокруг 20k + файл в каталоге. Независимо от того, сколько это может содержать, необходимо постараться не иметь это много файлов в одном каталоге.

0
ответ дан 2 December 2019 в 20:07

Из комментария Вы уехали, я думаю, что Вы действительно не заботитесь о том, сколько файлов/папок Ваш FS может разместить.

Необходимо, вероятно, рассмотреть использование ModRewrite и перезаписи site.com/username на site.com/?user= или что-то вроде вида и хранить все данные в базе данных. Создание одной папки на пользователя обычно не необходимо (и не хорошая идея).

Тем не менее каждая файловая система имеет пределы, и df может сказать Вам, сколько inodes доступно на каждом разделе Вашей системы.

0
ответ дан 2 December 2019 в 20:07

Теги

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