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

Обновлено: 02.07.2024

При форматировании дисков вы наверняка замечали пункт «Размер единицы распределения» или «размер кластера». Этот параметр всегда задан по умолчанию, но вместе с тем есть возможность его изменить. Стоит ли это делать и за что вообще отвечает размер кластера? Давайте разбираться.

Что означает размер кластера?

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

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

Размер документа 1 кб, но поскольку размер кластера 32 кб, то и на диске файл занимает 32 кб Размер документа 1 кб, но поскольку размер кластера 32 кб, то и на диске файл занимает 32 кб

Какой размер кластера стоит использовать?

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

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

Стоит ли использовать больший размер кластера?

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

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

Заключение

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

Наш подписчик FSS провел собственное тестирование влияния размера кластера на скорость чтения. Оригинальный комментарий:

Всякий, кто форматировал диски или разделы в Windows, сталкивался с таким параметром, как размер кластера. Скорее всего, неискушенному пользователю такое название параметра ни о чем не скажет. Между тем, насколько он важен? И имеет ли смысл заострять на нём внимание при форматировании. Об этом и будет эта заметка.

Что же такое кластер? Кластер этот тот минимальный объем дискового пространства, который файловая система выделит под файл. Для того, чтобы было понятнее, разберем это на примере.

При форматировании жесткого диска, SSD-диска, флешки или раздела операционная система Windows предложит нам выбрать размер кластера.

Что такое размер кластера и на что он влияет при форматировании

Выбор размера кластера при форматировании

Итак, если мы обозначим размер кластера как 4096 байт, то даже очень маленький файл размером в 1 байт займет на диске 4096 байт. Если же размер файла окажется хотя бы 4097 байт (то есть больше одного кластера), то система выделит под него уже два кластера, а именно 8192 байта.

Логика понятна. Казалось бы, раз так, то имеет смысл выбирать самый малый размер кластера для экономии пространства на носителе информации. Однако, как часто бывает, есть и обратная сторона.

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

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

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

Кластеризация дискового пространства неизбежно ведет к потере некоторой доли пространства. Сама корпорация Microsoft при расчете потерянного пространства рекомендует формулу:

(размер кластера)/2 * (количество файлов)

В этой статье в базе знаний Microsoft можно подчерпнуть дополнительную информацию о кластерах в файловых системах NTFS, FAT и exFAT.

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

Сам по себе этот размер задаётся при уже упомянутом форматировании или создании самого раздела. Доступные размеры зависят от файловой системы ( NTFS, FAT, exFAT , если мы рассматриваем Windows) и влияют не только на количественные, но и на скоростные характеристики дисковой подсистемы.

Впрочем, давайте обо всём по порядку.

  • Вводная
  • Размер кластера в виде наглядного примера
  • Как с этим взлетать и что стоит понимать
  • Тип файловой системы
  • Размер кластера по умолчанию для NTFS
  • Размер кластера по умолчанию для FAT32
  • Размер кластера по умолчанию для FAT16
  • Размер кластера по умолчанию для exFAT
  • Послесловие

Вводная

Для начала разберемся, что есть кластер . Все файловые системы, которые используются Windows , организуют ваш жесткий диск на основе такой штуки как размер кластера (также известного как размер блока распределения).

Размер же кластера представляет собой наименьший объем дискового пространства, который можно использовать для хранения файла.

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

(размер кластера) / 2 * (количество файлов)

Размер кластера в виде наглядного примера

Возможно последнее предложение и формула несколько Вас смутили. Давайте попробуем объяснить проще и нагляднее. Наверняка, открыв свойства какой-то папки, Вы сталкивались с такой картиной:

Т.е размер папки с файлами и фактический размер занятого пространства на диске, собственно, отличаются в б о льшую или меньшую сторону. Это как раз связано с размером кластера, выбранным Вами (или системой) при форматировании/создании раздела.

Еще раз, - кластер, - это наименьший логический объем дискового пространства, который может быть выделен для хранения файла. Теперь попробуйте представить, что Ваш диск состоит из множества множества ячеек со своей нумерацией, куда можно положить файл. Наиболее наглядно это видно при дефрагментации (хотя там наиболее часто показан блок файловой системы, а не кластер, но всё же):

