Если размер кластера 512 байт, а размер файла 816 байт, файл займет место на диске

Обновлено: 03.07.2024

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

Размер логического блока

Минимум свободного места

Количество файлов

Размер логического блока

Размер логического блока — это размер блоков, которые ядро ​​UNIX использует для чтения или записи файлов. Размер логического блока обычно отличается от размера физического блока. Размер физического блока обычно составляет 512 байт, что является размером наименьшего блока, который контроллер диска может читать или записывать.

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

По умолчанию размер логического блока составляет 8192 байта (8 КБ) для файловых систем UFS. Файловая система UFS поддерживает блоки размером 4096 или 8192 байта (4 или 8 Кбайт). Рекомендуемый размер логического блока – 8 Кбайт.

Только SPARC –

На платформе sun4u можно указать только размер блока 8192 байта.

Как правило, для повышения эффективности используйте больший размер логического блока для файловых систем, в которых большинство файлов очень большие. Используйте меньший размер логического блока для файловых систем, в которых большинство файлов очень маленькие. Вы можете использовать команду quot -c file-system в файловой системе, чтобы отобразить полный отчет о распределении файлов по размеру блока.

Размер фрагмента

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

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

Вы определяете размер фрагмента при создании файловой системы UFS. Размер фрагмента по умолчанию составляет 1 Кбайт. Каждый блок может быть разделен на 1, 2, 4 или 8 фрагментов, в результате чего размер фрагмента может варьироваться от 8192 байт до 512 байт (только для файловых систем размером 4 Кбайт). Нижняя граница фактически привязана к размеру сектора диска, обычно 512 байт.

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

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

Минимум свободного места

Минимальное свободное пространство – это процент от общего дискового пространства, который сохраняется в резерве при создании файловой системы. Резерв по умолчанию равен ((64 МБ/размер раздела) * 100), округлен до ближайшего целого числа и ограничен от 1 до 10 процентов включительно.

Свободное пространство важно, поскольку доступ к файлам становится все менее и менее эффективным по мере заполнения файловой системы. Пока существует достаточный объем свободного места, файловые системы UFS работают эффективно. Когда файловая система заполняется, используя доступное пространство пользователя, только root может получить доступ к зарезервированному свободному пространству.

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

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

Задержка вращения

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

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

Чтобы позиционировать файловые блоки так, чтобы они были «правильными при ротации», процедуры выделения должны знать, насколько быстро ЦП может обслуживать передачи и сколько времени требуется диску, чтобы пропустить блок. Используя параметры команды mkfs, вы можете указать скорость вращения диска и количество дисковых блоков (секторов) на дорожке. Подпрограммы распределения используют эту информацию, чтобы вычислить, сколько миллисекунд необходимо, чтобы пропустить блок диска. Затем, используя ожидаемое время передачи (задержку вращения), процедуры распределения могут позиционировать или размещать блоки так, чтобы следующий блок как раз попадал под головку диска, когда система готова прочитать блок.

Вам не нужно указывать задержку вращения (опция -d для newfs) для некоторых устройств.

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

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

Тип оптимизации

Параметр типа оптимизации имеет значение пространство или время.

Пространство — при выборе оптимизации пространства блоки диска выделяются для минимизации фрагментации и оптимизации использования диска.

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

Вы можете изменить значение параметра типа оптимизации для существующей файловой системы с помощью команды tunefs.

Для получения дополнительной информации см. Tunes(1M).

Количество файлов

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

Количество байтов на индексный дескриптор по умолчанию составляет 2048 байт (2 КБ), если размер файловой системы меньше одного гигабайта. Если файловая система больше одного гигабайта, используется следующая формула:

В этой статье обсуждается, как проверить выделение дискового пространства в файловой системе NTFS, чтобы обнаружить проблемные файлы и папки или найти повреждение тома на компьютерах под управлением Microsoft Windows Server 2003.

Применимо к: Windows Server 2003
Исходный номер базы знаний: 814594

Обзор

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

