Дефрагментация


Из Википедии, свободной энциклопедии
  (Перенаправлено из дефрагментатора диска )
Перейти к навигации Перейти к поиску
Визуализация фрагментации, а затем дефрагментации

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

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

Причины фрагментации

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

Пример

Примеры пяти состояний фрагментации

В противном случае пустой диск имеет пять файлов, от A до E, каждый из которых использует 10 блоков пространства (для этого раздела блок - это единица распределения файловой системы ; размер блока устанавливается при форматировании диска и может иметь любой размер, поддерживаемый файловая система). На чистом диске все эти файлы будут размещены один за другим (см. Пример 1 на изображении). Если бы файл B был удален, было бы два варианта: пометить пространство для файла B как пустое, чтобы использовать его позже, или переместите все файлы после B, чтобы пустое место было в конце. Поскольку перемещение файлов может занять много времени, если необходимо переместить много файлов, обычно там просто оставляют пустое пространство, отмеченное в таблице как доступное для новых файлов (см. Пример 2 на изображении).[1] Когда выделяется новый файл F, требующий 6 блоков пространства, он может быть помещен в первые 6 блоков пространства, в котором ранее находился файл B, а следующие 4 блока останутся доступными (см. Пример 3 в изображение). Если добавляется еще один новый файл, G, и ему требуется всего 4 блока, он может занимать пространство после F и перед C (пример 4 на изображении).

Однако, если затем необходимо расширить файл F, есть три варианта, поскольку пространство сразу после него больше не доступно:

  1. Переместите файл F туда, где он может быть создан как один непрерывный файл нового, большего размера. Это невозможно, если размер файла превышает наибольшее доступное непрерывное пространство. Файл также может быть настолько большим, что операция займет нежелательно длительный период времени.
  2. Переместите все файлы после F, пока один из них не откроет достаточно места, чтобы снова сделать его смежным. Это представляет ту же проблему, что и в предыдущем примере: если есть небольшое количество файлов или мало данных для перемещения, это не большая проблема, но если есть тысячи или даже десятки тысяч файлов, нет t достаточно времени, чтобы переместить все эти файлы.
  3. Добавьте новый блок где-нибудь еще и укажите, что F имеет второй экстент (см. Пример 5 на изображении). Повторите это сотни раз, и в файловой системе будет несколько небольших свободных сегментов, разбросанных во многих местах, а некоторые файлы будут иметь несколько экстентов. Когда файл имеет много таких экстентов, время доступа к этому файлу может стать чрезмерно большим из-за всех случайных поисков диска при его чтении.

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

Смягчение

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

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

Помимо дефрагментации программных файлов, инструмент дефрагментации также может сократить время, необходимое для загрузки программ и открытия файлов. Например, дефрагментатор Windows 9x включал Intel Application Launch Accelerator, который оптимизировал программы на диске, помещая дефрагментированные программные файлы и их зависимости рядом друг с другом в том порядке, в котором программа их загружает, для более быстрой загрузки этих программ. [2] В Windows хороший дефрагментатор будет читать файлы предварительной выборки, чтобы идентифицировать как можно больше этих групп файлов и помещать файлы в них в порядке доступа.

В начале жесткого диска внешние дорожки имеют более высокую скорость передачи данных, чем внутренние дорожки. Размещение часто используемых файлов на внешних дорожках увеличивает производительность. [3] Сторонние дефрагментаторы, такие как MyDefrag, перемещают часто используемые файлы на внешние дорожки и дефрагментируют эти файлы. [4]

Усовершенствования в современных жестких дисках, такие как кэш ОЗУ , более высокая скорость вращения пластин, организация очереди команд ( SCSI / ATA TCQ или SATA NCQ ) и большая плотность данных, в некоторой степени снижают негативное влияние фрагментации на производительность системы, хотя и увеличивает количество часто используемых данных. количество компенсирует эти преимущества. Однако современные системы получают огромную прибыль от доступной в настоящее время огромной дисковой емкости, поскольку частично заполненные диски фрагментируют намного меньше, чем полные диски [5], а на жестком диске большой емкости один и тот же раздел занимает меньший диапазон цилиндров, что приводит к более быстрому поиску. . Однако среднее время доступаникогда не может быть меньше половины оборота пластин, а вращение пластин (измеряется в об / мин) - это скоростная характеристика жестких дисков, которая переживает самый медленный рост за последние десятилетия (по сравнению со скоростью передачи данных и временем поиска), поэтому минимизация количества поисков остается полезным в большинстве приложений с большим объемом памяти. Дефрагментация - это именно то, что нужно: гарантировать, что для каждого файла существует не более одного поиска, считая только переходы к несмежным дорожкам.

