Содержание
В процессе работы файловых систем случается такое явление как фрагментация файла. Особенно это касается сильно заполненных дисков, да и разные файловые системы по-разному подвержены фрагментации. Попробую на пальцах объяснить что это такое.
Палец 1. Дисковое пространство до…
На определенном участке диска свободное место (белые кластеры).
Палец 2. Записали первый файл.
В кластеры по порядку записывается информация (данные о файле). Допустим, какой-то документ. Много текста набрали, целых шесть кластеров записали. Первый файл на диске. Я отметил на картинке его.
Палец 3. Записали второй файл.
Далее, мы скопировали на диск другой файл. Тоже, предположим, документ. Заняли ещё пять кластеров (я выделил его желтым цветом с цифрой 2). Второй файл записан, ничего необычного не наблюдается.
Палец 4. Дописали в первый файл.
И тут нам пришло в голову, что в нашем первом файле мы не учли важные детали! Дописываем новую информацию в конец. Но кластера-то после шестого заняты другим файлом. Выделяются новые кластеры, после второго файла, но так же принадлежащие первому файлу. Я отметил их красным цветом. Это – ФРАГМЕНТ.
Таких фрагментов у файла может стать очень много (если файл большой). Естественно, что процесс считывания такого файла существенно замедляется.
Система вынуждена мучить жесткий диск поиском всех фрагментов файла, которые, зачастую, могут оказаться далеко друг от друга, поэтому диск начинает “потрескивать”, собирая файл по кусочкам.
Ещё большая фрагментация начинается, когда диск переполнен и мы удалим второй файл (см. картинку выше). Тогда следующие части первого файла будут писаться не дальше в пустые кластеры (может просто не хватить места), а на место бывшего второго файла, т.е. не вправо, а влево от последнего занятого кластера. Вот это ещё больше замедляет скорость работы с таким файлом.
Для борьбы с этим неприятным явлением и придумана процедура дефрагментации.
Палец 5. Что такое дефрагментация.
По сути, вам уже должно быть ясно. Дефрагментация – это процесс перекладывания данных таким образом, что цепочка кластеров, составляющая один файл делается последовательной и непрерывной.
Я описал её на этих рисунках
- Исходное состояние;
- Освобождается достаточно места (файл 2 переносится на пустое место в конце), поэтому, кстати, программа дефрагметации требует, чтобы на диске оставалось около 10-15% свободного места для временного переноса данных;
- Все фрагменты файла соединяются в непрерывную цепочку;
- Все файлы укладываются последовательно, чтобы не оставалось пустот (сжатие файлов);
Для дефрагментации существует много утилит. Платные, дорогие и бесплатные программы. Лично я пользуюсь Auslogic Disk Defrag Portable, весит около 1500 Кбайт, очень шустрая и понятная в настройке. Несколько режимов дефрагменации.
Можно использовать штатный дефрагментатор Windows (или консольный defrag C:), кому что по душе.
Спасибо, очень доступно написано про фрагментацию и дефрагментацию. Какие способы есть для того, чтобы уменьшать фрагментацию?
Фрагментация – это естественный процесс. Увы, уменьшить её можно только ограничивая свои свободы. Например, не удалять файлы, а только записывать. Или использовать другие файловые системы (актуально для *nix). Да вообще, не париться за неё.