Распределение дискового пространства для тома NTFS может оказаться неправильным по любой из следующих причин:

  • Размер кластера тома NTFS слишком велик для хранящихся там файлов среднего размера.
  • Атрибуты файлов или разрешения NTFS не позволяют проводнику Windows или командной строке Windows отображать или получать доступ к файлам или папкам.
  • Путь к папке превышает 255 символов.
  • Папки или файлы содержат недопустимые или зарезервированные имена файлов.
  • Метафайлы NTFS (такие как главная таблица файлов) увеличились, и их нельзя отменить.
  • Файлы или папки содержат альтернативные потоки данных.
  • Повреждение файловой системы NTFS приводит к тому, что свободное пространство отображается как используемое.
  • Другие функции NTFS могут вызвать путаницу при размещении файлов.

Следующая информация может помочь вам оптимизировать, восстановить или лучше понять, как ваши тома NTFS используют дисковое пространство.

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

Только файлы и папки, содержащие внутренние метафайлы NTFS, такие как основная таблица файлов (MFT), индексы папок и другие, могут занимать место на диске. Эти файлы и папки потребляют все выделенное файловое пространство, используя несколько кластеров. Кластер — это совокупность смежных секторов.Размер кластера определяется размером раздела при форматировании тома.

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

Чтобы определить текущий размер кластера и статистику тома, запустите команду chkdsk только для чтения из командной строки. Для этого выполните следующие действия:

Нажмите "Пуск", выберите "Выполнить", введите cmd и нажмите "ОК".

В командной строке введите команду: chkdsk d: .

Где d: буква диска, который вы хотите проверить.

Нажмите "ОК".

Просмотрите результат. Например:

4096543 КБ всего места на диске. /a переключатель, чтобы указать соответствующее распределение. Например: формат D: /a:2048 (в этом примере используется размер кластера 2 КБ).

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

Атрибуты файла или разрешения NTFS

Проводник Windows и команда списка каталогов dir /a /s отображают общую статистику файлов и папок только для тех файлов и папок, на доступ к которым у вас есть права доступа. По умолчанию скрытые файлы Files и защищенные системные файлы исключаются. Такое поведение может привести к тому, что Проводник Windows или команда dir будут отображать неточные общие данные о файлах и папках и статистику о размерах.

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

  1. Нажмите «Пуск», выберите «Мой компьютер», а затем дважды щелкните букву диска (например, D) тома. Это открывает том и отображает папки и файлы, содержащиеся в корневом каталоге.
  2. В меню "Инструменты" нажмите "Параметры папки", а затем перейдите на вкладку "Вид".
  3. Установите флажок "Показать скрытые файлы и папки", а затем снимите флажок "Скрывать защищенные системные файлы".
  4. Нажмите «Да», когда получите предупреждающее сообщение, а затем нажмите кнопку «Применить». Это изменение позволяет Проводнику Windows и команде dir /a /s суммировать все файлы и папки, содержащиеся в томе, к которым у пользователя есть права доступа.

Чтобы определить папки и файлы, к которым у вас нет доступа, выполните следующие действия:

В командной строке создайте текстовый файл из выходных данных команды dir /a /s.

Например: в командной строке введите следующую команду: dir d: /a /s >c:\d-dir.txt .

Запустите мастер резервного копирования или восстановления.

Нажмите «Параметры» в меню «Инструменты», перейдите на вкладку «Журнал резервного копирования», нажмите «Подробно» и нажмите «ОК».

В утилите резервного копирования перейдите на вкладку «Резервное копирование», затем установите флажок для всего затронутого тома (например, D:), а затем нажмите «Начать резервное копирование».

После завершения резервного копирования откройте отчет о резервном копировании и сравните папку для папки выходных данных журнала NTBackup с выходными данными d-dir.txt, сохраненными на шаге 1.

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

После того, как вы найдете файлы, к которым у вас нет доступа, вы можете добавить или изменить разрешения с помощью вкладки "Безопасность" во время просмотра свойств файла или папки в проводнике Windows. По умолчанию вы не можете получить доступ к папке System Volume Information. Вы должны добавить правильные разрешения, чтобы включить папку в команду dir /a /s.

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

D:\имя_папки\ недоступен

Доступ запрещен

Если у вас есть такие папки, обратитесь за дополнительной помощью в службу поддержки продуктов Microsoft.

Недопустимые имена файлов

Папки или файлы, которые содержат недопустимые или зарезервированные имена файлов, также могут быть исключены из статистики файлов и папок. Папки или файлы, содержащие начальные или конечные пробелы, допустимы в NTFS, но недопустимы с точки зрения подсистемы Win32. Поэтому ни проводник Windows, ни командная строка не могут с ними надежно работать.

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

