Dlaczego dyski się fragmentują?


18

W ramach regularnej konserwacji systemu Windows defragmentuję dysk twardy. Ale dlaczego dysk twardy rozpada się na systemach NTFS i FAT *? Wygląda na to, że * nie, dlaczego? Czy powinienem również defragmentować dyski USB?


Nie usuwaj fragmentacji urządzeń półprzewodnikowych. Nawet w systemie Microsoft Windows. Jest zły dla urządzenia półprzewodnikowego i nie jest potrzebny.
ctrl-alt-delor

Odpowiedzi:


22

Fragmentacja nie jest problemem 30 lat temu. W tamtym czasie mieliście dyski twarde niewiele szybsze niż dyskietki i małe rozmiary pamięci procesora. Teraz masz bardzo szybkie dyski i duże pamięci procesorów, a czasem znaczne buforowanie na dysku twardym lub w kontrolerze. Ponadto rozmiary sektorów stały się większe (lub pliki są przydzielane w większych blokach), dzięki czemu więcej danych jest z natury ciągłych.

Systemy operacyjne stały się również inteligentniejsze. Podczas gdy DOS 1.x pobierałby każdy sektor z dysku zgodnie z odniesieniem, nowoczesny system operacyjny może zobaczyć, że masz plik otwarty do sekwencyjnego dostępu i może rozsądnie przewidzieć, że będziesz pobierał dodatkowe sektory po zużyciu te, które masz teraz. Dzięki temu może „pobierać” kolejne kilka (kilkanaście) sektorów.

Poza tym często lepiej jest nie mieć pliku ciągłego. W (dużym) systemie, w którym system plików jest rozproszony na wiele dysków, dostęp do pliku można uzyskać szybciej, jeśli jest on również „rozproszony”, ponieważ wiele dysków może wyszukiwać plik jednocześnie.

Defragmentuję co 2-3 lata, niezależnie od tego, czy moje urządzenie tego potrzebuje, czy nie.

[Dodam, że ważne jest nie tyle to, czy dane na dysku zostaną zdefragmentowane, ile wolnego miejsca. FAT był w tym okropny - chyba że zdefragmentowałeś rzeczy, to stawało się coraz gorzej, dopóki nie było dwóch sąsiadujących bloków wolnej przestrzeni. Większość innych schematów może łączyć wolne miejsce i przydzielać elementy w nieco „inteligentny” sposób, tak że fragmentacja osiąga pewien próg, a następnie stabilizuje się, zamiast się pogarszać.]


2
Nie zdefragmentowałem systemu od 2005 roku. Tam powiedziałem.
BlueRaja - Danny Pflughoeft

2
@BlueRaja, Jeśli wykonujesz wiele operacji dyskowych na magazynie rotacyjnym, defragmentacja pomaga. Ostatnio odkryłem, że uruchomienie kompilacji mojej aplikacji (2 GB kodu źródłowego i zasobów) jest o około 20% szybsze po defragmentacji, a pudełko miało około 1 miesiąca.
liori

2
Informacyjny i przydatny post, ale nie odpowiedź na pierwotne pytanie. Jestem zaskoczony, że to zaakceptowano.
EMP,

Nigdy nie defragmentowałem mojego systemu. Ma teraz około 10 lat. Właśnie zrobiłem skan po raz pierwszy, poziomy fragmentacji są bardzo niskie (2,3% niesąsiadujące). Korzystam z systemu plików ext4. Nigdy też nie przeprowadzałem skanowania antywirusowego; Nigdy nie ma problemu.
ctrl-alt-delor

13

Fragment WSZYSTKICH systemów plików. ext i inne systemy plików Linux fragmentują mniej ze względu na sposób, w jaki zostały zaprojektowane - cytując Wikipedię dotyczącą Przewodnika dla administratorów sieci Linux :

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 najbliższy innym blokom w pliku. Dlatego nie trzeba martwić się fragmentacją w systemie Linux.

Zauważyłem jednak, że ext4 ma defragmentację online, więc w końcu fragmentacja JEST problemem, nawet w systemach plików Linux.

Systemy plików Windows mają swoje klastry umieszczone tam, gdzie jest miejsce, aby je umieścić, a defragmentuje je i zastępuje. W systemie Linux pliki są preferencyjnie umieszczane tam, gdzie jest wystarczająco dużo miejsca.

Chciałbym jednak zauważyć, że Windows 7 ma zaplanowane działania defragmentacji, więc tak naprawdę nie jest konieczne ręczne uruchamianie defragmentacji.


Zwracam uwagę, że zaplanowana defragmentacja nie była domyślnie włączona na żadnym z moich komputerów.
Simon Sheehan,

5
ext* nie defragmentuje w miarę upływu czasu. trac.transmissionbt.com/ticket/849 i h-online.com/open/features/… . ext*minimalizuje fragmentację, przechowując ciągłe dane w losowych miejscach na dysku. Losowe przesunięcia rozkładają ciągłe pliki na dysk i zmniejszają potrzebę fragmentacji pliku.
ta.speot.is

Jakieś słowa o tym, jak Reiser / XFS unikają fragmentacji? Zawsze się nad nimi zastanawiałem, ale wydają się w dużej mierze nieudokumentowane w stosunku do ext.
new123456

1
edytowane w celu poprawienia mojej odpowiedzi, gdy te komentarze zostały wprowadzone. Ext4 robi defragmentację online z tego, co mogę powiedzieć. ext 2/3 nie.
Journeyman Geek

3
Domyślnie w systemie Windows 7 defragmentacja jest zaplanowana na środę o 1 w nocy. Jeśli komputer nigdy nie jest włączony, defragmentacja może nigdy nie wystąpić. Osobiście zaleciłbym, aby zezwolić na uruchamianie zaplanowanej co tydzień defragmentacji (lub w inny sposób co tydzień defragmentacji), ponieważ nie trwa to długo i zapewnia w 100%, że fragmentacja nigdy nie stanie się problemem.
jcrawfordor
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.