La deframmentazione del disco, spiegata.
Perché i file finiscono a pezzi, perché questo rendeva lenti i dischi rigidi, cosa faceva il deframmentatore per tutte quelle ore e se il tuo computer ne ha ancora bisogno.
Ultima verifica
Cos’è la frammentazione del disco?
Un file system non memorizza un file byte per byte. Distribuisce lo spazio in blocchi di dimensione fissa chiamati cluster (o unità di allocazione, o blocchi): la quantità minima di spazio su disco che un file può occupare. Un file da 10 KB su un disco con cluster da 4 KB ne occupa tre.
Idealmente i cluster di un file stanno uno accanto all’altro. Quando non è così, e il file è memorizzato in più tratti separati sparsi per il disco, il file è frammentato.
- Un file, in quattro pezzi
- Altri file
- Spazio libero
Succede da sé, man mano che il disco viene usato:
- Cancellare lascia dei buchi. Elimini un file e i suoi cluster diventano uno spazio vuoto. Il file successivo può essere più grande del buco, e allora viene diviso: una parte nel buco, il resto dove c’è posto.
- I file crescono. Aggiungi una pagina a un documento o un giorno a un file di log, e spesso i nuovi cluster non possono andare subito dopo quelli vecchi, perché lì c’è già un altro file.
- Il file system punta alla velocità, non all’ordine. FAT, il file system di MS-DOS e di Windows 95 e 98, di solito riparte dall’ultimo cluster assegnato e prende il primo libero successivo. È veloce, e col tempo sparpaglia i file.
In realtà i tipi sono due. La frammentazione dei file è un file spezzato in più parti. La frammentazione dello spazio libero è lo spazio vuoto spezzato in piccoli buchi, ed è la causa della prima: quando nessun buco è abbastanza grande, ogni nuovo file arriva a pezzi.
Perché la frammentazione rallentava i dischi rigidi
Un disco rigido (hard disk) è una pila di piatti rotanti con una testina di lettura/scrittura su un braccio mobile. Prima di poter leggere qualsiasi cosa, il braccio deve portare la testina sulla traccia giusta (il tempo di ricerca, o seek) e poi aspettare che il punto giusto del piatto le passi sotto (la latenza rotazionale). Solo allora i dati scorrono, e scorrono veloci finché stanno in un unico tratto continuo.
Ogni frammento in più significa un altro spostamento della testina e un’altra attesa. Gli ingegneri di Microsoft chiamavano questi due ritardi «i due principali colpevoli». Un file in 50 pezzi li subisce 50 volte invece di una.
| Velocità di rotazione | Attesa media per la rotazione | Disco tipico |
|---|---|---|
| 3.600 giri/min | 8,3 ms | Dischi economici di fine anni Novanta, come il Quantum Bigfoot CY |
| 5.400 giri/min | 5,6 ms | Dischi per portatili, come il Seagate Momentus 5400 |
| 7.200 giri/min | 4,2 ms | Dischi per desktop, come il Seagate Barracuda 7200.14 |
| SSD | Nessuna | Non gira niente: dove stanno i dati non fa alcuna differenza |
Qualche millisecondo sembra niente, ma nello stesso tempo quel disco avrebbe potuto leggere di fila decine o persino centinaia di kilobyte. Ecco perché un disco frammentato sembrava fiacco: i programmi ci mettevano di più ad avviarsi e si sentiva il disco ticchettare mentre la testina saltava avanti e indietro.
Conta anche dove stanno i dati. Con la registrazione a zone (zoned bit recording), le tracce esterne contengono più settori di quelle interne, quindi l’inizio del disco (il bordo esterno) è la parte più veloce. I buoni deframmentatori ne approfittavano.
Cosa fa davvero un deframmentatore
Un deframmentatore è un traslocatore scrupoloso. Per ogni file frammentato trova un tratto libero abbastanza grande, ci copia i pezzi in ordine, verifica la copia, aggiorna il file system perché punti alla nuova posizione e solo allora libera i vecchi cluster. Se qualcosa va storto a metà, l’originale è ancora dov’era.
Strada facendo, un buon deframmentatore fa anche altro:
- Consolida lo spazio libero in un’unica grande area, così i nuovi file hanno posto per arrivare in un solo pezzo.
- Colloca i file con criterio: quelli di sistema e quelli usati spesso vicino all’inizio del disco, che è la parte veloce, quelli usati di rado più lontano. Windows 98 arrivava a disporre i file dei programmi nell’ordine in cui i programmi li caricavano davvero.
- Lascia stare alcune cose. In Windows 2000 i file che il sistema teneva aperti, come il file di paging e la Master File Table di NTFS, non potevano essere spostati mentre Windows era in esecuzione. Alcuni programmi li sistemavano con un passaggio speciale all’avvio.
Deframmentare non cancella niente e non rende il disco più grande. Sposta solo i dati perché il disco possa leggerli con meno viaggi della testina.
L’Utilità di deframmentazione dischi di Windows 95 e 98
Per molti questo è il deframmentatore: una finestra piena di quadratini che cambiavano lentamente colore mentre il programma avanzava lungo l’unità C. Arrivò con Windows 95 e, come il comando DEFRAG di MS-DOS 6, era opera di Symantec, l’azienda dietro Norton Utilities e il suo Speed Disk.
Un clic su Mostra dettagli apriva la famosa mappa. La sua legenda spiegava ogni quadratino:
- Dati ottimizzati (deframmentati)File già sistemati: in un solo pezzo e al loro posto.
- Dati non ottimizzatiDati ancora da spostare, distinti in base a dove devono andare: all’inizio, al centro o alla fine dell’unità.
- Spazio liberoCluster vuoti, in attesa di essere riempiti.
- Dati che non verranno spostatiFile che il deframmentatore deve lasciare esattamente dove sono.
- Area del disco difettosa (danneggiata)Cluster contrassegnati come inutilizzabili. Windows li disegnava come un riquadro bianco attraversato da una linea rossa.
- Dati in corso di letturaI blocchi che la testina sta raccogliendo in questo momento.
- Dati in corso di scritturaIl punto in cui quei blocchi vengono depositati.
In fondo c’era la riga che spiega tutto il quadro: «Ogni riquadro rappresenta un cluster del disco» (in inglese «Each box represents one disk cluster»). I colori qui sono quelli del tema Classic 98 di Defragment.
Windows 98 aggiunse una casella di controllo, «Ridisponi i file di programma per avviare più rapidamente i programmi» (in inglese «Rearrange program files so my programs start faster»). Dietro c’era l’Intel Application Launch Accelerator: un piccolo programma chiamato Task Monitor annotava quali parti di quali file ogni programma leggeva all’avvio, e il deframmentatore disponeva quelle parti esattamente in quell’ordine. Nel test della stessa Intel, nel 1997, i programmi di Office si avviavano in circa 3,7 secondi invece di 11,3.
La mappa spiega anche un famoso fastidio. Se un altro programma scriveva sul disco mentre il deframmentatore lavorava (il colpevole tipico era il salvaschermo), la mappa che si era costruito non era più aggiornata, e ricominciava da capo. Molti ricordano una deframmentazione che sembrava non superare mai il 10%.
Breve storia della deframmentazione
- 1986
Diskeeper e DiskExpress
Executive Software pubblica Diskeeper per i minicomputer VAX/VMS, e Alsoft distribuisce DiskExpress per il Mac.
- 1987
Norton Speed Disk
Speed Disk arriva in Norton Utilities 4.0 Advanced Edition e diventa uno dei deframmentatori più noti dell’era DOS.
- 1993
MS-DOS 6.0: DEFRAG
Il DOS riceve un suo comando
DEFRAG: una versione ridotta di Speed Disk, su licenza di Symantec. - 1995
Windows 95
L’Utilità di deframmentazione dischi, di nuovo codice Symantec, porta la mappa dei cluster su milioni di schermi.
- 1996
Windows NT 4.0
Nessun deframmentatore incluso, ma nuove funzioni di sistema permettono a programmi come Diskeeper di spostare i cluster in sicurezza mentre Windows è in esecuzione.
- 1998
Windows 98
La deframmentazione impara a disporre i file dei programmi nell’ordine in cui vengono caricati, grazie all’Application Launch Accelerator di Intel.
- 2000
Windows 2000 e XP
Un deframmentatore realizzato insieme a Executive Software, i creatori di Diskeeper. Le sue barre mostrano i file frammentati in rosso, quelli contigui in blu, quelli non spostabili in verde e lo spazio libero in bianco.
- 2003
Mac OS X 10.3 Panther
Il file system del Mac inizia a deframmentare da solo i file piccoli e molto frammentati, quando vengono aperti.
- 2007
Windows Vista
La deframmentazione passa in background, secondo una pianificazione, e la mappa scompare.
- 2009
Windows 7
L’avanzamento torna visibile, si possono elaborare più unità insieme e gli SSD vengono esclusi dalla deframmentazione.
- 2012
Windows 8: Ottimizza unità
Lo strumento cambia nome e impara a trattare gli SSD in modo diverso: invece di spostare i dati, invia loro il comando TRIM.
- 2017
APFS
Il nuovo file system di Apple è progettato per la memoria flash. Su un SSD, la deframmentazione smette del tutto di essere una questione.
La deframmentazione in Windows 10 e 11
Windows lo fa ancora, solo che non lo vedi. Oggi lo strumento si chiama Ottimizza unità (nel menu Start cerca «Deframmenta e ottimizza unità») e per impostazione predefinita si avvia da solo una volta alla settimana.
- Su un disco rigido analizza l’unità e la deframmenta.
- Su un SSD esegue invece un retrim: comunica all’unità quali blocchi non sono più in uso.
- Su una chiavetta USB o scheda SD rimovibile formattata in FAT non fa niente.
C’è un’eccezione che sorprende molti. Se Ripristino configurazione di sistema o altri snapshot del volume sono attivi, Windows deframmenta anche un SSD, circa una volta al mese. Il team di Microsoft che si occupa dello storage ha spiegato che un volume molto frammentato rallenta gli snapshot e può raggiungere un limite del file system sul numero di frammenti che un file può avere.
Per chi preferisce la riga di comando: defrag C: /A analizza un’unità, defrag C: /O esegue l’ottimizzazione adatta al suo tipo e defrag C: /L esegue il retrim di un SSD. Una deframmentazione completa richiede almeno il 15% di spazio libero sull’unità.
Bisogna deframmentare un SSD?
No. Un SSD non ha testina né piatti rotanti, quindi non c’è tempo di ricerca e non c’è attesa. Il suo controller tiene una propria mappa che collega gli indirizzi usati dal computer alle celle flash in cui si trovano davvero i dati, e distribuisce di proposito le scritture su tutto il chip. Un file che a Windows sembra frammentato può trovarsi ovunque dentro l’SSD, e si legge alla stessa velocità in ogni caso.
Deframmentarlo servirebbe solo a riscrivere dati che stanno benissimo dove sono, e la memoria flash sopporta un numero limitato di scritture. Samsung, uno dei maggiori produttori di SSD, dice chiaramente che la deframmentazione non è necessaria e consiglia di disattivare la deframmentazione automatica per i suoi dischi.
Quello di cui un SSD ha bisogno è il TRIM: il sistema operativo gli comunica quali blocchi sono liberi, così l’unità può svuotarli in anticipo e continuare a scrivere velocemente. Windows e macOS lo fanno in automatico, e la maggior parte delle distribuzioni Linux lo esegue periodicamente con un timer.
Serve deframmentare il Mac?
Quasi mai. Ai tempi del Mac OS classico si usavano programmi come DiskExpress e PlusOptimizer di Alsoft, lo Speed Disk di Norton Utilities o TechTool Pro. Da Mac OS X in poi il sistema se ne occupa in gran parte da solo.
- Mac OS X 10.2 ha introdotto l’allocazione ritardata: il file system aspetta prima di scegliere dove mettere i nuovi dati, così può trovare un unico spazio contiguo.
- Mac OS X 10.3 Panther ha introdotto la deframmentazione automatica. Quando si apre un file di meno di 20 MB diviso in più di otto pezzi, viene spostato in silenzio in un unico pezzo.
- Hot File Clustering raccoglie i piccoli file letti più spesso dal disco di avvio in un’area «calda» riservata del disco.
Il consiglio di Apple, all’epoca, era che con Mac OS X probabilmente non avresti avuto alcun bisogno di ottimizzare il disco. I Mac di oggi usano APFS su SSD, dove la frammentazione non conta. Per APFS su un disco rigido tradizionale, macOS ha un’opzione: diskutil apfs defragment seguito dal volume e da status, enable o disable.
La deframmentazione su Linux
I file system di Linux sono progettati per evitare la frammentazione più che per rimediarvi, quindi deframmentare serve di rado.
- ext4 tiene insieme i file con gli extent (un solo record per una lunga sequenza di blocchi), con l’allocazione ritardata e tenendo i dati di un file vicino ai suoi metadati. Per i casi isolati c’è
e4defrag. - XFS include
xfs_fsr, che riorganizza i file più frammentati, per impostazione predefinita per un massimo di due ore a ogni esecuzione. - Btrfs ha
btrfs filesystem defragmente l’opzione di montaggioautodefrag, disattivata per impostazione predefinita. Attenzione agli snapshot: la deframmentazione interrompe la condivisione tra un file e le sue copie negli snapshot, e lo spazio occupato può aumentare.
Perché guardarla piaceva così tanto
Tra il ticchettio del disco e i quadratini che passavano dal chiaro allo scuro, la deframmentazione è diventata qualcosa da guardare. Un processo lento e ordinato, con una fine visibile, in cui ogni passo mette un po’ più in ordine, è stranamente rilassante.
C’è chi la cerca ancora. Nel 2018 TechCrunch ha scritto di un canale Twitch che non faceva altro che deframmentare un disco DOS giorno e notte, e su YouTube si guardano ancora registrazioni lunghe ore di Windows 98 che deframmenta, rumori del disco compresi.
È tutta qui l’idea di Defragment: la calma di guardare un disco che si riordina, senza un disco vero che ne abbia bisogno. Il tuo iPhone o iPad mostra un disco immaginario che viene deframmentato all’infinito, in sei temi tra cui Classic 98, con l’ora a lato se vuoi.
Domande frequenti
Devo deframmentare il mio SSD?
No. Gli SSD non hanno parti in movimento, quindi la frammentazione non li rallenta, e deframmentarli li usura e basta. Windows invia invece agli SSD il comando TRIM, in automatico: lascialo attivo.
Windows 10 e 11 deframmentano ancora in automatico?
Sì. Per impostazione predefinita Ottimizza unità si avvia ogni settimana: deframmenta i dischi rigidi ed esegue il retrim degli SSD. Con Ripristino configurazione di sistema attivo, deframmenta anche gli SSD circa una volta al mese.
Bisogna deframmentare il Mac?
Praticamente mai. Mac OS X deframmenta automaticamente i file piccoli dalla versione 10.3, e i Mac di oggi usano APFS su SSD, dove non ha importanza.
Quanto tempo ci vuole per deframmentare un disco?
Dipende dalle dimensioni del disco, dal numero di file, da quanto è frammentato e da quanto è pieno. Su un PC degli anni Novanta una deframmentazione completa poteva durare ore, e le guide di Windows 98 avvertivano proprio di questo. Oggi Windows la esegue secondo una pianificazione, quindi di solito ogni volta resta poco da fare.
È sicuro interrompere una deframmentazione a metà?
Sì. I pulsanti Pausa e Interrompi servono proprio a questo, e un deframmentatore copia e verifica ogni pezzo prima di liberare il vecchio posto. Un’improvvisa interruzione di corrente è un’altra faccenda: per questo deframmentare un portatile con la batteria quasi scarica non è mai stata una buona idea.
La deframmentazione cancella i file?
No, li sposta soltanto. Però sovrascrive lo spazio libero, quindi i file che hai eliminato in precedenza diventano più difficili da recuperare.
Quanto spazio libero serve per deframmentare?
Abbastanza da poter spostare le cose. Microsoft chiede almeno il 15% di spazio libero sull’unità per una deframmentazione completa; con meno, alcuni file restano a pezzi.
Perché la deframmentazione di Windows 98 ricominciava sempre da capo?
Perché qualcos’altro scriveva sul disco mentre lavorava, di solito il salvaschermo o un programma in background. La sua mappa del disco non era più aggiornata, quindi ricominciava. Chiudere gli altri programmi e disattivare il salvaschermo aiutava.
Cosa significa «Ogni riquadro rappresenta un cluster del disco»?
Ogni quadratino della mappa di Windows 95 e 98 rappresentava un cluster, la più piccola porzione di spazio su disco che un file può usare. Il colore indicava cosa conteneva: dati già sistemati, dati ancora da spostare, spazio libero e così via.
Posso rivedere una deframmentazione?
Sì: Defragment per iPhone e iPad è proprio questo, un disco che viene deframmentato all’infinito, con anche un tema Classic 98. Nessun dato reale viene toccato.
Guardalo fare ordine ancora una volta.
Defragment è una deframmentazione tranquilla e infinita per il tuo iPhone e iPad. Gratis, con sei temi, un orologio e niente di vero da deframmentare.
Presto disponibile su App StoreScopri DefragmentFonti
Verificato su manuali, documentazione di Microsoft e Apple e fonti d’epoca.
- Microsoft: Disk defragmentation background and engineering the Windows 7 improvements (2009)
- Microsoft: Disk defragmentation in Windows 2000
- Microsoft Learn: defrag command
- Microsoft Learn: Optimize-Volume
- Microsoft Support: Defragment or optimise your drives in Windows
- Microsoft KB Q120962: DEFRAG in MS-DOS 6 is developed by Symantec
- Microsoft KB Q160043: bad clusters in the Disk Defragmenter map
- Microsoft KB Q155679: Windows NT 4.0 has no disk defragmenter
- Microsoft KB 186978: Disk Defragmenter restarts repeatedly
- Intel: Application Launch Accelerator announcement (1997)
- Scott Hanselman: Does Windows defragment your SSD? (2014)
- Apple: About disk optimization with Mac OS X (HT1375)
- Amit Singh: Fragmentation in HFS Plus volumes
- Linux kernel documentation: ext4 block and inode allocators
- xfs_fsr manual page
- Btrfs documentation: Defragmentation
- Samsung Semiconductor: SSD FAQ
- Wikipedia: Hard disk drive performance characteristics
- Wikipedia: Quantum Bigfoot
- Seagate Barracuda 7200.14 data sheet
- Seagate Momentus 5400 product manual
- Alsoft: company history
- Wikipedia: Norton Utilities
- Wikipedia: Diskeeper
- TechCrunch: Watch a hard drive defrag forever on Twitch (2018)