Am următoarele dispozitive cu Linux Mint 18.1 pe laptopuri și GNU / Linux Debian 9 pe server.
(Toate sunt pe 64 de biți și cu desktop Cinnamon.)
Toate dispozitivele de unitate sunt formatate cu sistem de fișiere ext4 ; RAID 1 se realizează utilizând mdadm
.
-
Laptop cu 1 SSHD (nu trebuie confundat cu HDD).
-
Laptop cu 3 unități: 2 x HDD-uri de consum în RAID 1 și 1 x SSD.
-
Server cu 5 unități: 4 x HDD-uri de întreprindere în două ori RAID 1 și 1 x SSD.
Am sistemul pe aceste SSD-uri și nu aș defragmenta niciodată un SSD.
Întrebarea este despre HHD-uri și SSHD-uri.
Am găsit un PDF vechi care prezintă alte câteva caracteristici pentru e4defrag
.
-
De ce trebuie montat sistemul de fișiere, conform acestui mesaj de eroare atunci când se încearcă defragmentarea unui sistem de fișiere nemontat? Vreau să înțeleg de ce este:
Filesystem is not mounted
-
Aș dori să am implementat defragmentarea spațiului liber. AFAIK este acum în curs de examinare. Este posibil pentru mine de ex. compilați
e4defrag
din sursă cu aceste opțiuni disponibile sau oricum?e4defrag -f /deviceOrDirectory
-
doresc, de asemenea, să folosesc funcția de date relevante:
e4defrag -r /deviceOrDirectory
Am multe motive relevante pentru a crede că fragmentarea acestor mașini încetinește viteza de citire, exemplu:
-
Luată de pe server cu HDD-uri RAID 1 :
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ]
-
Luat de pe laptop cu RAID 1 HDD-uri:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ]
După cum puteți vedea, defragmentarea nu a reușit nici măcar să pună fișierul de 31 de blocuri într-o singură bucată. Desigur, ați putea susține că este un fișier de film, deci nu contează. Adevărat, dar numai în acest caz.
Comanda pe care o folosesc pentru a începe defragmentarea:
-
Pe server:
sudo e4defrag -v /dev/md1
-
Pe laptop:
sudo e4defrag -v /raid1/
Nu nu pare să conteze, fie că invoc comanda folosind numele dispozitivului sau un director.
Puteți să mă îndreptați spre direcția corectă?
Comentarii
- Aveți rezultate ale măsurătorilor care indică defragmentarea ca sursă de acces lent? Dacă da, care? În majoritatea cazurilor, nu ‘ nu trebuie să faceți defragmentarea manuală pe sistemele de fișiere ext4, atâta timp cât există ‘ spațiu liber pentru ca algoritmul de alocare să îl defragmenteze automat în timpul funcționării normale.
- @dirkt Nu au fost efectuate măsurători până acum. Nu ‘ nu argumentez, dacă este sau nu eficient pentru defragmentarea
ext4
sistem de fișiere. Întrebările sunt clare: Cum se facee4defrag -r
șie4defrag -f
.
Răspuns
e4defrag
are nevoie ca sistemul de fișiere să fie montat deoarece solicită driverului sistemului de fișiere al nucleului să efectueze defragmentarea, nu nu o faceți singură.
În ceea ce privește defragmentarea spațiului liber și defragmentarea relevantă a fișierelor, patch-urile nu au fost niciodată finalizate; ultima mențiune din lista de corespondență relevantă datează din 2014 :
e4defrag
se află îne2fsprogs
, iar codul este în continuare menținut și îmbunătățit. Dmitry Monakhov a adăugat în special o mulțime de „teste de tortură” și a găsit o serie de condiții de rasă în codul nucleului de bază. Recent, el a trimis un refactor de cod al codului kernel care l-a îmbunătățit semnificativ și (a micșorat dimensiunea ext4 cu 550 de linii de cod).Acestea fiind spuse, nu a existat nicio dezvoltare reală
e4defrag
într-un timp destul de îndelungat. Au existat discuții despre ce ar putea fi API-urile kernel pentru a sprijini această caracteristică, dar nu a existat niciodată o propunere API finalizată, darămite o implementare.
Așa că mă îndoiesc că există ceva care merită testat în prezent.
e4defrag --version
spunee4defrag 1.45.5 (07-Jan-2020)
.e4defrag
la timpul. Este încă o parte complet acceptată a Ext4, dar nu este utilizabilă în toate cazurile (sistemele de fișiere cu bigalloc nu pot fi defraggate, jurnalizarea datelor este incompatibilă cu defragmentarea, iar inodurile DAX și fișierele criptate nu pot fi mutate).