Нужно ли дефрагментировать файловые системы Unix?

24

Я знаю, что файловые системы Windows очень чувствительны к фрагментации, а Unix, такие как UFS, ZFS, ext3 или ext4, не так чувствительны.

Но есть ли причина дефрагментировать эти файловые системы?

Если да, какие инструменты для этого доступны?

paulgreg
источник
Большинство файловых систем mornern в целом не требуют ручной дефрагментации. Это включает в себя ext3, NTFS, UFS и другие.
Крис С
3
Крис, я не могу комментировать других, но NTFS наверняка выиграет от дефрагментации. Это значительно уменьшает головную боль, вызванную фрагментацией, и, как следствие, уменьшает время отклика.
Джон Гарденье
@JohnGardeniers Каждая ФС, которая поддерживает фрагментацию, получит выгоду от дефрагментации. Но в этом нет необходимости, и снижение производительности из-за фрагментации ограничено по сравнению со старыми файловыми системами.
Крис С

Ответы:

15

Цитировать страницу Википедии о файловой системе Ext3

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

Альнитак
источник
Фрагментация складывается, хотя .. Я пытаюсь встряхнуть, как предложено Гертом ниже.
синеватый
9

На самом деле NTFS не так чувствительна к фрагментации. NTFS значительно лучше, чем FAT32 - во всех отношениях - и является полностью современной файловой системой.

Я использую Linux дома с 1996 года и никогда не дефрагментировал ни одну файловую систему. У меня никогда не было необходимости. Самое большее, что я сделал в этом направлении, это уделил внимание типам файлов, которые я буду помещать в файловую систему, и использую соответствующие параметры, когда я mkfs. Например, если файловая система будет в основном содержать большие файлы, я буду использовать блок большего размера. Если я создаю огромную файловую систему, но знаю, что в ней никогда не будет более 1 000 000 файлов, тогда я воспользуюсь -N 1000000опцией, чтобы ограничить число inode. В общем, я настрою файловую систему при ее создании под ее задачу, если файл определенного типа будет заполнять ее.

Эдди
источник
6

Вам не нужно дефрагментировать нет. Но если вы все еще хотите это сделать, вы всегда можете использовать Shake .

Герт М
источник
3

В то время как ext2 и ext3 этого не обеспечивают (и, как правило, нуждаются в этом меньше, поскольку они, во-первых, сохраняют файлы относительно вместе), ext4 обеспечивает дефрагментацию . В этой статье рассказывается о программе e4defrag. Но ext4 - это новая файловая система.

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

Хэмиш Даунер
источник
1
ext2 и ext3 могут быть дефрагментированы. Им просто не нужно это в нормальных условиях.
Эдди
имейте в виду, что Windows FS тоже не нужно было дефрагментировать - NT3.51 раньше выделял пространство с обеих сторон блоков, как это делает ext3, но затем MS почему-то отменил это в NT4.
gbjbaanb
1

Единственная веская причина для дефрагментации файловой системы Linux - сокращение виртуальных жестких дисков.

Обнуление неиспользуемого пространства, дефрагментация и сжатие виртуального диска из менеджера виртуальных машин.

Fiasco Labs
источник
1

Вы можете дефрагментировать файловую систему XFS (используя xfs_fsr [dev|file]) и btrfs (используяbtrfs filesystem defragment [file]

Что касается всех остальных, просто убедитесь, что у вас есть как минимум 80% свободных или несколько десятков гигабайт (в зависимости от того, что меньше), и вам не следует беспокоиться о дефрагментации.

Хьюберт Карио
источник