Ошибка переименования файла или папки

Невозможно переименовать файл: невозможно прочитать исходный файл или диск.

Ошибка удаления файла или папки

Невозможно удалить файл: невозможно прочитать исходный файл или диск.

Если у вас есть папки или файлы, которые вы не можете удалить или переименовать, обратитесь в службу поддержки продуктов Microsoft.

Расширение главной таблицы файлов NTFS (MFT)

При создании и форматировании тома NTFS создаются метафайлы NTFS. Один из этих метафайлов называется главной таблицей файлов (MFT). При создании он небольшой (примерно 16 КБ), но увеличивается по мере создания на томе файлов и папок. Когда файл создается, он вводится в MFT как сегмент записи файла (FRS). FRS всегда составляет 1024 байта (1 КБ). По мере добавления файлов в том MFT увеличивается. Однако при удалении файлов связанные FRS помечаются как свободные для повторного использования, но общее количество FRS и соответствующее распределение MFT остаются. Вот почему вы не восстанавливаете пространство, используемое MFT, после удаления большого количества файлов, .

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

Фрагментация основной таблицы файлов (MFT)
Общий размер MFT = 26 203 КБ
Количество записей MFT = 21 444
Процент использования MFT = 81 %
Общее количество фрагментов MFT = 4

Однако для получения более полной информации о том, сколько места (накладных расходов) использует вся NTFS, запустите команду chkdsk.exe, а затем просмотрите вывод для следующей строки:

В настоящее время только сторонние программы дефрагментации объединяют неиспользуемые записи MFT FRS и освобождают неиспользуемое пространство, выделенное MFT.

Альтернативные потоки данных

NTFS позволяет файлам и папкам содержать альтернативные потоки данных. С помощью этой функции вы можете связать несколько распределений данных с одним файлом или папкой. Использование альтернативных потоков данных для файлов и папок имеет следующие ограничения:

  • Проводник Windows и команда dir не сообщают данные в альтернативных потоках данных как часть статистики размера файла или объема. Вместо этого они показывают только общее количество байтов для основного потока данных.
  • Выходные данные chkdsk точно сообщают о пространстве, занимаемом файлами данных пользователя, включая альтернативные потоки данных.
  • Дисковые квоты точно отслеживают и сообщают обо всех выделениях потока данных, которые являются частью файлов данных пользователя.
  • NTBackup записывает количество резервных копий в байтах в отчете журнала резервного копирования. Однако он не показывает, какие файлы содержат альтернативные потоки данных. Также не отображаются точные размеры файлов, содержащих данные в альтернативных потоках.

Повреждение файловой системы NTFS

В редких случаях метафайлы NTFS $MFT или $BITMAP могут быть повреждены, что приведет к потере места на диске. Вы можете определить и устранить эту проблему, выполнив команду chkdsk /f для тома. Ближе к концу chkdsk вы получите следующее сообщение, если вам необходимо настроить $BITMAP: исправление ошибок в атрибуте BITMAP таблицы основных файлов (MFT). CHKDSK обнаружил свободное пространство, помеченное как выделенное в растровом изображении тома. Windows внесла исправления в файловую систему.

Другие функции NTFS, которые могут вызвать путаницу при размещении файлов

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

Жесткая ссылка – это запись в каталоге для файла независимо от того, где на этом томе находятся данные файла. Каждый файл имеет хотя бы одну жесткую ссылку. В томах NTFS каждый файл может иметь несколько жестких ссылок, поэтому один файл может находиться во многих папках (или даже в одной и той же папке с разными именами). Поскольку все ссылки относятся к одному и тому же файлу, программы могут открыть любую из ссылок и изменить файл. Файл удаляется из файловой системы только после удаления всех ссылок на него. После создания жесткой ссылки программы могут использовать ее как любое другое имя файла.

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

Точки подключения тома и точки пересечения каталогов позволяют пустой папке на томе NTFS указывать на корень или подпапку на другом томе. Проводник Windows и команда dir /s следуют за точкой повторной обработки, подсчитывают все файлы и папки на целевом томе, а затем включают их в статистику основного тома. Это может ввести вас в заблуждение, полагая, что на хост-томе используется больше места, чем используется на самом деле.

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