Размер этих ячеек и есть размер кластера. Теперь о том, как с этим взлетать.

Как с этим взлетать и что стоит понимать

Визуально Вы думаю представили, как оно выглядит. Давайте разбираться как работает.

Предположим, что размер кластера равен 4 КБ (как правило, - это значение по умолчанию, не считая самых старших версий систем). Так устроено, что файл, меньшего размера, помещенный туда всё равно будет занимать 4 КБ . Наглядный пример:

Два файла меньшего размера уже 8 Кб :

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

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

Говоря проще, отсюда стоит вынести следующее:

  • Вы выбираете средний (ни туда, ни сюда) размер кластера, если наверняка не знаете какие файлы у Вас будут храниться на диске, за всеми не уследить и вообще пытаетесь попасть в золотую середину ;
  • Вы точно знаете, что на диске будут храниться в основном мелкие файлы и выбираете наименьший возможный размер кластера;
  • Вам не важен небольшой выигрыш в производительности , ценой потери места и потому выбираете наименьший возможный размер кластера;
  • Вы точно знаете, что на диске будут храниться в основном большие файлы и выбираете наибольший доступный размер кластера;
  • Вы неиллюзорно важен выигрыш в производительности, ценой потери места и выбираете наибольший доступный размер кластера;
  • Вы адепт майкрософт_всё_знает_лучше_меня_зачем_я_читаю_эту_статью и оставляете размер по умочанию .

Но это еще не всё. Для адептов последнего пути, далее приводится набор таблиц, которые используются Miscrosoft по умолчанию, в зависимости от размера носителя, т.е это значения по умолчанию, задаваемые системой. Пользоваться ими или нет, - дело Ваше.

Тип файловой системы

Как уже говорилось, диапазон доступного размера кластера зависит от файловой системы. Узнать её можно, нажав правой кнопкой мыши на диске в проводнике (" Мой компьютер "), и выбрав пункт " Свойства ".

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

Чтобы узнать текущий размер файла, запустите командную строку ("поиск - cmd " или " WIN+R " на клавиатуре - cmd ) и введите:

fsutil fsinfo ntfsinfo X:

Результат не заставит себя ждать (не кликабельно):

Размер кластера по умолчанию для NTFS

В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:

Размер тома Windows NT 3.51 Windows NT 4.0 Windows 10, Windows 8, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000
7 МБ - 512 МБ 512 байт 4 КБ 4 КБ
>512 МБ - 1 ГБ 1 КБ 4 КБ 4 КБ
1 GB - 2 GB 2 КБ 4 КБ 4 КБ
2 ГБ - 2 ТБ 4 КБ 4 КБ 4 КБ
2 ТБ - 16 ТБ Не поддерживается* Не поддерживается* 4 КБ
16 ТБ - 32 ТБ Не поддерживается* Не поддерживается* 8 KB
32 ТБ - 64 ТБ Не поддерживается* Не поддерживается* 16 KB
64 TB - 128 TB Не поддерживается* Не поддерживается* 32 КБ
128 TB - 256 TB Не поддерживается* Не поддерживается* 64 КБ
> 256 ТБ Не поддерживается Не поддерживается Не поддерживается

Звездочка (*) означает, что она не поддерживается из-за ограничений основной загрузочной записи ( MBR ).

Размер кластера по умолчанию для FAT32

В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:

Размер тома Windows NT 3.51 Windows NT 4.0 Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000
7 МБ - 16 МБ Не поддерживается Не поддерживается Не поддерживается
16 МБ - 32 МБ 512 байт 512 байт Не поддерживается
32 МБ - 64 МБ 512 байт 512 байт 512 байт
64 МБ - 128 МБ 1 КБ 1 КБ 1 КБ
128 МБ - 256 МБ 2 КБ 2 КБ 2 КБ
256 МБ - 8 ГБ 4 КБ 4 КБ 4 КБ
8 ГБ - 16 ГБ 8 KB 8 KB 8 KB
16 ГБ - 32 ГБ 16 KB 16 KB 16 KB
32 ГБ - 2 TБ 32 КБ Не поддерживается Не поддерживается
> 2 ТБ Не поддерживается Не поддерживается Не поддерживается

