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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Фрагментация и дефрагментация файловой системы типа FAT

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

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

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

Причины фрагментации файлов[править | править код]

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

Когда фрагментированных файлов становится много, скорость работы жесткого диска с фрагментированными файлами уменьшается, поскольку возникают задержки на физическое перемещение головки жесткого диска между разделёнными фрагментами[1]. Более того, общая фрагментация жесткого диска замедляет не только скорость работы с уже существующими файлами, но и существенно замедляет запись новых.

Типы дефрагментации[править | править код]

  • "Быстрая" дефрагментация — дефрагментируются только фрагментированные файлы, свободное же место не дефрагментируется. Выполняется в несколько раз быстрее полной дефрагментации. Ускоряется работа с уже существующими файлами. Скорость работы с создаваемыми или изменяемыми файлами ускоряется незначительно.
  • Дефрагментация свободного места — дефрагментация только свободного пространства, файлы же остаются фрагментированными, иногда даже больше, чем до дефрагментации. Намного ускоряет запись новых файлов. Используется крайне редко.
  • Полная дефрагментация — одновременно дефрагментируется и свободное место, и сами файлы. Может выполняться несколько часов на больших дисках. Ускоряет работу как с новыми файлами, так и с уже существующими.
  • Оптимизация — помимо дефрагментации перемещает физически в начало диска мелкие и важные для работы системы файлы и перемещает в конец диска большие или те, что редко используются. Может дать незначительный прирост общей производительности жесткого диска.

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

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

Необходимость дефрагментации[править | править код]

Для файловых систем[править | править код]

Дефрагментация чаще всего требуется для таких файловых систем, как File Allocation Table (FAT16, FAT32) для операционных систем MS-DOS и Microsoft Windows, так как в программах для работы с ними обычно не предусмотрено никаких средств для предотвращения фрагментации (за редкими исключениями - TeraCopy[4]), и она появляется даже на почти пустом диске и небольшой нагрузке.

Для разных носителей[править | править код]

Фрагментация не обязательно носит негативный характер. Иногда она намеренно используется для увеличения срока службы SSD[5].

Здоровье жесткого диска[править | править код]

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

Для флеш-памяти[править | править код]

Флэш-память является памятью с прямым доступом, в которой время доступа к любой ячейке сравнительно мало и одинаково вне зависимости от её адреса, и записывает данные в так называемом scattershot-mode, когда только сам контроллер памяти знает о реальном расположении фрагментов. Кроме того, ячейки полупроводниковых накопителей выдерживают только ограниченное число циклов перезаписи. Поэтому выполнять дефрагментацию на флэш-накопителях и SSD не только неэффективно, но и вредно[6]. Программы дефрагментации могут ускорить работу SSD-накопителя, но не прибегая к дефрагментации[6].

Программное обеспечение[править | править код]

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

Файловые системы[править | править код]

  • FAT: MS-DOS 6.x и Windows 4.x содержат утилиту Defrag. Версия для DOS основана на Norton SpeedDisk, версия для Windows — на Diskeeper.
  • NTFS: Windows NT 5 и новее содержат дефрагментатор, основанный на Diskeeper. Windows NT 4 и ранее не имели встроенных утилит для дефрагментации.[7]
  • ext2 использует дефрагментатор e2defrag.
  • ext3: e2defrag может работать с ext3, только если её временно преобразовать в ext2. Вместо этого можно использовать дефрагментатор, не зависящий от файловой системы — например, Shake.[8]
  • ext4: e4defrag, работающий за счет создания экстентов и перемещения в них файлов.
  • Btrfs: используется встроенный оффлайн-дефрагментатор. Опционально поддерживается автоматическая дефрагментация ФС.
  • XFS: онлайн-дефрагментатор xfs_fsr.
# xfs_fsr -v /dev/sdX1
  • Информацию о фрагментированности файла можно получить с помощью утилиты filefrag из пакета e2fsprogs.

Дефрагментация вручную и предотвращение фрагментации[править | править код]

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

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

Помогает использование отдельного раздела для часто изменяемых файлов. Например, в Unix-подобных ОС на отдельных разделах часто размещаются пользовательские данные и настройки (каталог /home), временные файлы (/tmp), протоколы, кэши и др. (/var); см. также FHS.

Примечания[править | править код]

  1. Joe Kinsella Impact of Disk Fragmentation
  2. Дефрагментация при загрузке Windows | Энциклопедия Windows. windata.ru. Дата обращения 9 января 2019.
  3. Создание мультизагрузочного USB HDD или флешки. habr.com. Дата обращения 13 января 2019.
  4. [Plugin Request ����������� ��� ������������ ������ :: Total Commander]. forum.wincmd.ru. Дата обращения 13 января 2019.
  5. Опыт переезда на SSD: продолжение. habr.com. Дата обращения 8 января 2019.
  6. 1 2 Fragging wonderful: The truth about defragging your SSD
  7. Disk Defragmenter Limitations in Windows 2000, Windows XP, and Windows Server 2003 (англ.). Help and Support. Microsoft (24 января 2007). Дата обращения 27 сентября 2007. Архивировано 8 февраля 2012 года.
  8. Vleu.net: ShAkE

Литература[править | править код]

  • 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.

Ссылки[править | править код]