Максимальное количество папок linux

Максимальное количество файлов/папок в Linux?

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

Моя забота — с места в карьер будет 20000 предметов, что означает примерно 60000 изображений.

Каково максимальное количество файлов и/или папок в Linux?

Каков обычный способ справиться с этой ситуацией (лучшая практика)?

Моя идея состояла в том, чтобы создать папку для каждого элемента на основе его уникального идентификатора, но тогда у меня было бы еще 20000 папок в основной папке uploads, и она будет расти бесконечно, поскольку старые элементы не будут удалены.

Спасибо за любую помощь.

ext [234] файловые системы имеют фиксированное максимальное количество индексов; для каждого файла или каталога требуется один индексный дескриптор. Вы можете увидеть текущий счетчик и пределы с помощью df -i . Например, в файловой системе ext3 объемом 15 ГБ, созданной с настройками по умолчанию:

Нет ограничений на каталоги, в частности за пределами этого; имейте в виду, что для каждого файла или каталога требуется хотя бы один блок файловой системы (обычно 4 КБ), хотя, даже если это каталог с единственным элементом в нем.

Как вы можете видеть, 80 000 инодов вряд ли будут проблемой. И с опцией dir_index (поддающейся tune2fs ) поиск в больших каталогах не слишком большой. Однако обратите внимание, что многие административные инструменты (например, ls или rm ) могут с трудом справляться с каталогами со слишком большим количеством файлов в них. Таким образом, рекомендуется разделить ваши файлы так, чтобы у вас не было более нескольких сотен тысяч позиций в любом каталоге. Легкий способ сделать это — хешировать любой идентификатор, который вы используете, и использовать первые несколько шестнадцатеричных цифр в качестве промежуточных каталогов.

Например, скажем, у вас есть элемент ID 12345, и он хеширует до ‘DEADBEEF02842. ‘ . Вы можете хранить файлы под /storage/root/d/e/12345 . Теперь вы сократили количество файлов в каждом каталоге на 1/256th.

Источник

Максимальное количество файлов/папок в Linux?

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

моя забота — сразу же будет 20000 элементов, означающих примерно 60000 изображений.

каково максимальное количество файлов и / или папок в Linux?

каков обычный способ справиться с этой ситуацией (лучшая практика)?

моя идея состояла в том, чтобы сделать папка для каждого элемента, на основе его уникального идентификатора, но тогда у меня все равно будет 20000 папок в main передает папка, и она будет расти бесконечно, поскольку старые элементы не будут удалены.

Спасибо за любую помощь.

6 ответов

ext[234] файловые системы имеют фиксированное максимальное количество индексов; для каждого файла или каталога требуется один индекс. Вы можете увидеть текущее количество и ограничения с помощью df -i . Например, в файловой системе 15GB ext3, созданной с настройками по умолчанию:

нет ограничений на каталоги, в частности, за пределами этого; имейте в виду, что каждый файл или каталог требует по крайней мере одного блока файловой системы (обычно 4KB), хотя, даже если это каталог только с одним элементом в он.

как вы можете видеть, хотя, 80,000 inodes вряд ли будет проблемой. И с dir_index вариант (enablable с tune2fs ), поиске в больших каталогах не слишком большое дело. Однако обратите внимание, что многие административные инструменты (например, ls или rm ) может иметь трудное время работы с каталогами со слишком большим количеством файлов в них. Таким образом, рекомендуется разделить ваши файлы так, чтобы у вас не было более нескольких сотен до тысячи элементов в любом каталоге. — простой способ сделать это хэш какой код вы используете, и использовать первые несколько шестнадцатеричных цифр в качестве промежуточных каталогов.

Читайте также:  Работа с active directory windows server 2016

например, скажем, у вас есть идентификатор элемента 12345, и он хэшируется до ‘DEADBEEF02842. ‘ . Вы можете хранить свои файлы в разделе /storage/root/d/e/12345 . Теперь вы сократили количество файлов в каждом каталоге на 1/256.

если файловая система сервера имеет dir_index функция включена (см. tune2fs(8) для получения подробной информации о проверке и включении функции), то вы можете разумно хранить более 100 000 файлов в каталоге до снижения производительности. ( dir_index был по умолчанию для новых файловых систем для большинства дистрибутивов в течение нескольких лет, поэтому это будет только старый файловая система, которая не имеет эту функцию по умолчанию.)

это сказало, добавив еще один уровень каталога, чтобы уменьшить количество файлов в каталоге в 16 или 256 раз, резко повысит вероятность таких вещей, как ls * Работа без перезапуска ядра maximum argv размер.

как правило, это делается примерно так:

т. е., добавляя букву или цифру к пути, на основе некоторой функции вы можете вычислить имя. (Первые два символа md5sum или sha1sum имени файла является одним из распространенных подходов, но если у вас есть уникальные идентификаторы объектов, то ‘a’+ id % 16 это достаточно простой механизм, чтобы определить, какой каталог использовать.)

60000 ничего, 20000 также. Но вы должны поставить группу этих 20000 любыми средствами, чтобы ускорить доступ к ним. Может быть, в группах по 100 или 1000, взяв номер каталога и разделив его на 100, 500, 1000, что угодно.

например, У меня есть проект, где файлы имеют номера. Я группирую их в 1000s, поэтому у меня есть

на самом деле у вас может быть жесткий предел — некоторые системы имеют 32-битные индексы, поэтому вы ограничены числом 2^32 в файловая система.

в дополнение к общим ответам (в основном «не беспокойтесь так много», и «настройте свою файловую систему», и»организуйте свой каталог с подкаталогами, содержащими несколько тысяч файлов каждый»):

Если отдельные изображения небольшие (например, менее нескольких килобайт), вместо того, чтобы помещать их в папку, вы также можете поместить их в базу данных (например, с MySQL как BLOB) или, возможно, внутри GDBM индексированный файл. Тогда каждый маленький предмет не будет потреблять inode (во многих файловых системах каждому индексу требуется хотя бы несколько килобайт). Вы также можете сделать это для некоторого порога (например, поместить изображения больше 4kbytes в отдельные файлы и меньшие в базу данных или файл GDBM). Конечно, не забудьте сделать резервную копию данных (и определить состояние резервной копии).

2014 год. Я возвращаюсь вовремя, чтобы добавить этот ответ. Много больших/маленьких файлов? Вы можете использовать Amazon S3 и другие альтернативы на основе Ceph, такие как DreamObjects, где нет ограничений каталога, о которых нужно беспокоиться.

Я надеюсь, это поможет кому-то решить из всех альтернатив.

Источник

Есть ли ограничение на количество файлов в UNIX?

Есть ли ограничение на количество файлов в UNIX в файловой системе?

3 ответа 3

Это зависит от типа файловой системы. Если вы используете ext4 с параметрами по умолчанию, то вы можете иметь максимум:

  • Всего 4 миллиарда файлов.
  • 64000 подкаталогов в одном каталоге.
  • Максимум 16 ТБ для одного файла.

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

Если вы говорите о количестве файловых дескрипторов, которые процесс может открыть одновременно, то это зависит от вашей системы. ulimit -a сообщит вам о системе Linux и, скорее всего, по умолчанию будет 1024.

Примечание: цифры взяты со страницы Википедии ext4.

Это зависит от файловой системы и контейнера, к которому вы обращаетесь — в каталоге, на томе. Пожалуйста, обратитесь к этой ссылке для получения подробной информации о файловой системе EXT3.

Максимальное количество inode (и, следовательно, максимальное количество файлов и каталогов) устанавливается при создании файловой системы. Если V — это размер тома в байтах, то число inode по умолчанию задается V/213 (или числом блоков, в зависимости от того, что меньше), а минимальное — V/223. Значение по умолчанию было сочтено достаточным для большинства приложений. Максимальное количество подкаталогов в одном каталоге равно 32000.

Подобные параметры также определены для других файловых систем.

Читайте также:  Сколько человек пользуются mac os

Если вас беспокоят ограничения, забудьте о них, используя ZFS.

Какие ограничения есть у ZFS?
Ограничения ZFS разработаны так, что они никогда не встретятся ни в одной практической операции. ZFS может хранить 16 экзабайт в каждом пуле хранения, файловой системе, файле или атрибуте файла. ZFS может хранить миллиарды имен: файлы или каталоги в каталоге, файловые системы в файловой системе или снимки файловой системы. ZFS может хранить триллионы элементов: файлы в файловой системе, файловые системы, тома или снимки в пуле.

Источник

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

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

  • Вопрос задан более трёх лет назад
  • 13794 просмотра

Если ответить коротко — зависит от ограничений файловой системы.

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

Лично я распределяю по удобству копирования и архивации, примерно по несколько сотен файлов(до тысячи) в одной папке.

# df -h
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/sdb3 12G 9,8G 760M 93% /
shrike

# tune2fs -l /dev/sdb3 | grep Inode
Inode count: 1465920

Если я правильно понимаю, то количество инодов определяется параметром -i команды mkfs, чем больше это число, тем меньше инодов создаётся на ФС.
Если создавать ФС с параметром -O largefile, это будет аналогично заданию -i 1048576, т.е. 1 инод на 1 мегабайт. А уменьшать -i можно вплоть до размера блока, который для x86(_64)-систем составляет 4Кб

$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/md1 121864192 216052 121648140 1% /
tmpfs 4119873 2 4119871 1% /dev/shm
/dev/md3 122109952 13398777 108711175 11% /u0
/dev/md4 292962304 11 292962293 1% /u1

Этот вывод какбэ намекает, что в корневой ФС — 121 млн инодов, а в /u1 и того больше.

Источник

Максимальное количество папок linux

Hi all.
Попытался найти через Google, но безуспешно.
Вопрос простой:
Какое максимальное количество файлов может быть в одной директории на ext3 для ядер
2.4.32 и 2.6.19 соответственно? Если есть лимит – можно ли его как-то менять, где и как ?

Google говорит что есть ограничение на количество директорий внутри одной директории — 32768. Про ограничение на количество файлов внутри одной директории ничего не нашёл (в одном месте как-то путано было описано, что вроде unlimited, но есть ограничение файлов на партицию).

