Почему в Linux не нужна дефрагментация

Пользователи, которым посчастливилось избавиться от рабства Windows и перейти на свободный Линукс, часто удивляются, узнав, что в Линуксе нет программы дефрагментации диска. Как же так? Чем дефрагментировать?

Ответ заключается в том, что в случае Линукса, операционная система работает на пользователя, а не пользователь обслуживает операционную систему. Файловая система Линукса не нуждается в дефрагментации, борясь с этим неприятным явлением самостоятельно. Авторы заметки «HTG Explains: Why Linux Doesn’t Need Defragmenting» объясняют почему так произошло. Если кратко, то суть статьи можно свести к следующему.

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

В NTFS разработчики решили поступить чуть умнее, оставляя вокруг каждого файла "буферную зону" из свободного пространства, которое затем может использоваться, если объем файла увеличится. Иногда такой метод работает, иногда нет, но в итоге пользователю все равно приходится проводить дефрагментацию, чтобы вернуть прежнюю производительность.

Разработчики Линукса решили проблему фрагментации, причем сделали это простым и изящным способом. В файловых системах Ext2, Ext3 и Ext4 новые файлы равномерно "раскидываются" по всему диску. При увеличении объема файла используется все доступное свободное пространство между файлами и фрагментации, в большинстве случаев, не происходит. А если она все же и происходит, то файловая система в фоновом режиме старается переносить дефрагментированные файлы в другое место, где фрагменты могут быть объединены. Таким образом, отдельные и регулярные процедуры дефрагментации не требуется.

Кстати, с таким фоновым переносом фрагментов файлов связана одна интересная особенность файловых систем Ext. Если диск заполнен более чем на 95% (80% по другим данным), то фрагментация все же возможна. Чтобы предупредить снижение скорости чтения и записи файлов в этом случае следует задуматься о покупке нового, более просторного диска. Если этот вариант не для вас, то существует одна хитрость, позволяющая избавиться от фрагментации даже в случае переполненного диска. Перепишите все файлы фрагментированного раздела в другой раздел, а потом скопируйте обратно. Файловая система сама более разумно разместит вновь записываемые файлы, что позволит избавиться от фрагментации.

Ваша оценка: Нет Средняя оценка: 4.9 (7 votes)
a

Всё ОК. На ext4 проверял. Но это срамота:
> Перепишите все файлы фрагментированного раздела в другой раздел, а потом скопируйте обратно.

Ваша оценка: Нет Средняя оценка: 3.7 (3 votes)
9
comrade

Да уж, из предыдущего содержания следует другой совет – не засирать системный диск больше чем на 80%, только и всего!

((-:

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
8

>> А если она все же и происходит, то файловая система в фоновом режиме старается переносить дефрагментированные файлы в другое место, где фрагменты могут быть объединены. Таким образом, отдельные и регулярные процедуры дефрагментации не требуется.

Кстати, в Windows ещё со времён XP, если компьютер простаивает в течение 5 минут, то запускается фоновая дефрагментация.

Увы, но тут-то как раз нас и бьёт разнообразие файловых систем. Если ext4 и умеет автоматически (как и вручную через e4defrag) дефрагментироваться, то, например, ReiserFS (даже в 4 версии) этого не умеет. Как и более старые версии ext2/3.

=================================================

А полноценная графическая программа, которая хотя бы работала бы как интерфейс к дефрагментаторам различных ФС, всё равно не помешала бы.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
a

>Файловая система Линукса не нуждается в дефрагментации

>файловая система в фоновом режиме старается переносить дефрагментированные файлы в другое место

у меня парсер сломался. файловая система не нуждается в дефрагментации, но фрагментированные (да, именно ФРАГМЕНТИРОВАННЫЕ - от слова "фрагмент") файлы в ней появляются

Ваша оценка: Нет Средняя оценка: 1 (1 vote)
8

Имеется в виду, что Ext4 значительно меньше подвержена фрагментации, чем FAT и NTFS, и даже в случае её появления предусмотрено автоматическое от неё избавление.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

Трудно, наверное, жить с таким болезненным парсером? ;) Вот Вам еще "разрыв шаблона": на диске часто появляются сбойные сектора, но несмотря на слово "сбойный" их появление... о чудо... не приводит к сбою, т.к. битые сектора незаметно для юзера подменяются на целые в запасной области (на физическом уровне) или помечаются как неиспользуемые на уровне файловой системы.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

ntfs давно устарела по своим потребительским свойствам (ужасно тормозит на маленьких файлах, требует периодической штатной дефрагментации), но и в e2fsprogs появилась такая программка, как e4defrag :) Не зря, видимо. А в xfs она изначальна была, jfs подвержена ей почти также, как ntfs (корни-то одни), в btrfs-utils тоже есть программа для дефрагментации. В общем, при активной работе с файлами любая ФС загадится, другое дело, что с ext4 это произойдет гораздо позже, чем в винде, и тогда придется или запускать дефрагментатор, или копировать на другой винт, что частенько советуют в разных книгах и статьях по линюкс - согласитесь, совет из разряда нелепых, поэтому с появлением штатной утилиты для ext4 он наконец-то ушел в небытие. Но говорить о том, что в линюкс дефргаментации нет, - в корне не верно. Есть она, но по сравнению с виндой она является почти не значительным явлением и значительно более труднодостижима при одних и тех же рабочих условиях.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

В ext4 и ext3 тоже, если мне не изменяет память, часть раздела резервируется. Это примерно 10%. Даже если заполнить диск на 100%, вдруг окажется, что лишние мегабайты как-то записались. потом, конечно, всё равно придётся место освобождать, но возможно эти самые 10% и позволяют в фоне проводить дефрагментацию.

Ваша оценка: Нет
a

Избавьтесь от рабства механических дисков — купите SSD и забудьте про дефрагментацию, тормоза, начало и конец диска, и дурацкие споры о том кто круче :)

Ваша оценка: Нет
11
pomodor

Так дороговато пока. Из рабства механических дисков можно уйти лишь в финансовое рабство производителей SSD. Хотя не спорю, SSD — штука прекрасная и сам планирую начать активно пользоваться технологией. Как только цена упадет до тысяч трех за 512 Гб модель. ;)

Ваша оценка: Нет Средняя оценка: 4 (1 vote)
a

Абсолютная нелогичность утверждений заключается в их категоричности. Простое опровержение этого мифа: запишите на 100гиговый диск 1000 мелких файлов, предположим система их равномерно распределила по 10 на 1 гиг, а теперь пробуем записать 1гиг одним файлом поверх равномерно рассыпаных мелких файлов — сдаётся мне, что без фрагментации тут не обойдётся, либо будет нужна какая-то подготовка к записи большого куска — по сути, динамическая дефрагментация.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

Кстати, интересный случай. Какое решение будет более быстрым: разделить на куски большой файл или предварительно перенести мелкие в одну кучу.

Ваша оценка: Нет
a

Разделить файл можно быстро, таблица же есть. А над переносом мелких в одно место надо вычсления производить, искать по таблице, то дрефраглер и делает.
В Линукс фрагментация идет с самого начала (из-за "защиты" от сбоев, которая отчасти есть и в NTFS). Здесь же любой файл, когда пишется, изначально разбивается на множество кусочков по 200 Кб (хотя да, сначала они идут последовательно). Между кусочками какая-то служебная информация (байты #01,#00... по один и два кило длиной). Если работать с Линукс как и с виндой, то очень скоро система начинает тупить. Дефрагментатор не помешал бы.

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.