Энциклопедия системного администратора Linux

         

Борьба с фрагментацией


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

Файловая система ext2 пытается уменьшить фрагментацию, храня все блоки в файле близко друг к другу, даже если они не могут быть сохранены в последовательных секторах. Ext2 действительно всегда распределяет свободный блок, который является самым близким к другим блокам в файле. Для ext2, следовательно редко нужно беспокоиться относительно фрагментации. Имеется программа для дефрагментации файловой системы ext2, но необходимость в ней бывает редко.

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



Содержание раздела