4

Я работаю над архивным проектом, и в настоящее время я храню 514600 изображений (от 200 КБ до 2 МБ) на моем накопителе NAS объемом 4 ТБ. Сам диск отформатирован как ext4, и я пишу файлы по сети через cifs/smb.

Есть ли последствия хранения такого огромного количества файлов? Будет ли файловая система жертвой фрагментации?

3 ответа3

4

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

Операции ввода-вывода для многих небольших файлов по сравнению с несколькими большими файлами намного медленнее из-за всех издержек файловой системы (и времени сканирования / поиска), поэтому, если вы считаете, что производительность снижается, тогда да. это действительно зависит больше от того, получаете ли вы доступ к 5000 из них одновременно или только к нескольким одновременно.

Ext4, в частности, не требует дефрагментации так же, как файловые системы Windows, из-за того, как он выделяет пространство для файлов, поэтому, если ваш раздел не заполнен на 90%, я бы об этом не беспокоился.

1

Есть ли последствия хранения такого огромного количества файлов?

Я добавлю, что вы должны следить за максимальным количеством файлов, которые может обработать ваша файловая система. Файлы (на ext4, которые вы используете) используют inode. Таблица inode статически выделяется при создании файловой системы, и единственный способ увеличить ее - воссоздать файловую систему.

Вы можете проверить текущие используемые inode / свободные номера с помощью df -i или tune2fs -l /path/to/device

Значения по умолчанию должны быть проблемой только при хранении очень маленьких файлов.

0

Скорость доступа значительно снижается. Это обычная проблема в проектах Java, где у вас есть тонны относительно небольших файлов. Их эффективнее хранить в одном архиве, доступ к ним быстрее, несмотря на то, что они должны быть распакованы.

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

Вы работаете над архивным проектом, поэтому вам, вероятно, следует использовать ZIP или TAR/GZIP. Если ваши файлы уже упакованы, вы можете использовать просто TAR, чтобы соединить их в один больший файл. Найдите некоторую разумную "единицу упаковки", чтобы вы могли легко найти все ваши файлы позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .