Czy jednoczesne pobieranie / kopiowanie plików sprzyja fragmentacji?

10

Czy jednoczesne zapisywanie więcej niż jednego pliku na partycji dysku twardego sprzyja fragmentacji? Czy te pliki będą zapisywane z przeplotem na dysku twardym?

Przykłady:

  • Pobieranie kilku plików jednocześnie z Internetu
  • Kopiowanie plików z różnych źródeł na tę samą partycję
  • Pobieram kilka torrentów

Czy różni się to w zależności od systemu operacyjnego? Czy przydzielanie miejsca a priori dla całego pliku jest funkcją specyficzną dla aplikacji?

Jonathan
źródło
Dobre pytanie. Mogę tylko zauważyć, że zależy to od dokładnej implementacji sterownika systemu plików, która jest węższa niż system operacyjny.
whitequark
4
To będzie złożona odpowiedź ... Tak, jest to specyficzne dla systemu operacyjnego i aplikacji. Niektóre aplikacje przydzielają miejsce, a niektóre nie. Czasami nie ma możliwości sprawdzenia z wyprzedzeniem, ile miejsca jest wymagane, aby ten rodzaj aplikacji mógł ulec fragmentacji. Będzie to także specyficzne dla systemu plików (być może używasz fat32 lub NTFS w systemie Windows)
Jarvin

Odpowiedzi:

7

Wiele zależy od używanego systemu plików, do pewnego stopnia systemu operacyjnego, a także programu otwierającego plik. Do aplikacji należy żądanie poprawnej ilości miejsca podczas tworzenia nowego pliku, a to system operacyjny i funkcje systemu plików wpływają na zachowanie otwierania i rozszerzania tych aplikacji, gdy nie wiedzą, ile miejsca pytać o.

Jeśli program poprosi system operacyjny o plik 4,2 GB, system operacyjny znajdzie kawałek wolnego miejsca z 4,2 GB wolnego miejsca. Jeśli to nie da programowi wystarczającej ilości fragmentów przestrzeni do zapisania pliku. Jest tu kilka zmiennych, to jest uproszczone.

Jeśli program poprosi system operacyjny o plik 4KB, system operacyjny go poda. Jeśli program nadal prosi o nowe ciągłe segmenty 4KB (pobierasz plik, a program nie wiedział, jak duży jest), dopóki nie otrzyma 4,2 GB miejsca, system operacyjny chętnie go zwolni. Dzieje się tak w przypadku różnic między systemem plików i systemem operacyjnym.

Na przykład XFS jest oparty na zakresie, więc dodane miejsce będzie ciągłe, dopóki nie będzie. Ponadto XFS można skonfigurować tak, aby wstępnie przydzielał nowe pliki pewną ilością miejsca, co może dodatkowo zminimalizować fragmentację (przydatne w woluminach pamięci maszyny wirtualnej, a także woluminach DVD ISO).

EXT2 / 3, NTFS i wierzę, że Reiser przydzieli ciągłe, dopóki nie będzie już więcej. Wtedy zaczną nowe fragmenty. Każdy fragment może mieć rozmiar 4KB.

Weźmy najgorszy przypadek. Dwa równoległe pliki 4,2 GB są zapisywane jednocześnie 4KB, w tym samym katalogu. „Ten sam katalog” jest częścią najgorszego przypadku, ponieważ niektóre kombinacje OS / FS próbują trzymać pliki w tym samym katalogu blisko siebie. W przypadku niektórych kombinacji OS / FS spowoduje to całkowite przeplatanie dwóch plików na dysku. W przypadku innych, którzy próbują przechowywać nowo otwarte pliki w różnych wolnych segmentach, fragmentacja może być w ogóle lub w ogóle niewielka.

Trochę na XFS (myślę, że ext4 i btrfs też mogą to zrobić). W takim przypadku przeplotem nie będzie 4KB, będzie to wszystko, na co ustawisz wartość wielkości przydziału podczas montowania woluminu. Ustaw go na 256 MB, a otrzymasz plik 4,2 GB z 17 fragmentami zamiast ponad miliona. Przydatne w przypadku woluminów przechowujących duże pliki, takie jak serwery multimediów. Nieprzydatne w przypadku woluminów przechowujących wiele dużych plików bitowych i kilka dużych.

Z tego powodu klienci Bittorrent albo otwierają rzadkie pliki podczas rozpoczynania nowego pobierania, albo po prostu przydzielają określony rozmiar przed rozpoczęciem.

Podczas kopiowania plików z różnych części tej samej partycji (lub cholery, nawet z innych partycji) proces kopiowania teoretycznie wie, jak duże są skopiowane pliki, dlatego od samego początku żąda od systemu operacyjnego przestrzeni o odpowiednim rozmiarze; nie trzeba dołączać przydziałów dla nowych plików.

SysAdmin1138
źródło