При создании нового раздела NTFS предлагается выбрать размер кластера. Размер по умолчанию — 4k, но можно выбрать и меньшие размеры. 512 байт — это наименьший размер.

Меньший размер приводит к уменьшению неиспользуемого пространства. Каждый файл занимает 1 или более кластеров в зависимости от размера файла. Если размер файла можно разделить на размер кластера, то по умолчанию пространство не тратится. В противном случае только некоторая часть последнего кластера будет хранить данные файлов, а оставшееся пространство будет потрачено впустую. В среднем это около половины размера кластера на файл. Учитывая, что в типичном разделе хранятся десятки тысяч файлов, 265 файлов вместо 2 КБ, мне кажется, это очень много.

Я всегда выбираю 512 байт, чтобы уменьшить объем неиспользуемого пространства, но я считаю, что использование небольших кластеров может иметь некоторые негативные последствия. В противном случае по умолчанию будет использоваться 512 байт. Что это за недостатки?

8 ответов 8

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

Дополнительным моментом является то, что в NTFS зарезервировано ограниченное количество места для данных каталога. С 512 кластерами по сравнению с 4 КБ вам может понадобиться в 8 раз больше записей для отслеживания больших файлов, которые увеличиваются небольшими шагами. При работе с дисками объемом 1 ТБ и более и растущими файлами (журналы, базы данных) вы можете исчерпать этот ресурс и не сможете создавать новые файлы! Мне пришлось переформатировать раздел размером 4 ТБ, поскольку обычные дефрагментаторы не могут исправить проблемы с метаданными NTFS.

Файловая система NTFS основана на экстенте (например, xfs, ext4 и другие на стороне *nix), поэтому замедление работы файловых систем, не основанных на экстенте (например, fat, ext3), снижается.

Однако накладные расходы все еще остаются, и они начинают мешать фрагментации. Windows УЖАСНО относится к фрагментации, попробуйте запустить дефрагментатор, чтобы увидеть, как даже последовательно записанные файлы (например, из установки программы) могут оказаться в более чем 30 фрагментах.

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

Одна из причин выбрать размер сектора 512 байт – это если вы планируете использовать Microsoft Windows Backup на сервере. Удивительно, если вы используете Windows 2008 (я не знаю, было ли это исправлено в Windows 2012 или более поздних версиях), но резервное копирование не будет выполнено, если вы используете размер сектора по умолчанию 4 КБ на стандартном внешнем жестком диске USB! Недавно я купил новый диск Seagate после разговора со службой технической поддержки Seagate, чтобы подтвердить, что это возможно, и я могу переформатировать размер сектора 4 КБ обратно в 512 байт, и моя резервная копия сработала. Странно, что ни сайт поддержки Seagate, ни Microsoft не указывают на это.

Предыдущие внешние диски не позволяют переформатировать диск с размером сектора 512 байт; минимум 4k.

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

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

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

Согласно руководству MySQL, при использовании mysql с движком innodb и сжатым форматом строки в Windows рекомендуется использовать размер кластера менее 4 КБ, чтобы вообще использовать преимущества сжатого формата строки:

Размер кластера NTFS по умолчанию составляет 4 КБ, для которого размер единицы сжатия составляет 64 КБ. Это означает, что сжатие страниц не имеет преимуществ для готовой конфигурации Windows NTFS, поскольку максимальный размер innodb_page_size также составляет 64 КБ. Чтобы сжатие страниц работало в Windows, файловая система должна быть создана с размером кластера меньше 4 КБ, а innodb_page_size должен быть как минимум в два раза больше размера единицы сжатия. Например, чтобы сжатие страниц работало в Windows, вы можете создать файловую систему с размером кластера 512 байт (который имеет единицу сжатия 8 КБ) и инициализировать InnoDB со значением innodb_page_size 16 КБ или больше.

< /цитата>

В этом решении участвуют следующие сделки:

Неэффективное использование пространства

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

По сути, чем меньше устройство, тем ниже потери.

Это становится совершенно несущественным, если общее пространство выходит за пределы определенного уровня. Для обычных ПК емкостью чуть больше 1 ТБ и для серверов она может сильно различаться от приложения к приложению.

Скорость

Скорость прямо пропорциональна размеру выделения. Чем он больше, тем меньше нужно индексировать, хранить и просматривать.