Размер кластера по умолчанию для FAT16

В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:

Размер тома Windows NT 3.51 Windows NT 4.0 Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000
7 МБ - 8 МБ Не поддерживается Не поддерживается Не поддерживается
8 МБ - 32 МБ 512 байт 512 байт 512 байт
32 МБ -64 МБ 1 КБ 1 КБ 1 КБ
64 МБ - 128 МБ 2 КБ 2 КБ 2 КБ
128 МБ - 256 МБ 4 КБ 4 КБ 4 КБ
256 МБ - 512 МБ 8 KB 8 KB 8 KB
512 МБ -1 ГБ 16 KB 16 KB 16 KB
1 ГБ - 2 ГБ 32 КБ 32 КБ 32 КБ
2 ГБ - 4 ГБ 64 КБ 64 КБ 64 КБ
4 ГБ - 8 ГБ Не поддерживается 128 КБ * Не поддерживается
8 ГБ - 16 ГБ Не поддерживается 256 KB * Не поддерживается
> 16 ГБ Не поддерживается Не поддерживается Не поддерживается

Звездочка (*) означает, что она доступна только на носителе с размером сектора более 512 байт.

Размер кластера по умолчанию для exFAT

В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:

Размер тома Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP
7 МБ - 256 МБ 4 КБ
256 МБ - 32 ГБ 32 КБ
32 ГБ - 256 ТБ 128 КБ
> 256 ТБ Не поддерживается

Ну и напоследок послесловие, которое немного резюмирует всё это дело. Еще раз, да.

Послесловие

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

Что делать? Как и в случае с файлом подкачки, выбирать решение под свои цели, задачи и железо, либо попросту не заморачиваться, но тогда решительно не понятно зачем Вы это читали :)

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

Белов Андрей (Sonikelf) Заметки Сис.Админа [Sonikelf's Project's] Космодамианская наб., 32-34 Россия, Москва (916) 174-8226

Наверное, вам уже не раз приходилось видеть такую картину — открываете вы свойства какой-нибудь папки с файлами и видите, что размер оной и размер занимающих на диске хранящихся в ней файлов отличается. Разница обычно невелика, но всё-таки как такое возможно, не «происки» ли это Windows, как, к примеру, в случае с жесткими ссылками, выдаваемые Проводником за реальные файлы с вполне реальным размером?

Нет, на этот раз Windows ничего не скрывает, в действительности соответствует как размер папки с файлами, так и объем занимаемого ею на диске пространства. Всё дело тут в кластерах, а вернее в их размере.

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

А теперь о том, какое это имеет отношение к занимаемому на диске файлами месту.

Дело в том, что кластер априори не может быть заполнен данными наполовину, он либо занят, либо свободен. Допустим, размер кластера в вашем разделе составляет 64 Кб. Если вы запишите в него файлик размером 2 Кб, то на диске он займет всё равно 64 Кб. Взгляните на первый скриншот.

Свойства файла

Текстовый файл весом 2,81 Кб занимает на диске 2 Мб, а всё потому, что именно такой размер имеет кластер. Понятно, что использовать такой размера кластера нерационально, поскольку свободное место на диске в этом случае быстро заполнится, впрочем, не всё так однозначно.

Примечание: узнать общее количество кластеров на диске можно командой fsutil fsinfo ntfsinfo X:, где X – буква тома. Данные выводятся в шестнадцатеричной системе счисления.

PowerShell - fsutil

Использование кластеров маленького размера тоже имеет свои недостатки.

Разделение по небольшим кластерам записываемых на HDD -диск файлов приводит к повышенной их фрагментации, а значит и снижению скорости доступа. В общем, всё зависит от того, файлы какого размера вы собираетесь хранить на диске. Если это гигабайтные фильмы, то можете смело форматировать раздел с размером кластера хоть в 2 Мб, если же это текстовые документы, то разумнее будет выставить кластер поменьше, размером, близким к размеру среднего в коллекции документа. Так вы и место пустовать не будет, и с производительностью всё будет хорошо.

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

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