Есть задача хранить 200 – 300 тысяч файлов, и всем было бы удобнее, если бы файлы были внутри одной директории.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Оглавление

  • Ограничение файлов в директории Linux., Nimdar, 18:42 , 09-Янв-07, (1)
    • Ограничение файлов в директории Linux., Messing, 20:13 , 09-Янв-07, (2)
      • Ограничение файлов в директории Linux., GByte, 00:14 , 10-Янв-07, (3)
  • Ограничение файлов в директории Linux., GloryS, 12:37 , 11-Янв-07, (4)
  • Ограничение файлов в директории Linux., simple_rulez, 14:53 , 11-Янв-07, (5)
  • Ограничение файлов в директории Linux., demien, 18:40 , 24-Фев-07, ( 6 )
    • Ограничение файлов в директории Linux., demien, 18:53 , 24-Фев-07, ( 7 )

Сообщения по теме [Сортировка по времени, UBB]

Сколько инодов — столько и файлов (размер игнорируем). Директория есть файл. Учите матчасть.

>Есть задача хранить 200 – 300 тысяч файлов, и всем было бы
>удобнее, если бы файлы были внутри одной директории.

Никому не удобнее и кроме того пожалейте диск(и). В десятки раз быстрее и надёжнее будет создать несколько десятков (пару сотен) директорий с тысячей-другой (десятком тысяч) файлов каждая.

1. «Ограничение файлов в директории Linux.»
Сообщение от Nimdar (ok) on 09-Янв-07, 18:42
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «Ограничение файлов в директории Linux.»
Сообщение от Messing (??) on 09-Янв-07, 20:13

>Есть задача хранить 200 – 300 тысяч файлов, и всем было бы
>удобнее, если бы файлы были внутри одной директории.

ну если человек говорит что так было бы удобней значит он знает что говорит.
ну а насчет ограничения я читал что рейзер оч. хорошо работает с кучей маленьких файлов. и быстодействие в сравнении с ext3 вырастает до 15 раз !

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. «Ограничение файлов в директории Linux.»
Сообщение от GByte (??) on 10-Янв-07, 00:14

>>Есть задача хранить 200 – 300 тысяч файлов, и всем было бы
>>удобнее, если бы файлы были внутри одной директории.
>
>ну если человек говорит что так было бы удобней значит он знает
>что говорит.
>ну а насчет ограничения я читал что рейзер оч. хорошо работает с
>кучей маленьких файлов. и быстодействие в сравнении с ext3 вырастает до
>15 раз !

Читал и на себе попробовал — вещи разные.

вообще с ФС не экспериментировал, но точно можно менять кол-во и-нодов при форматировании. — читайте маны.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. «Ограничение файлов в директории Linux.»
Сообщение от GloryS (??) on 11-Янв-07, 12:37

>Hi all.
>Попытался найти через Google, но безуспешно.
>Вопрос простой:
>Какое максимальное количество файлов может быть в одной директории на ext3 для
>ядер
>2.4.32 и 2.6.19 соответственно? Если есть лимит – можно ли его как-то
>менять, где и как ?
>
>Google говорит что есть ограничение на количество директорий внутри одной директории —
>32768. Про ограничение на количество файлов внутри одной директории ничего
>не нашёл (в одном месте как-то путано было описано, что вроде
>unlimited, но есть ограничение файлов на партицию).
>
>Есть задача хранить 200 – 300 тысяч файлов, и всем было бы
>удобнее, если бы файлы были внутри одной директории.

Как правильно сказали читайте маны. ))
То, что есть на данный момент можно глянуть через df -i (покажет кол-во inode’ов — это
и есть макс. кол-во файлов, если по размеру попадут). Увеличить кол-во inode
можно при создании ФС (см. параметр -N)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. «Ограничение файлов в директории Linux.»
Сообщение от simple_rulez on 11-Янв-07, 14:53

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6 . «Ограничение файлов в директории Linux.»
Сообщение от demien on 24-Фев-07, 18:40

>Hi all.
>Попытался найти через Google, но безуспешно.
>Вопрос простой:
>Какое максимальное количество файлов может быть в одной директории на ext3 для
>ядер
>2.4.32 и 2.6.19 соответственно? Если есть лимит – можно ли его как-то
>менять, где и как ?
>
>Google говорит что есть ограничение на количество директорий внутри одной директории —
>32768. Про ограничение на количество файлов внутри одной директории ничего
>не нашёл (в одном месте как-то путано было описано, что вроде
>unlimited, но есть ограничение файлов на партицию).
>
>Есть задача хранить 200 – 300 тысяч файлов, и всем было бы
>удобнее, если бы файлы были внутри одной директории.

Только, что столкнулся с аналогичной задачей. Под ext3 решения так и не нашел. Взял винт, создал файловую систему reiserfs, подмонтировал в каталог. Скриптом создал 200 тысяч папок — создались. Создал 200 тысяч файлов — создались. Так, что как вариант попробуй подключить винт, создай файловую систему reiserfs, подмонтируй. И все работает.

Источник

Читайте также:  Contact windows mail support
Оцените статью