Имейте в виду, что небольшое увеличение размера кластера не дает заметных преимуществ. Например, если вы перейдете с 512b на 4 КБ, это не будет заметно, но переход на 64 КБ принесет вам заметные улучшения. Точно так же переход на 512 КБ или выше принесет вам существенные преимущества.

Подверженность фрагментации

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

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

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

Большие единицы позволяют получить доступ к большему объему хранилища с теми же ограничениями. Именно поэтому параметры размера кластера NTFS изменились с 64 КБ до нового максимума 2 МБ в версиях Windows 1709+. Кластеры размером 2 МБ допускают максимальный размер файла и тома размером 2 ПБ!

Нет никаких причин не использовать размер кластера 512 байт, особенно на диске для резервного копирования данных. Вы экономите место и не влияете на скорость, в отличие от того, что было сказано ранее. Производительность диска НЕ ​​прямо пропорциональна размеру выделения. Я протестировал каждый размер кластера, все они дают одинаковую скорость передачи, единственная разница заключается в том, что большие размеры кластера занимают место. Идея больших кластеров заключается в файлах, в которые вы, возможно, захотите записать позже (текстовые документы, файлы конфигурации). может не находиться рядом с текущими секторами диска (это приведет к фрагментации) в большой настройке кластера это пространство уже зарезервировано рядом с исходными секторами файла, поэтому вместо этого оно заполняет это пространство. Это уменьшает фрагментацию, но, честно говоря, я не понимаю, почему бы просто регулярно не дефрагментировать жесткий диск. Windows уже делает это в фоновом режиме за вас. Опять же, нет причин не использовать 512 байт.

Возможно, 11 лет назад, когда задавался вопрос, это не было так очевидно, но теперь это точно стало очевидным. Мир повернулся к 4k кластерам. Причины, по которым размер кластера должен быть ровно 4 КБ или кратным ему, включают:

  • Размер страницы x86 – 4 КБ. Процессор видит память как набор блоков по 4k. Таким образом, когда вы используете кластеры 4 КБ, у вас есть сопоставление 1-к-1 для отображаемых в память файлов, включая подкачку, что улучшает гораздо больше, чем вы можете себе представить; практически все.

В последних версиях Windows используются кластеры размером до 2 М. На самом деле это снова отражает x86. Упомянутые 4k были верны для 80384, 80486, но вокруг Pentium Pro у нас есть возможность использовать страницы размером 2M.

Новые жесткие диски имеют блоки по 4 КБ, так называемый "расширенный формат". Это было правдой еще 11 лет назад. Когда вы записываете блок размером 512 байт, диск должен прочитать весь блок размером 4 КБ, обновить часть в нем и записать обратно 4 КБ, что является очень медленным процессом; если пишешь 4к, то свободен от этого и работаешь с максимальной эффективностью. Если вы столкнетесь с таким устройством, никогда не используйте кластеры, размер которых не кратен 4k! Не менее важно убедиться, что все на диске выровнено так, чтобы файловые системы начинались с границы 4 КБ

для SSD это еще важнее. То же самое, но писать можно только на «бесплатную» страницу; если вы хотите перезаписать его часть, вам нужно прочитать его, обновить в памяти, затем стереть весь блок, а затем вы можете писать. Это медленно, и каждый производитель использует всевозможные хитрости, чтобы скрыть это от нас; несмотря на это, процесс все еще там. Кроме того, необходимо контролировать износ блока. И чем меньший блок мы обновляем, тем хуже эффективность этих внутренних алгоритмов управления. Чтобы исправить ситуацию, появилась даже новая технология, которая называется «зонированное блочное устройство». Итак, в заключение, маленький блок здесь снова плох.

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

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

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

Устройства для хранения информации в настоящее время имеют ОГРОМНОЕ значение. Программное обеспечение, кажется, догоняет это, поэтому файлы также становятся больше. Это означает, что меньшее количество блоков в процентном отношении является хвостом, поэтому меньше вероятность потери. Если у вас есть файлы размером около 200 КБ, вы теряете в среднем только 1%, в худшем случае не более 2%. Метаданные файловой системы также увеличиваются в размере. Есть даже предложения (см. стр. 132) увеличить размер блока и смириться с увеличением отходов.

Просматривая свойства файла Windows, я вижу два атрибута: "Размер" и "Размер на диске", а "Размер на диске" всегда больше.

Что означают эти два показателя?


