Czy muszę defragmentować systemy plików Unix?

24

Wiem, że systemy plików Windows są bardzo wrażliwe na fragmentację, a systemy Unix, takie jak UFS, ZFS, ext3 lub ext4, nie są tak wrażliwe.

Ale czy jest jakiś powód do defragmentacji tych systemów plików?

Jeśli tak, jakie narzędzia są do tego dostępne?

paulgreg
źródło
Większość współczesnych systemów plików nie wymaga ręcznej defragmentacji. Obejmuje to ext3, NTFS, UFS i inne.
Chris S
3
Chris, nie mogę komentować innych, ale NTFS z pewnością korzysta z defrag. To znacznie zmniejsza drżenie głowy spowodowane fragmentacją i w rezultacie skraca czas reakcji.
John Gardeniers
@JohnGardeniers Każdy FS, który obsługuje fragmentację, skorzysta na defragmentacji. Ale nie jest to konieczne, a spadek wydajności z powodu fragmentacji jest ograniczony w porównaniu do starszych systemów plików.
Chris S

Odpowiedzi:

15

Cytując stronę Wikipedii o systemie plików Ext3

Nowoczesne systemy plików Linux minimalizują fragmentację, utrzymując wszystkie bloki w pliku blisko siebie, nawet jeśli nie można ich przechowywać w kolejnych sektorach. Niektóre systemy plików, takie jak ext3, skutecznie przydzielają wolny blok, który jest najbliższy innym blokom w pliku. Dlatego nie trzeba martwić się fragmentacją w systemie Linux

Alnitak
źródło
Fragmentacja sumuje się jednak ... Próbuję wstrząsnąć, jak sugeruje Gert poniżej.
niebieskawy
9

W rzeczywistości NTFS nie jest wrażliwy na fragmentację. NTFS jest znacznie lepszy od FAT32 - pod każdym względem - i jest w pełni nowoczesnym systemem plików.

Używam Linuksa w domu od 1996 roku i nigdy nie defragmentowałem żadnego systemu plików. Nigdy nie miałem takiej potrzeby. Najbardziej zrobiłem w tym kierunku, zwracając uwagę na rodzaj plików, które będę umieszczał w systemie plików i korzystałem z odpowiednich opcji, kiedy to robię mkfs. Na przykład, jeśli system plików będzie zawierał głównie duże pliki, użyję większego rozmiaru bloku. Jeśli tworzę ogromny system plików, ale wiem, że nigdy nie będzie miał więcej niż 1 000 000 plików, skorzystam z -N 1000000opcji ograniczenia liczby i-węzłów. Ogólnie rzecz biorąc, dostosuję system plików podczas tworzenia do jego zadania, jeśli będzie go zamieszkiwał określony rodzaj pliku.

Eddie
źródło
6

Nie musisz defragmentować nie. Ale jeśli nadal chcesz to zrobić, zawsze możesz użyć shake'a .

Gert M.
źródło
3

Chociaż ext2 i ext3 tego nie zapewniają (i generalnie potrzebują go mniej, ponieważ utrzymują pliki względnie razem), ext4 zapewnia defragmentację . W tym artykule omówiono program e4defrag. Ale ext4 to nowy system plików.

Jednak w porównaniu do systemu Windows Linux systemy plików są znacznie lepsze w niefragmentowaniu, więc nie martwiłbym się tym.

Hamish Downer
źródło
1
ext2 i ext3 można defragmentować. Po prostu nie potrzebują tego w normalnych okolicznościach.
Eddie
pamiętaj, że Windows FS nigdy nie musiał być defragmentowany - NT3.51 przydzielał przestrzeń po obu stronach bloków, tak jak robi to ext3, ale MS z jakiegoś powodu zeskrobało to w NT4.
gbjbaanb
1

Jedynym dobrym powodem do defragmentacji systemu plików linux jest zmniejszenie wirtualnych dysków twardych, które się rozdęły.

Zero wypełnij nieużywane miejsce, defragmentuj, a następnie kompaktuj dysk wirtualny z menedżera VM.

Fiasco Labs
źródło
1

Możesz defragmentować system plików XFS (używając xfs_fsr [dev|file]) i btrfs (używającbtrfs filesystem defragment [file]

Podobnie jak w przypadku wszystkich innych, upewnij się, że masz co najmniej 80% wolnego lub kilkadziesiąt gigabajtów (w zależności od tego, który jest mniejszy) i nie powinieneś martwić się defragmentacją.

Hubert Kario
źródło