Defragmentowanie partycji ext?


Odpowiedzi:


10

Nowoczesne systemy plików, szczególnie te zaprojektowane z myślą o wydajności w przypadkach użycia przez wielu użytkowników i / lub wielozadaniowość, wykonują dobrą robotę polegającą na nie fragmentowaniu danych, dopóki systemy plików nie staną się prawie pełne (nie ma dokładnej liczby określającej, gdzie „prawie do pełnego” „znak jest, ponieważ zależy od tego, jak duży jest system plików, rozkład rozmiarów plików i jakie są twoje wzorce dostępu - często podaje się liczby od 85% do 95%) lub wzorzec tworzenia i zapisywania plików jest nietypowy lub system plików jest bardzo stary, więc widział wiele „akcji”. Obejmuje to ext2 / 3/4, reiser, btrfs, NTFS, ZFS i inne.

Obecnie nie ma sposobu na defragmentację ext3 lub 4 na poziomie jądra / systemu plików ( więcej informacji można znaleźć na stronie http://en.wikipedia.org/wiki/Ext3#Defragmentation ), choć planowane jest, aby ext4 wkrótce zyskał online defragmentacja.

Istnieją narzędzia dla użytkowników lądowych (takie jak http://vleu.net/shake/i inne wymienione w tym artykule na Wikipedii), które próbują defragmentować pojedyncze pliki lub zestawy plików przez ich kopiowanie / przepisywanie - jeśli jest wystarczająco duży blok wolnego miejsca, zazwyczaj powoduje to, że plik otrzymuje ciągły blok. W żaden sposób nie gwarantuje to, że pliki są blisko siebie, więc jeśli potrząśniesz parą dużych plików, które znajdziesz, spowoduje to, że dwa pliki zostaną same zdefragmentowane, ale nie będą znajdować się w pobliżu siebie na dysku. W systemie plików dla wielu użytkowników lokalizacja plików między sobą nie jest często ważna (jest z pewnością mniej ważna niż fragmentacja samych plików), ponieważ głowice napędowe obracają się w różnych miejscach, aby obsługiwać różnych użytkowników ”

Jeśli masz system plików, który z czasem ulegał znacznej fragmentacji i obecnie ma sporo wolnego miejsca, uruchomienie czegoś takiego jak shakena wszystkich jego plikach może mieć efekt, którego szukasz. Inną metodą byłoby skopiowanie wszystkich danych do nowego systemu plików, usunięcie oryginału, a następnie skopiowanie go ponownie. Pomaga to w podobny sposób shake, ale może być szybsze w przypadku większych ilości danych.

W przypadku niewielkich fragmentacji nie martw się o to. Wiem, że ludzie, którzy spędzają więcej czasu, oglądają paski postępu defragmentacji, niż kiedykolwiek zaoszczędzą (dzięki bardziej wydajnemu dostępowi do dysku) w ciągu kilku okresów normalnej pracy!


czy istnieje jakiś mechanizm, taki jak: pliki, których często używa się podczas uruchamiania, umieszcza się blisko siebie, aby uzyskać korzyści z lokalizacji? tak szybszy rozruch?
uray

1
Nie żebym o tym wiedział. Możesz użyć ureadahead, tak jak robią to ostatnio kompilacje Ubuntu (zobacz ubuntuforums.org/showthread.php?t=1434502 , aby uzyskać więcej informacji), aby uzyskać podobny efekt. Niektóre opóźnienia w sekwencji rozruchowej Linuksa można zmniejszyć, prosząc go o uruchamianie usług bardziej współbieżnie tam, gdzie to możliwe, jeśli konfiguracja rozruchowa twojego disco obsługuje to (ustaw CONCURRENCY = shell w / etc / defaults / rc na Debianie) i podobne poprawki. Aby sprawdzić, czy robisz różnicę za pomocą wprowadzanych zmian, użyj bootchart.org, aby pokazać, co się dzieje przed poprawieniem rzeczy w porównaniu do później.
David Spillett,

@uray, ożywiłem dawno porzucone e2defragi eksperymentowałem z tym, aby osiągnąć takie pakowanie. Można go znaleźć na stronie launchpad.net/e2defrag .
psusi

@David: Nie mam /etc/defaults/rcale mam /etc/default/rcSna Debianie 6
ctrl-alt-delor

@psusi - Czy to e2defragteraz lepiej obsługuje Ext3, lepiej niż shake?
Alex S

0

Fragmentacja nie jest zbyt duża, dopóki dysk nie jest zbytnio zapełniony (więc nie wypełniaj go zbyt mocno, jeśli możesz go uniknąć).


2
więc jeśli dysk jest zapełniony, czy musimy go zdefragmentować?
uray
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.