Mam następujące urządzenia z Linux Mint 18.1 na laptopach i GNU / Linux Debian 9 na serwerze.
(Wszystkie są 64-bitowe i mają pulpit Cinnamon).
Wszystkie urządzenia napędowe są sformatowane w systemie plików ext4 ; RAID 1 jest wykonywany przy użyciu mdadm
.
-
Laptop z 1 dyskiem SSHD (nie mylić z dyskiem twardym).
-
Laptop z 3 dyskami: 2 x konsumenckie dyski twarde w RAID 1 i 1 x SSD.
-
Serwer z 5 dyskami: 4 x korporacyjne dyski twarde dwukrotnie RAID 1 i 1 x SSD.
Mam system na tych dyskach SSD i nigdy nie zdefragmentowałbym dysku SSD.
Pytanie dotyczy dysków twardych i dysków SSHD.
Znalazłem stary plik PDF przedstawiający kilka dodatkowych funkcji e4defrag
.
-
Dlaczego system plików musi być zamontowany, zgodnie z tym komunikatem o błędzie podczas próby defragmentacji odmontowanego systemu plików? Chcę zrozumieć, dlaczego tak jest:
Filesystem is not mounted
-
Chciałbym mieć zaimplementowaną defragmentację wolnego miejsca. AFAIK jest teraz w trakcie przeglądu. Czy mogę np. skompilować
e4defrag
ze źródła z tymi opcjami dostępnymi, czy tak czy inaczej?e4defrag -f /deviceOrDirectory
-
Chciałbym też lubię używać odpowiednich funkcji danych:
e4defrag -r /deviceOrDirectory
Mam wiele ważnych powodów, by sądzić, że fragmentacja na tych maszynach zwalnia prędkość odczytu, przykład:
-
Pobrane z serwera z dyskami RAID 1 :
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ]
-
Zrobione z laptopa za pomocą RAID 1 Dyski twarde:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ]
Jak widać, podczas defragmentacji nie udało się nawet umieścić pliku 31 bloków w 1 części. Oczywiście można argumentować, że jest to plik filmowy, więc nie ma to znaczenia. Prawda, ale tylko w tym przypadku.
Polecenie, którego używam do rozpoczęcia defragmentacji:
-
Na serwerze:
sudo e4defrag -v /dev/md1
-
Na laptopie:
sudo e4defrag -v /raid1/
Tak wydaje się nie mieć znaczenia, czy wywołuję polecenie używając nazwy urządzenia czy katalogu.
Czy możesz wskazać mi właściwy kierunek?
Komentarze
- Masz wyniki pomiarów wskazujące na defragmentację jako źródło wolnego dostępu? Jeśli tak, to które? W większości przypadków ' nie trzeba przeprowadzać ręcznej defragmentacji w systemach plików ext4, o ile jest wystarczająco ' miejsca aby algorytm alokacji automatycznie zdefragmentował go podczas normalnej pracy.
- @dirkt Do tej pory nie wykonano żadnych pomiarów. Nie ' nie spieram się, czy defragmentacja systemu plików
ext4
jest skuteczna, czy nie. Pytania są jasne: jak to zrobiće4defrag -r
ie4defrag -f
.
Odpowiedź
e4defrag
wymaga zamontowania systemu plików, ponieważ prosi sterownik systemu plików jądra o wykonanie defragmentacji, nie robi tego t zrób to sam.
Jeśli chodzi o defragmentację wolnego miejsca i odpowiednią defragmentację plików, poprawki nigdy nie zostały ukończone; ostatnia wzmianka na odpowiedniej liście mailingowej pochodzi z 2014 r. :
e4defrag
znajduje się we2fsprogs
, a kod jest nadal utrzymywany i ulepszany. W szczególności Dmitrij Monachow dodał wiele „testów tortur” i znalazł szereg warunków rasowych w podstawowym kodzie jądra. Niedawno wysłał również refaktor kodu jądra, który znacznie go ulepszył i (zmniejszył rozmiar ext4 o 550 linii kodu).Biorąc to pod uwagę, nie było żadnego prawdziwego rozwoju funkcji dla
e4defrag
już od jakiegoś czasu. Dyskutowano o tym, jakie interfejsy API jądra mogą obsługiwać tę funkcję, ale nigdy nie było gotowej propozycji interfejsu API, nie mówiąc już o implementacji.
Wątpię, czy jest obecnie coś wartego przetestowania.
e4defrag --version
mówie4defrag 1.45.5 (07-Jan-2020)
.e4defrag
pod adresem czas. Jest to nadal w pełni obsługiwana część Ext4, ale nie można jej używać we wszystkich przypadkach (systemów plików z bigalloc nie można defragmentować, dziennikowanie danych jest niezgodne z defragmentacją, a i-węzły DAX i zaszyfrowane pliki nie mogą być przenoszone). li>