- Максимальное количество файлов в папке Linux и Windows
- 2 ответа 2
- Какое максимальное количество папок разрешено в папке в Linux?
- 4 ответа 4
- Linux: большое количество файлов в папке — это сколько?
- Maximum number of files/directories on Linux?
- 6 Answers 6
- Какое максимально число папок можно создавать в папке?
Максимальное количество файлов в папке Linux и Windows
Вопрос не из простых Сколько можно сохранить картинок в папке в Linux т.е. допустим у меня 9 000 000 000 000 000 000 картинок я создаю древовидную иерархию из папок у меня допустим 5 ветвей, ограничение на число файлов и папок в ветви 6179 тогда общее количество возможно загружаемых файлов равно 6179 в 5 степени и равно 9 007 224 264 576 426 899 т.е. BIGINT (почти из за округления) Теперь сам вопрос Как определить максимальное возможное число файлов в папке или папок в папке в Linux и тоже самое в windows для сравнения? Моя иерархия будет нормально работать? Что думаете по этому поводу?
К чему вопрос вообще? причем тут SSH и SERVER? Почему сравниваются window и linux? Что было прочитано по поводу файловых систем?
— Мне почему-то кажется, что, если у вас 9 000 000 000 000 000 000 картинок и на сервере хватает места, чтобы хранить их, то нужно запихнуть их все в 1 pack-файл, построить индекс и добавлять новые элементы с конца. — Если вам при этом нужна возможность удаления существующих элементов, то осуществляйте отложенное удаление. Например, раз в месяц вы находите все картинки, которые точно можно удалить и атомарно перезаписываете весь pack-файл и индекс, удалив их. — И да, используйте любое готовое решение для этого, например, GridFS.
Теоретически ему нужно просто перейти на LVM, размещенную на нормальной СХД, но на практике, видимо ТС не может себе это позволить.
2 ответа 2
В FAT32 максимальное количество файлов на логическом диске 4,194,304.
В NTFS максимальное количество файлов на логическом диске 4,294,967,295.
В ext4 максимальное количество файлов на логическом диске до 4,294,967,295 (указывается при создании ФС).
8 миллионов терабайт (это 8 эксабайт), если только один файл — один байт.
Согласно википедии, общий объём цифровой информации, имеющейся на земном шаре в 2006 году, составил 161 эксабайт),
Но вот только большинство файловых систем выделяет как минимум 4 килобайта на файл, а это 32 тысячи эксабайт — немножко больше, чем существует во всем интернете :). Поэтому — «нет, не будет такая система работать».
С другой стороны, в линуксе (да и в видне) все сильно зависит от файловой системы, но по своему опыту могу сказать, что после 10000 файлов к каталоге независимо от файловой системы, начинаются тормоза.
Но в линуксе есть ещё такое понятие как inode (формально — номерки к файлам). Если они закончатся, то больше файлов не запишете, даже если ещё есть свободное место.
Вывод. Спуститесь с небес. Не будет у Вас сколько картинок. А если и будет — на одном компе их не сохранить (ну по крайней мере в следующие лет 5). Вон даже у инстаграмма статистика говорит о
В июле 2011 года было достигнуто число в 100 миллионов загруженных в сервис Instagram фотографий, а к августу таких фотографий стало уже 150 миллионов.
Какое максимальное количество папок разрешено в папке в Linux?
Использование Redhat, если это имеет значение. Есть ли ограничение по умолчанию? Можно ли это изменить? Если нет, есть ли обходные пути для увеличения количества папок, разрешенных в каталоге?
4 ответа 4
В ext2 — 32 768, согласно Википедии — http://en.wikipedia.org/wiki/Ext2fs#File_system_limits. Зависит от того, какую файловую систему вы используете.
Вы можете рассмотреть альтернативы тому, что вы пытаетесь сделать. Даже если вы не превысите ограничение файловой системы (например, 32 КБ для ext2), хранение десятков тысяч файлов в одном каталоге может быть по меньшей мере громоздким.
Возможно, вы пытаетесь использовать файловую систему для чего-то более подходящего для базы данных. Подумайте о хранении ваших данных в PostgreSQL, MySQL или даже в базе данных sqlite. Существует не так много файловых систем, которые хорошо справляются с огромным количеством файлов — перемещение или резервное копирование ваших данных будет медленным.
Если вам действительно нужно хранить много файлов, рассмотрите альтернативные структуры каталогов. Например, вы можете разделить файлы по алфавиту, например:
a/aaron.dat a/alex.dat a/alan.dat b/bill.dat b/brian.dat
Этот подход может масштабироваться за счет увеличения глубины вашего разделения, например:
a/a/aaron.dat a/l/alex.dat a/l/alan.dat
Или, если вы вводите ежедневные файлы журнала или получаете ежедневные поставки, вы можете разделить их по дате, например:
2009-10-04/logfile-01.txt 2009-10-05/logfile-01.txt 2009-10-05/logfile-02.txt
В этом конкретном случае вы, вероятно, также захотите создать задачу для упаковки старых журналов в сжатые архивы, чтобы уменьшить количество файлов.
Linux: большое количество файлов в папке — это сколько?
На хостинге меня пугали, что больше 3000 файлов в одной папке держать крайне не желательно, замедляется производительность доступа к этим файлам. Погуглил, люди сотнями тысяч хранят, вроде.
По собственному опыту:
10 тысяч — вполне нормальное число.
50 тысяч и больше — стоит подумать о подпапках и иерархичности папок / документов.
Если ответить коротко — зависит от ограничений файловой системы.
Это, пожалуй, индивидуальная мера для выбранной системы, на каком количестве файлов начнутся тормоза.
На практике, чем больше файлов в папке — тем медленнее листинг. Индивидуальный доступ к одному файлу из 30 тыс. может не отличаться по скорости(если в директорию никогда не заходить через терминал), но листинг может занять несколько минут и загрузить процессор.
Лично я распределяю по удобству копирования и архивации, примерно по несколько сотен файлов(до тысячи) в одной папке.
Под Линуксом используются разные файловые системы и у них разные ограничения.
Наиболее распространены ext3 и ext4, но не так редко бывает RaserFS, XFS и пр.
Например, в ext3 выделяется 655360 inodes на раздел и когда они кончаются, записать ничего нельзя.
Да? А как тогда объяснить это? 😉
Вот маленькая корневая система на домашнем компьютере:
shrike ~ # 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 и того больше.
Maximum number of files/directories on Linux?
My idea was to make a directory for each item, based on its unique ID, but then I’d still have 20000 directories in a main uploads directory, and it will grow indefinitely as old items won’t be removed.
6 Answers 6
ext[234] filesystems have a fixed maximum number of inodes; every file or directory requires one inode. You can see the current count and limits with df -i . For example, on a 15GB ext3 filesystem, created with the default settings:
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda 1933312 134815 1798497 7% /
There’s no limit on directories in particular beyond this; keep in mind that every file or directory requires at least one filesystem block (typically 4KB), though, even if it’s a directory with only a single item in it.
As you can see, though, 80,000 inodes is unlikely to be a problem. And with the dir_index option (enablable with tune2fs ), lookups in large directories aren’t too much of a big deal. However, note that many administrative tools (such as ls or rm ) can have a hard time dealing with directories with too many files in them. As such, it’s recommended to split your files up so that you don’t have more than a few hundred to a thousand items in any given directory. An easy way to do this is to hash whatever ID you’re using, and use the first few hex digits as intermediate directories.
For example, say you have item ID 12345, and it hashes to ‘DEADBEEF02842. ‘ . You might store your files under /storage/root/d/e/12345 . You’ve now cut the number of files in each directory by 1/256th.
Какое максимально число папок можно создавать в папке?
Про файлы в Linux известно что многл файлов в папке лучше не создавать.
А как обстоят дела с папками?
Если мы говори о ext4, то максимальное кол-во подпапок 64,000 .
Sub directory scalability
Right now the maximum possible number of sub directories contained in a single directory in Ext3 is 32000. Ext4 doubles that limit and allows 64000 sub directories.
Только не 64000, а 65000. И есть такая опция (вроде как даже включена по умолчанию) — dir_nlink, которая вообще убирает ограничение: man7.org/linux/man-pages/man5/ext4.5.html
@Power вопрос сколько именно спорный. Я думаю все зависит от настроек данного дистрибутива. Так как быстрый поиск показал и такие вариации. Ext4 breaks that limit and allows an unlimited number of sub directories. Но я буду с вашего позволения придерживаться официального сайта.
@CyberUserRus от диста парой то же зависит. Кто то добавляет в алиасы rm который всегда все будет спрашивать. В Centos и Debian по разному делается проверка жестких дисков И так далее .Можем запустить тест и посмотреть как оно на самом деле. mkdir test && cd test и запустим цикл for i in ; do mkdir $i ; done .
$ time seq 500000 | xargs touch real 0m9.208s # echo 3> /proc/sys/vm/drop_caches $ time ls -U | wc -l 500000 real 0m0.393s $ time ls | wc -l 500000 real 0m3.149s
Далее уже только проблемы криворуких разработчиков файловых менеджеров, которые пытаются полмиллиона файлов сразу считать в память, отсортировать и запросить mime-тип для каждого. А файловая система их переваривает спокойно.
Да, и это на машине из прошлого века. На core i7 будет раза в 2 быстрее.