Jump to content

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

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

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

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

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

[ редактировать ]

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

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

В противном случае пустой диск содержит пять файлов, от 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, пока в одном из них не откроется достаточно места, чтобы снова сделать его смежным. Это создает ту же проблему, что и в предыдущем примере: если файлов или данных для перемещения мало, это не является большой проблемой, но если файлов тысячи или даже десятки тысяч, это не проблема. недостаточно времени, чтобы переместить все эти файлы.
  3. Добавьте новый блок где-нибудь еще и укажите, что F имеет второй экстент (см. пример 5 на изображении). Повторите это сотни раз, и файловая система будет иметь несколько небольших свободных сегментов, разбросанных по разным местам, а некоторые файлы будут иметь несколько экстентов. Когда файл имеет много таких экстентов, время доступа к этому файлу может стать чрезмерно долгим из-за всех случайных поисков на диске, которые придется выполнять при его чтении.

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

смягчение последствий

[ редактировать ]

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

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

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

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

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

Разделение

[ редактировать ]

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

Оффлайн дефрагментация

[ редактировать ]

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

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

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

[ редактировать ]

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

Жесткие диски SMR

[ редактировать ]

Хотя многие жесткие диски SMR принимают команду TRIM , жесткие диски SMR все равно нуждаются в дефрагментации для повышения производительности. [ нужна ссылка ]

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

[ редактировать ]
Утилита дефрагментации Windows
  • FAT : системы MS-DOS 6.x и Windows 9x поставляются с утилитой дефрагментации Defrag. Версия для DOS представляет собой ограниченную версию Norton SpeedDisk. [7] Версия, поставляемая с Windows 9x, была лицензирована Symantec Corporation , а версия, поставляемая с Windows 2000 и XP, лицензирована Condusiv Technologies .
  • NTFS была представлена ​​в Windows NT 3.1 , но драйвер файловой системы NTFS не имел никаких возможностей дефрагментации. [8] В Windows NT 4.0 дефрагментации были представлены API-интерфейсы , которые сторонние инструменты могли использовать для выполнения задач дефрагментации; однако программное обеспечение для дефрагментации не было включено. В Windows 2000 , Windows XP и Windows Server 2003 Microsoft включила инструмент дефрагментации на основе Diskeeper. [9] который использовал API-интерфейсы дефрагментации и был оснасткой для управления компьютером . В Windows Vista , Windows 7 и Windows 8 этот инструмент был значительно улучшен, получил новый интерфейс без визуальной карты дисков и больше не является частью управления компьютером. [10] [11] Существует также ряд бесплатных и коммерческих продуктов дефрагментации сторонних производителей, доступных для Microsoft Windows .
  • BSD UFS и особенно FreeBSD используют внутренний перераспределитель, который стремится уменьшить фрагментацию прямо в момент записи информации на диск. [12] Это эффективно контролирует деградацию системы после длительного использования.
  • В Btrfs доступна онлайн- и автоматическая дефрагментация. [13] [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 и более ранними компьютерами Acorn , позволяет контролировать фрагментацию файлов, не требуя ручной дефрагментации. [21]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Практика пометки неиспользуемого теперь пространства удаленного файла в таблице как доступного для дальнейшего использования (без стирания его содержимого) - вот почему программы восстановления могут работать; они восстанавливают файлы, имена которых были удалены из каталога, но пространство которых еще не использовалось повторно. [ нужна ссылка ]
  1. ^ Cwdixon.com. Архивировано 6 октября 2010 г. в Wayback Machine . Cwdixon.com. Проверено 28 июля 2013 г.
  2. ^ Лучший дефрагментатор — LaRud’s Place . Ларуд.нет (19 января 2012 г.). Проверено 28 июля 2013 г.
  3. ^ «MyDefrag v4.2.8» . Архивировано из оригинала 16 февраля 2010 г. Проверено 14 августа 2014 г. На большинстве жестких дисков начало диска значительно быстрее конца, иногда даже на 200 процентов! Вы можете измерить это самостоятельно с помощью таких утилит, как *HD Tune. Таким образом, MyDefrag ориентирован на перемещение всех файлов в начало диска.
  4. ^ Сердар Егулалп (20 сентября 2005 г.). «Новые жесткие диски уменьшают необходимость дефрагментации диска» . SearchWindowsServer.com: Краткое руководство по дефрагментации диска . Архивировано из оригинала 3 июня 2008 года . Проверено 27 декабря 2008 г.
  5. ^ «Windows XP: улучшения ядра создают более надежную, мощную и масштабируемую операционную систему — журнал MSDN, декабрь 2001 г.» . Архивировано из оригинала 24 апреля 2003 г. Проверено 19 декабря 2006 г. msdn.microsoft.com: «Другим большим улучшением [в Windows XP] является поддержка онлайн-дефрагментации MFT и большинства метаданных каталогов и файлов»
  6. ^ Гензельман, Скотт (3 декабря 2014 г.). «Реальная и полная история: дефрагментирует ли Windows ваш SSD?» . Блог Скотта Хансельмана . Майкрософт . Архивировано из оригинала 22 декабря 2014 года.
  7. ^ Нортон, Питер (октябрь 1994 г.). Полное руководство Питера Нортона по DOS 6.22 . Сэмс. п. 521 .
  8. ^ М. Козерок, Чарльз (17 апреля 2001 г.). «Версии NTFS» . Руководство для ПК. Архивировано из оригинала 24 сентября 2015 г. Проверено 20 февраля 2015 г.
  9. ^ Сторонние инструменты дефрагментации диска для Windows. Архивировано 28 ноября 2011 г. на Wayback Machine . Support.microsoft.com (23 августа 2011 г.). Проверено 28 июля 2013 г.
  10. ^ «Дефрагментация диска: предыстория и разработка улучшений Windows 7» . Архивировано из оригинала 13 июня 2014 г. Проверено 15 июня 2014 г.
  11. ^ «Новые параметры дефрагментации в Windows 8» . 13 ноября 2011 г. Архивировано из оригинала 20 февраля 2015 г. Проверено 15 июня 2014 г.
  12. ^ «Страницы руководства FreeBSD» . Проект FreeBSD. Архивировано из оригинала 21 февраля 2015 года . Проверено 21 февраля 2015 г.
  13. ^ «Дефрагментация» . Документация BTRFS . Проверено 26 июля 2024 г. {{cite web}}: CS1 maint: статус URL ( ссылка )
  14. ^ «Администрация» . Документация BTRFS . Проверено 26 июля 2024 г. {{cite web}}: CS1 maint: статус URL ( ссылка )
  15. ^ «HTG объясняет: почему Linux не нуждается в дефрагментации» . Как компьютерщик . Архивировано из оригинала 19 июля 2013 г. Проверено 1 августа 2013 г.
  16. ^ 5.10. Файловые системы. Архивировано 27 мая 2013 г. на Wayback Machine . Tldp.org (09.11.2002). Проверено 22 июня 2013 г.
  17. ^ Эрик Бервальдт: Оптимизация организации данных на диске. Архивировано 6 сентября 2014 г. на Wayback Machine.
  18. ^ «Поддержка журналируемой файловой системы» . электростанция . Архивировано из оригинала 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 – Сэмс ( ISBN   067230614X )
  • Вуди Леонхард, Джастин Леонхард (2005) Методы экономии времени в Windows XP для чайников, второе издание, стр. 456 - Для чайников ( ISBN   0-764578-839 ).
  • Дженсен, Крейг (1994). Фрагментация: состояние, причина, лечение . Исполнительное программное обеспечение International ( ISBN   0-9640049-0-9 ).
  • Дэйв Клейман , Лаура Хантер, Махеш Сатьянараяна, Кимон Андреу, Нэнси Дж. Альтхольц, Лоуренс Абрамс, Даррен Виндхэм, Тони Брэдли и Брайан Барбер (2006) Winternals: Полевое руководство по дефрагментации, восстановлению и администрированию – Syngress ( ISBN   1-597490-792 )
  • Робб, Дрю (2003) Управление дисками сервера в среде Windows Глава 7 – AUERBACH ( ISBN   0849324327 )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a03e302d3ec67faf25972fe570fada2b__1721989920
URL1:https://arc.ask3.ru/arc/aa/a0/2b/a03e302d3ec67faf25972fe570fada2b.html
Заголовок, (Title) документа по адресу, URL1:
Defragmentation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)