Разбиение на разделы

Распространенной стратегией оптимизации дефрагментации и уменьшения воздействия фрагментации является разделение жесткого диска (ов) таким образом, чтобы разделить разделы файловой системы, на которые выполняется гораздо больше операций чтения, чем записи, из более изменчивых зон, где файлы создаются и удаляются. часто. Каталоги, содержащие профили пользователей, постоянно изменяются (особенно, когда каталог Temp и кеш веб-браузера создают тысячи файлов, которые удаляются за несколько дней). Если файлы из профилей пользователей хранятся в выделенном разделе (как это обычно делается в рекомендуемых файловых системах UNIX ), где он обычно хранится в разделе / ​​var), дефрагментатор работает лучше, поскольку ему не нужно обрабатывать все статические файлы из других каталогов. (В качестве альтернативы, дефрагментатору можно приказать просто исключить определенные пути к файлам.) Для разделов с относительно небольшой активностью записи время дефрагментации значительно улучшается после первой дефрагментации, поскольку в будущем дефрагментатору потребуется дефрагментировать только небольшое количество новых файлов. .

Автономная дефрагментация

Наличие неподвижных системных файлов, особенно файла подкачки , может затруднить дефрагментацию. Эти файлы можно безопасно перемещать, когда операционная система не используется. Например, ntfsresize перемещает эти файлы для изменения размера раздела NTFS . Инструмент PageDefrag может дефрагментировать системные файлы Windows, такие как файл подкачки и файлы, в которых хранится реестр Windows, путем запуска во время загрузки до загрузки графического интерфейса. Начиная с Windows Vista, эта функция не полностью поддерживается и не обновлялась.

В NTFS, когда файлы добавляются на диск, главная таблица файлов (MFT) должна расти, чтобы хранить информацию для новых файлов. Каждый раз, когда MFT не может быть расширен из-за того, что на пути находится какой-то файл, MFT получит фрагмент. В ранних версиях Windows его нельзя было безопасно дефрагментировать во время монтирования раздела, поэтому Microsoft записала жесткий блок в API дефрагментации . Однако, начиная с Windows XP , все большее количество дефрагментаторов теперь может дефрагментировать MFT, поскольку API дефрагментации Windows был улучшен и теперь поддерживает эту операцию перемещения. [6] Даже с учетом улучшений первые четыре кластера MFT остаются неподвижными для API дефрагментации Windows, в результате чего некоторые дефрагментаторы сохраняют MFT в двух фрагментах: первые четыре кластера, где бы они ни находились при форматировании диска, и затем оставшаяся часть MFT в начале диска (или там, где стратегия дефрагментации считает лучшим местом).

Твердотельные диски

При считывании данных с обычного электромеханического жесткого диска контроллер диска должен сначала относительно медленно позиционировать головку на дорожке, где находится данный фрагмент, а затем ждать, пока диск вращается, пока фрагмент не достигнет головки. Твердотельный накопитель (SSD) , основан на флэш - памяти без каких - либо подвижных частей, поэтому произвольный доступ фрагмента файла на флэш - памяти не страдает эту задержкой, что делает дефрагментацию скорости доступа оптимизирует ненужную. Более того, поскольку флеш-память может быть записана только ограниченное количество раз, прежде чем произойдет сбой, дефрагментация на самом деле вредна (за исключением предотвращения катастрофических сбоев).). Однако Windows по-прежнему дефрагментирует SSD автоматически (хотя и менее энергично), чтобы файловая система не достигла максимальной устойчивости к фрагментации. После достижения максимального предела фрагментации последующие попытки записи на диск завершаются неудачей. [7]

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

