Почему диски фрагментируются?

18

В рамках регулярного обслуживания Windows я дефрагментирую свой жесткий диск. Но почему жесткий диск фрагментируется в системах NTFS и FAT *? Кажется, ext * нет, почему это? Должен ли я также дефрагментировать мои USB-накопители?

Саймон Шихан
источник
Не фрагментируйте твердотельные устройства. Даже на Windows от Microsoft. Это плохо для твердотельного устройства и не нужно.
ctrl-alt-delor

Ответы:

22

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

Операционные системы также стали умнее. В то время как DOS 1.x извлек бы каждый сектор с диска в том виде, в котором на него ссылались, современная ОС может увидеть, что у вас есть файл, открытый для последовательного доступа, и может разумно предсказать, что вы будете извлекать дополнительные сектора после того, как вы использовали те, что у вас есть сейчас. Таким образом, он может «предварительно извлекать» следующие несколько (десяток) секторов.

И часто лучше не иметь смежных файлов. В (большой) системе, где файловая система распределена по нескольким дискам, к файлу фактически можно получить доступ быстрее, если он также «распределен», поскольку несколько дисков могут искать файл одновременно.

Я дефрагментирую каждые 2-3 года, нужна ли моя коробка или нет.

[Я добавлю, что важно не столько дефрагментация данных на диске, сколько свободное пространство. FAT был ужасен в этом - если вы не дефрагментируете, все будет становиться все хуже и хуже, пока не будет двух смежных блоков свободного пространства. Большинство других схем могут объединять свободное пространство и распределять фрагменты несколько «умным» образом, так что фрагментация достигает определенного порога и затем стабилизируется, а не становится все хуже и хуже.]

Даниэль Р Хикс
источник
2
Я не дефрагментировал систему с 2005 года. Там я это сказал.
BlueRaja - Дэнни Пфлюгофт
2
@BlueRaja, если вы выполняете много дисковых операций на ротационном хранилище, дефрагментация помогает. Недавно я обнаружил, что запуск сборки моего приложения (2 ГБ исходного кода и ресурсов) происходит приблизительно на 20% быстрее после дефрагментации, а сроку действия пакета ~ 1 месяц.
Лиори
2
Информативный и полезный пост, но не ответ на оригинальный вопрос. Я удивлен, увидев это принято.
EMP
Я никогда не дефрагментировал свою систему. Сейчас около 10 лет. Я только что сделал сканирование в первый раз, уровни фрагментации очень низки (2,3% несмежных). Я использую файловую систему ext4. Также я никогда не запускал проверку на вирусы; Никогда не проблема.
ctrl-alt-delor
13

ВСЕ фрагмент файловой системы. ext и другие файловые системы Linux меньше фрагментируются благодаря тому, как они спроектированы - цитируя Википедию относительно Руководства сетевого администратора Linux :

Современные файловые системы Linux поддерживают минимальную фрагментацию, сохраняя все блоки в файле близко друг к другу, даже если они не могут быть сохранены в последовательных секторах. Некоторые файловые системы, такие как ext3, эффективно выделяют свободный блок, ближайший к другим блокам в файле. Поэтому нет необходимости беспокоиться о фрагментации в системе Linux.

Хотелось бы отметить, что ext4 имеет оперативную дефрагментацию, поэтому в конечном итоге фрагментация становится проблемой, даже с файловыми системами Linux.

Файловые системы Windows размещают свои кластеры там, где есть место для их размещения, и дефрагментация запускается и заменяет их. В Linux файлы размещаются преимущественно там, где достаточно места.

Хотелось бы отметить, что в Windows 7 запланированы дефрагментация, поэтому запускать дефрагментацию вручную не обязательно.

Подмастерье Компьютерщик
источник
Я отмечаю, что запланированная дефрагментация не была включена по умолчанию ни на одном из моих компьютеров.
Саймон Шихан
5
ext* не дефрагментирует по мере продвижения. trac.transmissionbt.com/ticket/849 и h-online.com/open/features/… . ext*минимизирует фрагментацию, храня непрерывные данные в произвольных местах на диске. Случайные смещения распределяют смежные файлы по всему диску и уменьшают необходимость фрагментации файла.
ta.speot.is
Любое слово о том, как Reiser / XFS избежать фрагментации? Я всегда задавался вопросом о них, но они кажутся в значительной степени недокументированными по отношению к доп.
new123456
1
отредактировано, чтобы исправить мой ответ, пока эти комментарии были сделаны. Ext4 ДЕЛАЕТ онлайн дефрагментацию от того, что я могу сказать. доб 2/3 нет.
Подмастерье Компьютерщик
3
По умолчанию в Windows 7 дефрагментация запланирована на среду в 1:00. Если ваш компьютер никогда не включается, дефрагментация может никогда не произойти. Я лично рекомендую вам разрешить выполнение еженедельной запланированной дефрагментации (или иным образом дефрагментировать еженедельно), потому что это не займет много времени и на 100% гарантирует, что фрагментация никогда не станет проблемой.
Джроуфордор