di Enzo Ferraro (webmaster & problem solving)


A volte succede che le persone che ho portato sul “lato Linux” dei sistemi operativi mi chiedano: “Quale antivirus devo usare?” oppure “devo fare defrag del disco?” Questa è una delle risposte più complete che ho trovato per la seconda domanda, fonte Ubuntu Forum

In realtà io fortemente suggerisco la non deframmentazione … La ragione di questo? Anche su Windows i defraggers hanno 2 opzioni, 1 defrag, 2 Compact … a volte chiamato in maniera diversa, ma il risultato finale è lo stesso.

Il “deframmentare” si suppone che sposti tutti i file in blocchi contigui. L’opzione “compatta” si suppone che deframmenti e renda lo spazio libero in un blocco contiguo. Ora, mentre questo suona come buono e bello, la realtà è ben diversa:

La frammentazione causa la perdita di produttività, in quanto per ogni accesso ai file si potrebbero avere centinaia di letture/scritture sul disco. Il file system fa la differenza:

  • FAT file system salva ogni file direttamente dietro l’altro. Quindi, se poi si modifica/aggiunge a questo file, la porzione aggiunta deve essere salvata da qualche altra parte. Questo creerà un frammento (o più di uno). Un nuovo file è stato salvato a partire dal primo punto in bianco, anche se quel punto in bianco è troppo piccola per contenere l’intero file.
  • NTFS è un po’ meglio, in teoria, lascia un pò di spazio libero intorno ad ogni file. Poi se si accorge che il file diventerà frammentato, fa dei “tentativi” per salvare l’intero file in una nuova posizione. Il motivo di questo questo è “l’efficienza”: se non ci vuole voluto troppo tempo per salvare l’intero file di nuovo, questo sarà fatto, altrimenti è sarà creato un nuovo frammento. Proprio come determina “troppo tempo” è il dubbio … e come la maggior parte delle idee di M$ anche un segreto!
  • Ext3 /4 genera anchesso spazi bianchi “intorno” ad ogni file. Dove è sostanzialmente diverso da NTFS è che sarà frammento solo quando è impossibile tenere il file come un singolo frammento … che (di solito) avviene solo quando il disco diventa troppo pieno

Perché le utility di defrag non funzionano:

Deframmentare:
Tutto quello che fa è ciò che ext3/4 fa già … ma dopo il fatto. Esso controlla tutti i file sul disco fisso, poi per tutti coloro con più di un frammento “cerca” di passarlo a uno spazio vuoto che sia abbastanza grande. Dopo un po’ si finisce con un sacco di piccole parti e pezzi di spazio vuoto in tutto l’HDD. Con Linux ext3/4 questi sono in realtà progettati per evitare la frammentazione, è data una dimensione di rapporto e ogni volta che il file cresce oltre lo spazio è spostato da qualche altra parte e data una più ampia “zona cuscinetto”. Con un windows defrag gli spostamenti succedono per caso e le dimensioni possono essere qualsiasi cosa, da un’unità di allocazione (in genere 4096 byte) ad alcuni giga. Non c’è vero e proprio “piano” alle spalle, e non importa quante volte il file è cresciuto o quello che le sue dimensioni sono diventate. E’ anche possibile non avere alcun spazio tra i file, così si finisce con uno scenario come FAT.

Compattare:
Questa è la cosa peggiore che si potrebbe fare per il vostro disco rigido. A parte il fatto che si sta diminuendo la vita meccanica da superlavoro e che la compattazione determina una frammentazione in futuro. Questo perché letteralmente riorganizza i file in base a quello che abbiamo visto nei sistemi FAT. Quindi la prima modifica dopo una compattazione creerà frammenti in più (almeno uno in più). Alcuni defraggers (come Norton Speed Disc​​) permettono un riarrangiamento “intelligente” dei file. Tutto quello che in fondo fanno è spostare i file che sono cambiati molto (come i documenti) alla fine del disco e tutti i file non modificati (come programmi) alla partenza. Ma rimuovono le zone cuscinetto tra i file. L’unica volta che avevo anche considerato una cosa del genere è quando l’HDD era usato solo per l’accesso in lettura, ma anche allora ci sono a volte migliori soluzioni rispetto alle prestazioni.

Dopo aver detto tutto ciò … assolutamente niente è mai perfetto. Anche i sistemi ext4 si frammentano (ma molto raramente così tando che le prestazioni si degradano). I principali colpevoli della frammentazione su ext3/4 sono sistemi di database. Questi hanno più letture e scritture in contemporanea, così riarrangiamento per eliminare la frammentazione potrebbe realmente danneggiare le prestazioni. In questi casi di solito è una buona idea “di tanto in tanto” copiare i file frammentati su un HDD esterno, cancellare l’originale e farne una copia di nuovo. Questo metodo consente al file system ext di “decidere per sé” dove posizionare meglio il file precedentemente frammentato. E poi, naturalmente, non riempire eccessivamente il vostro disco rigido, un buon limite è di circa il 50%. Ma non è va assolutamente riempito sopra 80-90%, questo è solo andare in cerca di guai (non importa quale sistema operativo/file system avete)!

Alcuni DBMS hanno dei modi per aggirare questo. Esempio Interbase (o Firebird) crea un file per il suo database, che ha esattamente una dimensione specificata, se i dati crescono al di là di questa dimensione del file un secondo file viene creato invece di far crescere il 1°. Questo assicura che ogni file è solo un frammento – ma, ovviamente, il file può contenere un bel po’ di spazio sprecato. Questo non è il default, ma per ogni serio DB è consigliato.

Fonte : “linuxaria”