Я не уверен в этом на 100 %, но считаю, что сжатые файлы также влияют на эти измерения.

"Размер на диске" не всегда больше. Небольшие файлы хранятся непосредственно на MFT и имеют размер на диске = 0. Сжатые файлы также часто имеют меньший размер на диске. То же самое с разреженными файлами

4 ответа 4

Размер — это фактический размер файла в байтах.

Размер на диске — это фактический объем места, занимаемого на диске. Они отличаются тем, что диск разделен на дорожки и сектора и может выделять блоки дискретного размера.

Более подробное объяснение см. в этом тексте, который я скопировал с другого сайта:

Мы знаем, что диск состоит из дорожек и секторов. В Windows это означает, что ОС выделяет пространство для файлов в «кластерах» или «единицах распределения».

Размер кластера может варьироваться, но обычно он составляет от 512 байт до 32 КБ и более. Например, на моем диске C:\ единица выделения составляет 4096 байт. Это означает, что Windows выделит 4096 байт для любого файла или части файла длиной от 1 до 4096 байт.

Если у меня есть файл размером 17 КБ (килобайт), то Размер на диск будет 20,48 КБ (или 20480 байт). Вычисление будет 4096 (1 единица распределения) x 5 = 20480 байт. Для хранения файла размером 17 КБ требуется 5 единиц распределения.

Другой пример: у меня есть файл размером 2000 байт. Размер файла на диске будет 4096 байт. Причина в том, что даже если весь файл может поместиться в одну единицу размещения, он все равно занимает 4096 дискового пространства (одна единица распределения) на диске (только один файл может использовать единицу распределения и не может использоваться совместно с другими файлами).< /p>

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

Поэтому фактический размер файла (файлов) или папки (папок) всегда следует брать из значения размера при просмотре окно свойств.


Должен ли я смотреть на "размер" или "размер на диске", когда я хочу сравнить процент того, сколько занимает папка, по сравнению с общим объемом, который занимает текущий раздел?

В приведенном ниже ответе Synetech добавлены важные (и потенциально запутанные) моменты о сжатии и жестких ссылках, которые могут привести к тому, что размер на диске будет меньше, чем размер.

@baroquedub У вас может быть огромная разница между ними (например, коэффициент x1000 в вашем примере). Эта разница может возникнуть, особенно если есть много маленьких файлов (в основном потому, что файлы записываются на диск как «блоки», поэтому будет взят как минимум весь размер одного блока. Фактический размер блока зависит от файла) системе, поэтому размер занятого диска может быть разным на разных дисках.

Это связано с размерами единиц размещения, которые использовались на вашем диске при его первом форматировании.

Представьте, что у вас в машине две газовые канистры по 2 x 10 галлонов. Каждый газовый баллон является единицей распределения. Вам нужно получить 12 галлонов бензина, поэтому вам нужно использовать обе канистры. В основном используется 20 галлонов выделенного пространства, но заполняется только 12 галлонов.

Вот размер по умолчанию для Windows XP

Если вы думаете о размере кластера, как о каждой из ваших газовых канистр: вмещает 4 КБ «газа» каждая. Но размер вашего файла 2 КБ, тогда размер заливки 2 КБ, а размер на диске 4 КБ

Позвольте мне добавить к вашему ответу. Размер единицы размещения (сегмента) выбирается в зависимости от размера диска. Если вы используете ведро для опорожнения ванны, вам следует выбрать маленькое ведро. Если вы опорожняете бассейн, вам понадобится ведро большего размера.

Вы не можете получить доступ к каждому отдельному байту на носителе данных отдельно. Это было бы ужасно неэффективно, потому что системе нужен какой-то способ отслеживать, какие из них используются, а какие бесплатны (т., список), поэтому выполнение этого для каждого байта в отдельности создало бы слишком много подслушивания (для каждого отдельного байта, т. е. 1-к-1, список был бы таким же большим, как сам носитель!)< /p>

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

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

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

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

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

Еще один сценарий, в котором вы можете увидеть разницу между фактическим размером файла и размером на диске, связан со сжатием. Когда диск сжат (например, с использованием DriveSpace, сжатия NTFS и т. д.), тогда будет разница между фактическим размером файла (который необходимо знать) и фактическим размером, который занимает файл (т. е. использует или «занимает») на диске.

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

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