Утилита дефрагментации Windows
  • FAT : Системы MS-DOS 6.x и Windows 9x поставляются с утилитой дефрагментации под названием Defrag. Версия для DOS - это ограниченная версия Norton SpeedDisk. [8] Версия, поставляемая с Windows 9x, была лицензирована Symantec Corporation , а версия, которая поставлялась с Windows 2000 и XP, лицензирована Condusiv Technologies .
  • NTFS была представлена ​​в Windows NT 3.1 , но драйвер файловой системы NTFS не включал никаких возможностей дефрагментации. [9] В Windows NT 4.0 были представлены API дефрагментации, которые сторонние инструменты могли использовать для выполнения задач дефрагментации; однако программное обеспечение для дефрагментации не было включено. В Windows 2000 , Windows XP и Windows Server 2003 , Microsoft включили инструмент дефрагментации , основанный на Diskeeper [10] , который сделал использование API для дефрагментации и была оснастка для управления компьютером . В Windows Vista, Windows 7 и Windows 8 инструмент был значительно улучшен и получил новый интерфейс без визуальной карты дисков и больше не является частью управления компьютером. [11] [12] Существует также ряд бесплатных и коммерческих продуктов дефрагментации сторонних производителей, доступных для Microsoft Windows .
  • BSD UFS и особенно FreeBSD используют внутренний перераспределитель, который стремится уменьшить фрагментацию прямо в тот момент, когда информация записывается на диск. [13] Это эффективно контролирует деградацию системы после продолжительного использования.
  • Btrfs предлагает интерактивную и автоматическую дефрагментацию. [14]
  • Linux ext2 , ext3 и ext4 : как и в UFS, в этих файловых системах используются методы распределения, предназначенные для постоянного контроля фрагментации. [15] В результате в подавляющем большинстве случаев дефрагментация не требуется. [16] ext2 использует автономный дефрагментатор e2defrag, который не работает с его преемником ext3. Однако другие программы или программы, не зависящие от файловой системы, такие как defragfs [17], могут использоваться для дефрагментации файловой системы ext3. ext4 в некоторой степени обратно совместимас ext3, и, следовательно, обычно имеет такую ​​же поддержку со стороны программ дефрагментации. В настоящее время e4defrag можно использовать для дефрагментации файловой системы ext4, включая онлайн-дефрагментацию.
  • В VxFS есть fsadmутилита, которая включает операции дефрагментации.
  • У JFS есть defragfsутилита в операционных системах IBM. [18]
  • HFS Plus, представленная в 1998 году вместе с Mac OS 8.1, имеет ряд оптимизаций алгоритмов распределения с целью дефрагментации файлов во время доступа к ним без отдельного дефрагментатора. [19] Существует несколько ограничений для файлов, которые могут быть кандидатами на дефрагментацию «на лету» (включая максимальный размер 20 МБ). Утилита iDefrag от Coriolis Systems доступна начиная с OS X 10.3. В традиционной Mac OS дефрагментацию можно выполнить с помощью Norton SpeedDisk и TechTool Pro.
  • WAFL в операционной системе NetApp ONTAP 7.2 имеет команду, reallocateкоторая предназначена для дефрагментации больших файлов.
  • XFS предоставляет онлайн-утилиту дефрагментации под названием xfs_fsr.
  • SFS обрабатывает функцию дефрагментации практически без сохранения состояния (за исключением местоположения, в котором она работает), поэтому дефрагментацию можно остановить и запустить мгновенно. [20]
  • ADFS , файловая система, используемая RISC OS и более ранними версиями Acorn Computers , держит под контролем фрагментацию файлов, не требуя ручной дефрагментации. [21]

Смотрите также

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

использованная литература

  1. ^ Практика пометки теперь неиспользуемого пространства удаленного файла в таблице как доступного для последующего использования (без стирания его содержимого) - вот почемупрограммы восстановления после удалениямогут работать; они восстанавливают файлы, имена которых были удалены из каталога, но пространство которых еще не использовалось повторно.
  2. ^ Cwdixon.com Архивировано 06 октября 2010 г. на Wayback Machine . Cwdixon.com. Проверено 28 июля 2013.
  3. ^ The Ultimate Defragger - LaRud's Place . Larud.net (19 января 2012 г.). Проверено 28 июля 2013.
  4. ^ "Архивная копия" . Архивировано 16 февраля 2010 года . Проверено 14 августа 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка ) На большинстве жестких дисков начало жесткого диска значительно быстрее конца, иногда на целых 200 процентов! Вы можете измерить это самостоятельно с помощью таких утилит, как HD Tune. Таким образом, MyDefrag ориентирован на перемещение всех файлов в начало диска.
  5. ^ Сердар Yegulalp (20 сентября 2005). «Новые жесткие диски уменьшают потребность в дефрагментации диска» . SearchWindowsServer.com: Быстрое руководство по дефрагментации диска . Архивировано 3 июня 2008 года . Проверено 27 декабря 2008 .
  6. ^ "Архивная копия" . Архивировано из оригинала на 2003-04-24 . Проверено 19 декабря 2006 .CS1 maint: заархивированная копия как заголовок ( ссылка ) msdn.microsoft.com: «Другим большим улучшением [в Windows XP] является поддержка оперативной дефрагментации MFT и большинства метаданных каталогов и файлов»
  7. ^ Hanselman, Скотт (3 декабря 2014). «Настоящая и полная история - дефрагментирует ли Windows ваш SSD?» . Блог Скотта Хансельмана . Microsoft . Архивировано 22 декабря 2014 года.
  8. ^ Нортон, Питер (октябрь 1994). Полное руководство Питера Нортона по DOS 6.22 . Sams. п. 521 .
  9. ^ М. Kozierok, Чарльз (2001-04-17). «Версии NTFS» . Руководство для ПК. Архивировано из оригинала на 2015-09-24 . Проверено 20 февраля 2015 .
  10. ^ Инструменты дефрагментации диска сторонних производителей для Windows. Архивировано 28 ноября 2011 г. на Wayback Machine . Support.microsoft.com (23.08.2011). Проверено 28 июля 2013.
  11. ^ «Дефрагментация диска - Предпосылки и разработка улучшений Windows 7» . Архивировано 13 июня 2014 года . Проверено 15 июня 2014 .
  12. ^ «Новые параметры дефрагментации в Windows 8» . Архивировано 20 февраля 2015 года . Проверено 15 июня 2014 .
  13. ^ "FreeBSD Man Pages" . Проект FreeBSD. Архивировано 21 февраля 2015 года . Проверено 21 февраля 2015 года .
  14. ^ «Ядро Linux 3.0, раздел 1.1. Btrfs: автоматическая дефрагментация, очистка, улучшения производительности» . kernelnewbies.org . 2011-07-21. Архивировано 30 марта 2016 года . Проверено 5 апреля 2016 .
  15. ^ «HTG объясняет: почему Linux не требует дефрагментации» . How-To Geek . Архивировано 19 июля 2013 года . Проверено 1 августа 2013 .
  16. ^ 5.10. Файловые системы. Архивировано 27 мая 2013 г. на Wayback Machine . Tldp.org (9 ноября 2002 г.). Проверено 22 июня 2013.
  17. ^ Erik Bärwaldt: Оптимизация организации данных на диске архива 2014-09-06 в Wayback Machine
  18. ^ «Поддержка журнальной файловой системы» . eComStation . Архивировано 8 декабря 2008 года . Проверено 27 декабря 2008 .
  19. ^ «Фрагментация в объемах HFS Plus» . Архивировано из оригинального 18 ноября 2012 года . Дата обращения 2 сентября 2020 . Как мы видели, том HFS +, кажется, довольно хорошо сопротивляется фрагментации в Mac OS X 10.3.x, и я не думаю, что фрагментация станет настолько серьезной проблемой, чтобы потребовались упреждающие средства (например, инструмент дефрагментации).
  20. ^ «Обнаружение точки фрагментации файла для восстановления фрагментированных файлов с использованием последовательного тестирования гипотез» . US8407192 B2. Архивировано 21 февраля 2015 года . Проверено 21 февраля 2015 года .
  21. Ривз, Ник (26 октября 1990 г.). «Дизайн-документ формата Е» . Архивировано 7 апреля 2013 года . Проверено 24 мая 2013 года .

Источники

  • Нортон, Питер (1994) Полное руководство Питера Нортона по DOS 6.22 , стр. 521 - Sams ( ISBN 067230614X ) 
  • Вуди Леонхард, Джастин Леонхард (2005) Методы экономии времени Windows XP для чайников, второе издание, стр. 456 - для чайников ( ISBN 0-764578-839 ). 
  • Дженсен, Крейг (1994). Фрагментация: состояние, причина, лечение . Executive Software International ( ISBN 0-9640049-0-9 ). 
  • Дэйв Клейман , Лаура Хантер, Махеш Сатьянараяна, Кимон Андреу, Нэнси Г. Альтхольц, Лоуренс Абрамс, Даррен Виндхэм, Тони Брэдли и Брайан Барбер (2006) Winternals: Defragmentation, Recovery, and Administration Field Guide - Syngress ( ISBN 1-597490-792 ) 
  • Робб, Дрю (2003) Управление дисками сервера в среде Windows, глава 7 - AUERBACH ( ISBN 0849324327 ) 

внешние ссылки

  • Тесты Big Windows 7 Defragmenter Test для популярных утилит дефрагментации
  • Дефрагментация Microsoft Windows XP - Как запланировать еженедельную дефрагментацию
  • Microsoft Windows 2000 Professional и дефрагментация сервера - Как запланировать дефрагментацию
  • Оптимизатор жесткого диска SST
  • Как Linux избегает фрагментации файлов
  • Как была изменена дефрагментация в Windows 7
  • Полный список утилит дефрагментации для Windows
  • Влияет ли файловая система вашего SSD на производительность?
Источник « https://en.wikipedia.org/w/index.php?title=Defragmentation&oldid=1032886001 »