Risposte:
I filesystem moderni, in particolare quelli progettati per essere efficienti in casi d'uso multi-utente e / o multi-tasking, fanno un buon lavoro nel non frammentare i dati fino a quando i filesystem non diventano quasi pieni (non esiste una cifra esatta per cui il "quasi pieno" "il segno dipende da quanto è grande il filesystem, dalla distribuzione delle dimensioni dei file e da quali sono i tuoi schemi di accesso - le cifre tra l'85% e il 95% sono comunemente citate) o lo schema delle creazioni e delle scritture dei file è insolito o il filesystem è molto vecchio, quindi ha visto molta "azione". Ciò include ext2 / 3/4, reiser, btrfs, NTFS, ZFS e altri.
Al momento non esiste un modo a livello di kernel / filesystem per deframmentare ext3 o 4 al momento (vedi http://en.wikipedia.org/wiki/Ext3#Defragmentation per qualche informazione in più) anche se ext4 è pianificato per ottenere presto online deframmentazione.
Ci sono strumenti di terra dell'utente (come http://vleu.net/shake/e altri elencati in quell'articolo di Wikipedia) che provano a deframmentare singoli file o insiemi di file copiandoli / riscrivendoli - se c'è un blocco abbastanza grande di spazio libero, generalmente si ottiene un blocco contiguo nel file. Ciò non garantisce in alcun modo che i file siano vicini l'uno all'altro, quindi se si esegue la vibrazione su una coppia di file di grandi dimensioni, è possibile che i due file vengano deframmentati ma non vicini l'uno all'altro sul disco. In un filesystem multiutente la posizione dei file tra loro non è spesso importante (è certamente meno importante della frammentazione dei file stessi) poiché le testine dell'unità si stanno spostando dappertutto per servire utenti diversi "
Se hai un filesystem che è diventato molto frammentato nel tempo e attualmente ha una buona quantità di spazio libero, l'esecuzione di qualcosa come shake
tutti i suoi file potrebbe avere l'effetto che stai cercando. Un altro metodo sarebbe quello di copiare tutti i dati in un nuovo filesystem, rimuovere l'originale e quindi copiarlo di nuovo. Questo aiuta più o meno allo stesso modo shake
, ma può essere più veloce per grandi quantità di dati.
Per piccole quantità di frammentazione, non preoccuparti. Conosco persone che trascorrono più tempo seduti a guardare le barre di avanzamento della deframmentazione di quante ne salveranno mai (a causa dell'accesso più efficiente al disco) in diverse vite del normale funzionamento!
ureadahead
, come le recenti build di Ubuntu per impostazione predefinita (vedi ubuntuforums.org/showthread.php?t=1434502 per maggiori informazioni), per ottenere un effetto simile. Alcuni ritardi nella sequenza di avvio di Linux possono essere ridotti chiedendogli di avviare i servizi più simultaneamente, ove possibile, se la configurazione di avvio della tua disro supporta questo (imposta CONCURRENCY = shell in / etc / defaults / rc su Debian) e modifiche simili. Per verificare di fare la differenza con le modifiche apportate, utilizza bootchart.org per mostrare cosa succede prima di modificare le cose rispetto a quelle successive.
e2defrag
e l'ho sperimentato per ottenere tale impaccamento. Puoi trovarlo su launchpad.net/e2defrag .
/etc/defaults/rc
ma ho /etc/default/rcS
debian 6
e2defrag
ora supporta meglio Ext3, meglio di shake
?