Файловая система и ее виды

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

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

На сегодняшний день наиболее распространены следующие системы:

  • FAT-32. Использовалась в ОС Windows вплоть до 7 версии. Простая и надежная система. Не поддерживает запись файлов более 4 Гб. Используется во флеш-накопителях небольшой емкости.
  • NTFS. Заменила FAT-32 в ОС Windows начиная с 7 версии. Устанавливается в этих ОС по умолчанию. Работает с файлами более 4 Гб. Допускает шифрование информации и разграничение прав доступа к файлам.
  • ExFAT. Разработана как расширение FAT-32. Снято ограничение на максимальную длину файла в 4 Гб. Введена возможность шифрования и разграничения прав доступа. Относительно новая система. Используется во флеш-накопителях большой емкости. Читается не всеми ОС. Не работает со старыми устройствами.

Как выполнить форматирование

Размещение информации на жестком диске

Жесткий диск компьютера физически представляет из себя металлический диск, на поверхность которого нанесен магнитный слой. Диск вращается с постоянной скоростью, а над его поверхностью, не касаясь ее, скользят магнитные головки. При записи магнитные головки оставляют на поверхности намагниченный след — дорожку. Дорожка делится на сектора, в которые, собственно, и записывается информация. В стандартном секторе 512 байт информации. Головки могут двигаться от края диска к центру, формируя на его поверхности множество дорожек. Номер дорожки и номер сектора на ней однозначно определяют положение информации на диске.

Что такое кластер

Итак, минимальный фрагмент информации на диске — это сектор размером 512 байт.

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

Величина кластера может меняться в зависимости от того, сколько секторов объединяется в кластер. Минимальный размер кластера — 512 байт, максимальный — 32 МБ.

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

Понятие кластера

На что влияет размер кластера

С точки зрения операционной системы диск представляет собой массив минимальных блоков информации — кластеров.

При записи файла он всегда занимает на диске определенное число блоков. Например, при записи файла в 12 байт он занимает на диске минимальное возможное пространство в 1 блок. При величине блока в 512 байт реально используется 12 байт, а остальные 500 теряются бесполезно.

Таким образом, чем меньше блок, тем более экономно расходуется дисковое пространство.

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

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

Оптимальная величина кластера — это компромисс между скоростью и экономией дискового пространства.

Размер кластера в разных файловых системах

Для каждой системы определена величина кластера по умолчанию.

Этот размер считается оптимальным и установится автоматически, если при форматировании носителя не установить другой размер принудительно.

Для наиболее популярных систем эти значения будут равны:

  • FAT 32. Величина зависит от размера тома, при размере тома от 8 до 16 ГБ он равен 4 КБ. При размере тома от 16 до 32 ГБ кластер по умолчанию равен 16 КБ.
  • NTFS - по умолчанию 4 КБ.
  • ExFAT - 4,32 или 128 КБ в зависимости от размера тома.

Значение по умолчанию имеет смысл использовать при форматировании диска в подавляющем большинстве случаев.

Что такое форматирование

Форматирование носителя — это его разметка для подготовки к использованию для чтения или записи информации.

Различают низкоуровневое и высокоуровневое форматирование.

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

Различают два вида форматирования: быстрое и полное.

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

Изменить размер кластера

Файловая система для флешки

Флеш-накопители на заводе по умолчанию форматируются под FAT-32.

Это наиболее универсальная на сегодняшний день система, с которой работают практически все устройства: как старые, так и новые.

Единственное практически важное ограничение — размер файла не может быть больше 4 Гб.

Если есть необходимость записи файлов более 4 Гб, например, игр или фильмов, можно отформатировать под NTFS или под ExFAT. Но будьте готовы к тому, что более старые устройства не смогут работать с этими системами.

Размер кластера при форматировании флешки

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

Видео

Из этого видео вы узнаете, как самостоятельно правильно отформатировать флешку.

Читайте также: