Дефрагментация диска
Дефрагмента́ция — процесс перераспределения фрагментов файлов и логических структур файловых систем на дисках для обеспечения непрерывной последовательности кластеров.
В случае использования жестких дисков, вследствие дефрагментации ускоряется чтение и запись файлов, а следовательно, работа программ и операционной системы. Это достигается за счет того, что чтение файлов после дефрагментации производится максимально линейно и непрерывно, без дополнительных передвижений головки жёсткого диска для поиска и воссоединения фрагментов.
Твердотельные накопители и флешки на основе различных видов флеш-памяти в дефрагментации файловых систем не нуждаются. Более того, дефрагментация, в некоторой степени, вредит флеш-памяти, так как последняя имеет намного более ограниченное количество циклов записи/перезаписи, чем накопители на магнитных дисках при должном использовании.
ТерминологияПравить
Фрагментация данных — разбиение файла на фрагменты различной величины для записи в различные (не последовательные) области жёсткого диска. Фрагментация применяется, как правило, в случае необходимости записи большого файла на диск, где недостаточно непрерывного объёма, но достаточно суммарного свободного места (например, вследствие удаления ранее записанных файлов).
Причины фрагментации файловПравить
Фундаментальные причиныПравить
Фрагментация файловой системы, по своей сути, является компромиссом между простотой и скоростью первоначального сброса данных на диск и скоростью и, соответственно, простотой чтения этих же самых данных в будущем (которое, кстати, может произойти весьма нескоро с точки зрения процессорного времени).
Также, фрагментация является следствием активной эксплуатации файловой системы и компьютера в целом, имея в основе вышеперечисленные причины.
Особые случаиПравить
Следует особо отметить преднамеренную фрагментацию SSD-дисков их контроллером на физическом уровне, которая, как раз, имеет явно полезное действие (см. Фрагментация Flash на физическом уровне).
ПоследствияПравить
Когда фрагментированных файлов становится много, скорость работы накопителя (особенно жесткого диска или дискеты) с фрагментированными файлами уменьшается, поскольку возникают задержки на физическое перемещение головки жесткого диска между разделёнными фрагментами[1]. Более того, общая фрагментация жесткого диска замедляет не только скорость работы с уже существующими файлами, но и, как правило, существенно замедляет запись новых.
Типы дефрагментацииПравить
Разработчики сторонних утилит стараются предоставлять пользователям разные алгоритмы и правила дефрагментации.
- «Быстрая» дефрагментация — дефрагментируются только фрагментированные файлы, свободное же место не дефрагментируется. Выполняется в несколько раз быстрее полной дефрагментации. Ускоряется работа с уже существующими файлами. Скорость работы с создаваемыми или изменяемыми файлами ускоряется незначительно. Такую дефрагментацию умеют проводить следующие утилиты: Piriform Defraggler.
- Дефрагментация свободного места — дефрагментация только свободного пространства, файлы же остаются фрагментированными, иногда даже больше, чем до дефрагментации. Намного ускоряет запись новых файлов. Используется крайне редко. Умеют проводить следующие утилиты: Piriform Defraggler, O&O Defrag[2].
- Полная дефрагментация — одновременно дефрагментируется и свободное место, и сами файлы. Может выполняться несколько часов на больших дисках. Ускоряет работу как с новыми файлами, так и с уже существующими. Может проводится встроенными средствами Windows, а также многочисленными сторонними утилитами. При использовании SSD как системного накопителя в Windows 8, 8.1, 10 такая ручная дефрагментация недоступна из стандартного инструмента и заменена оптимизацией[3] – выполнением команды trim.
- «Оптимизация» — помимо (либо вместо) дефрагментации перемещает физически в начало диска (точнее, раздела) мелкие и/или важные для работы системы файлы и/или перемещает в конец диска большие, пользовательские или те, что редко используются. Может дать незначительный прирост общей производительности жесткого диска и довольно значительное ускорение при использовании операционной системы с этого диска[4]. Специальный вид такой оптимизации может проводится автоматически Windows при запуске ОС. Умеют проводить следующие утилиты: MyDefrag, O&O Defrag[2].
Отдельно стоит разъяснить вышеупомянутую дефрагментацию при запуске Windows[5]. В это время дефрагментируются только важные системные файлы. Пользователь, как правило, не имеет возможности контролировать этот процесс. Незначительно замедляет процесс запуска операционной системы, но практически исключает значительное увеличение времени загрузки в будущем, например, после успешного системного обновления. Если отключить данную опцию через реестр Windows, время запуска ОС сначала немного уменьшится, но со временем может стремительно увеличиваться при активном использовании компьютера, даже если производить регулярную общую дефрагментацию средствами ОС (особенно на Windows XP и ниже), так как во время работы системы большинство системных файлов могут быть защищены от прямого доступа либо классическая дефрагментация не столь важна для них.
Известные ограниченияПравить
Подытоживая вышесказанные ограничения, дефрагментация некоторых файлов (например, файла подкачки или файлов реестра) не может происходить при непосредственной работе системы (без дополнительных «твиков»[6] системного реестра). Для таких целей можно использовать мультизагрузочные утилиты, изменять реестр или производить дефрагментацию этих файлов из другой ОС (например, Linux).
Необходимость дефрагментацииПравить
Для файловых системПравить
Дефрагментация чаще всего требуется для таких файловых систем, как File Allocation Table (FAT16, FAT32) для операционных систем MS-DOS и NTFS для Microsoft Windows, так как в программах для работы с ними обычно внутренне не предусматривается никаких средств для предупреждения фрагментации (за редкими исключениями — KillCopy и TeraCopy[7]), и она часто появляется даже на почти пустом диске и небольшой файловой нагрузке.
В некоторых файловых системах предусмотрено встроенное уменьшение фрагментации (см. Фрагментация в ext4) при сохранении приличной производительности диска и журналирования (см. Журналирование в ext4). Примером такой файловой системы может служить ext4, однако полноценная поддержка и работа с ней возможна лишь из среды Linux (см. Поддержка ext4).
Для разных носителейПравить
Фрагментация не обязательно носит негативный характер. Иногда она намеренно используется для увеличения срока службы SSD — здесь вступает в игру и команда trim. Стоит учесть, что фрагментацию можно рассматривать на разных уровнях: на уровнях файловой системы (логическом) и на уровне накопителя (физическом, за неё отвечает лишь контроллер SSD, см. Микроконтроллер). Зачастую пользователь SSD даже и не догадывается о такой фрагментации, и используется она для равномерного износа ячеек памяти устройства (см. Выравнивание износа). Но даже на твёрдотельных накопителях операционная система Windows 8 и выше (в некоторых случаях) склонна производить дефрагментацию на уровне файловой системы[8]. Тем не менее, она столь редка, что не стоит беспокоиться по этому поводу — ресурс современных SSD очень высок, а стабильность работы ОС практически для всех пользователей крайне важна.
Здоровье жесткого дискаПравить
Помимо замедления компьютера в работе с файловыми операциями (таких, как чтение и запись), хроническая фрагментация файлов негативно сказывается на «здоровье» жёсткого диска, так как заставляет постоянно перемещаться позиционирующие головки диска, которые осуществляют чтение и запись данных. Это может уменьшить срок службы блока движущих головок и повысить температуру внутри HDD, что может привести к ещё более быстрому износу аппаратных частей жёсткого диска.
Для флеш-памяти и её контроллераПравить
Флеш-память является памятью с прямым доступом, в которой время доступа к любой ячейке сравнительно мало и одинаково вне зависимости от её адреса, и записывает данные в так называемом scattershot-mode, когда только сам контроллер памяти знает о реальном расположении фрагментов. Кроме того, ячейки полупроводниковых накопителей выдерживают только ограниченное число циклов перезаписи, поэтому выполнять обычную дефрагментацию на флеш-накопителях и SSD не только неэффективно, но и в некоторым смысле вредно[9]. Программы дефрагментации могут ускорить работу SSD-накопителя, но не прибегая к классической дефрагментации файловой системы (или минимизируя оную)[9].
Температурный контрольПравить
Как и было разъяснено выше, хоть фрагментация SSD имеет двоякий характер (из-за некоторой ограниченности ресурса перезаписи), не стоит забывать и о куда более важном явлении, как повышении температуры чипов ячеек памяти и, особенно управляющего микроконтроллера. Это ещё одна причина в пользу того, чтобы принимать комплексные меры (например, грамотный кабель-менеджмент и соответствующее компьютерное охлаждение) по улучшению состояния накопителей во время работы системы, а не только вести учёт записанных данных[10].
Программное обеспечениеПравить
Для устранения фрагментации существуют специальные утилиты (программы-дефрагментаторы), принцип работы которых заключается в «сборе» каждого файла из его фрагментов и последующем помещении в наиболее выгодное положение для ОС и пользователя. Общим недостатком таких программ является их медленная работа — процесс дефрагментации может занимать очень много времени (до нескольких часов). Для твёрдотельных же накопителей существует особая команда, которая оптимизирует работу, не прибегая к пересортировке фрагментов файлов — trim.
Файловые системыПравить
- FAT: MS-DOS 6.x и Windows 9x содержат утилиту Defrag. Версия для DOS основана на Norton SpeedDisk, версия для Windows — на Diskeeper.
- NTFS: Windows NT 5 и новее содержат дефрагментатор, основанный на Diskeeper. Windows NT 4 и ранее не имели встроенных утилит для дефрагментации[11].
- ext2 использует дефрагментатор e2defrag.
- ext3 : e2defrag может работать с ext3, только если её временно преобразовать в ext2. Вместо этого можно использовать дефрагментатор, не зависящий от файловой системы — например, Shake[12].
- ext4 : e4defrag, работающий за счет создания экстентов и перемещения в них файлов.
- Btrfs: используется встроенный оффлайн-дефрагментатор. Опционально поддерживается автоматическая дефрагментация ФС.
- XFS: онлайн-дефрагментатор xfs_fsr.
# xfs_fsr -v /dev/sdX1
- Информацию о фрагментированности файла можно получить с помощью утилиты filefrag из пакета e2fsprogs.
Дефрагментация вручную и предотвращение фрагментацииПравить
Несмотря на то, что среди программ такого рода имеются довольно интеллектуальные, хорошую дефрагментацию (для несистемного накопителя) можно провести и своими силами. Для этого достаточно создать на диске новый раздел с файловой системой, после чего просто скопировать на этот логический диск те файлы, которые на нём будут храниться. Во время такого копирования на пустой диск запись данных осуществляется последовательно, практически без фрагментации. Кроме того, сам процесс записи файлов занимает в несколько раз меньше времени, чем дефрагментация с помощью программ.
Влияние пользовательских привычек на фрагментациюПравить
Знание файловой структуры и принципов работы жёсткого диска помогает сильно уменьшить фрагментацию файлов благодаря правильной организации работы пользователя. Эта организация заключается в том, что на чистый диск сначала записываются те файлы, которые предполагается хранить долго: любимые фильмы, архивы, музыку. Те же файлы, которые не планируется долго хранить, лучше записывать в конец диска: их удаление не вызовет дробления других файлов. Но такой подход хорошо применим лишь к несистемным накопителям (и в меньшей частности к разным разделам одного и того же накопителя; связано это и с относительным физическим расположением данных на магнитных дисках и с частым ограничением на количество разделов при востребованном до сих пор стиле разделов MBR[13]), а дефрагментацию системного раздела всё же более эффективно и проще выполнять специальными утилитами.
Другие вспомогательные методыПравить
Помогает использование отдельного раздела и/или тома[14][15] для часто изменяемых файлов. Например, в Unix-подобных ОС часто на отдельных разделах размещаются пользовательские данные и настройки (каталог /home), временные файлы (/tmp), протоколы, кэши и др. (/var); см. также FHS.
Помощь современных ОС в дефрагментацииПравить
ОС Windows 7 и выше при определённых настройках[16] способны выполнять дефрагментацию, оптимизацию системных файлов, обслуживание SSD по расписанию[17] и также тогда, когда ПК простаивает.
ПримечанияПравить
- ↑ Joe Kinsella Impact of Disk Fragmentation Архивная копия от 21 октября 2017 на Wayback Machine
- ↑ 1 2 Standard defragmentation methods O&O Software (неопр.). docs.oo-software.com. Дата обращения: 2 января 2022. Архивировано 2 января 2022 года.
- ↑ Как включить TRIM для SSD в Windows и проверить, включена ли поддержка TRIM (рус.). remontka.pro. Дата обращения: 2 января 2022. Архивировано 2 января 2022 года.
- ↑ Секреты планировщика заданий Windows Vista (рус.). www.outsidethebox.ms. Дата обращения: 5 декабря 2020. Архивировано 24 сентября 2020 года.
- ↑ Дефрагментация при загрузке Windows | Энциклопедия Windows (неопр.). windata.ru. Дата обращения: 9 января 2019. Архивировано 10 января 2019 года.
- ↑ XP Tweaker Russian Edition (неопр.). xptweak.sourceforge.net. Дата обращения: 2 января 2022. Архивировано 2 января 2022 года.
- ↑ [Plugin Request] Копирование без фрагментации файлов :: Total Commander (рус.). forum.wincmd.ru. Дата обращения: 13 января 2019. Архивировано 18 января 2022 года.
- ↑ Почему Windows 10, 8.1 и 8 дефрагментируют ваш SSD, и как этого избежать (рус.). www.outsidethebox.ms. Дата обращения: 21 ноября 2020. Архивировано 29 октября 2020 года.
- ↑ 1 2 Fragging wonderful: The truth about defragging your SSD (неопр.). Дата обращения: 20 октября 2017. Архивировано 22 августа 2017 года.
- ↑ Изменение скорости работы m.2 накопителя от изменения охлаждения (перегрев m.2) - YouTube (неопр.). www.youtube.com. Дата обращения: 7 января 2021. Архивировано 13 июля 2020 года.
- ↑ Disk Defragmenter Limitations in Windows 2000, Windows XP, and Windows Server 2003 (англ.). Help and Support. Microsoft (24 января 2007). Дата обращения: 27 сентября 2007. Архивировано 8 февраля 2012 года.
- ↑ Vleu.net: ShAkE (неопр.). Дата обращения: 27 сентября 2007. Архивировано 12 сентября 2007 года.
- ↑ Как узнать GPT или MBR диск на компьютере (рус.). remontka.pro. Дата обращения: 4 декабря 2020. Архивировано 18 января 2021 года.
- ↑ Управление томами и разделами (неопр.). help.gnome.org. Дата обращения: 20 января 2022. Архивировано 20 января 2022 года.
- ↑ Тип тома логический или основной – 4apple.org (рус.). Дата обращения: 20 января 2022. Архивировано 20 января 2022 года.
- ↑ Как выполнить дефрагментацию дисков в Windows (рус.). www.outsidethebox.ms. Дата обращения: 4 декабря 2020. Архивировано 29 октября 2020 года.
- ↑ Секреты планировщика заданий Windows — автоматическое обслуживание (рус.). www.outsidethebox.ms. Дата обращения: 5 декабря 2020. Архивировано 29 октября 2020 года.
ЛитератураПравить
- Peter Norton. Peter Norton’s Complete Guide to DOS 6.22. — Sams, 1994. P. 521. ISBN 0-672-30614-X
- Woody Leonhard, Justin Leonhard. Windows XP Timesaving Techniques For Dummies. — 2nd ed. — For Dummies, 2005. — 590 p. — ISBN 978-0764578830.
- Craig Jensen. Fragmentation: The Condition, the Cause, the Cure. Executive Software International, 1994. ISBN 0-9640049-0-9
- Dave Kleiman, et al. Winternals Defragmentation, Recovery, and Administration Field Guide. — Syngress, 2006. — 512 p. — ISBN 978-1597490795.
- Drew Robb. Server Disk Management in a Windows Environment. — Auerbach Publications, 2003. — 280 p. — ISBN 978-0849324321.
СсылкиПравить
- Oliver Diedrich. Tuning the Linux file system Ext3 (англ.). Heise Media UK Ltd. (27 октября 2008). Дата обращения: 13 ноября 2008. Fragmentation
В статье не хватает ссылок на источники (см. также рекомендации по поиску). |