В рамках регулярного обслуживания Windows я дефрагментирую свой жесткий диск. Но почему жесткий диск фрагментируется в системах NTFS и FAT *? Кажется, ext * нет, почему это? Должен ли я также дефрагментировать мои USB-накопители?
2 ответа
Фрагментация не та проблема, которой она была 30 лет назад. В то время у вас были жесткие диски, которые были чуть быстрее, чем дискеты, и размеры памяти процессора были крошечными. Теперь у вас очень быстрые диски и большой объем памяти процессора, а иногда и существенная буферизация на жестком диске или в контроллере. Плюс размеры секторов стали больше (или файлы размещены в больших блоках), так что больше данных по своей природе являются смежными.
Операционные системы стали умнее. В то время как DOS 1.x извлек бы каждый сектор с диска в том виде, в котором на него ссылались, современная ОС может увидеть, что у вас есть файл, открытый для последовательного доступа, и может разумно предсказать, что вы будете извлекать дополнительные сектора после того, как вы использовали те, что у вас есть сейчас. Таким образом, он может «предварительно извлекать» следующие несколько (десяток) секторов.
И часто лучше, чтобы файл не был смежным. В (большой) системе, где файловая система распределена по нескольким дискам, к файлу фактически можно получить доступ быстрее, если он также "распространен", поскольку несколько дисков могут искать файл одновременно.
Я дефрагментирую каждые 2-3 года, нужна ли моя коробка или нет.
[Я добавлю, что важна не столько дефрагментация данных на диске, сколько свободное пространство. FAT был ужасен в этом - если вы не дефрагментируете, все будет становиться все хуже и хуже, пока не будет двух смежных блоков свободного пространства. Большинство других схем могут объединять свободное пространство и распределять фрагменты "умным" образом, так что фрагментация достигает определенного порога и затем стабилизируется, а не становится все хуже и хуже.]
ВСЕ фрагмент файловой системы. ext и другие файловые системы Linux менее фрагментированы благодаря тому, как они спроектированы - процитирую Википедию относительно Руководства сетевого администратора Linux:
Современные файловые системы Linux поддерживают минимальную фрагментацию, сохраняя все блоки в файле близко друг к другу, даже если они не могут быть сохранены в последовательных секторах. Некоторые файловые системы, такие как ext3, эффективно выделяют свободный блок, ближайший к другим блокам в файле. Поэтому нет необходимости беспокоиться о фрагментации в системе Linux.
Хотелось бы отметить, что ext4 имеет оперативную дефрагментацию, поэтому в конечном итоге фрагментация становится проблемой даже для файловых систем Linux.
Файловые системы Windows размещают свои кластеры там, где есть место для их размещения, и дефрагментация запускается и заменяет их. В Linux файлы размещаются преимущественно там, где достаточно места.
Однако я хотел бы отметить, что в Windows 7 запланированы дефрагментации, поэтому запускать дефрагментацию вручную не обязательно.