Perché i frammenti dei dischi?


18

Come parte della normale manutenzione di Windows, deframmento il mio disco rigido. Ma perché il disco rigido si frammenta sui sistemi NTFS e FAT *? Apparentemente ext * no, perché? Devo anche deframmentare le mie unità USB?


Non frammentare i dispositivi a stato solido. Nemmeno su Windows di Microsoft. È dannoso per il dispositivo a stato solido e non è necessario.
ctrl-alt-delor

Risposte:


22

La frammentazione non è il problema di 30 anni fa. All'epoca c'erano hard disk che erano appena più veloci dei floppy e dimensioni della memoria del processore minuscole. Ora hai unità molto veloci e grandi memorie del processore, e talvolta un notevole buffering sul disco rigido o nel controller. Inoltre, le dimensioni del settore sono aumentate (o i file sono allocati in blocchi più grandi) in modo che più dati siano intrinsecamente contigui.

Anche i sistemi operativi sono diventati più intelligenti. Considerando che DOS 1.x avrebbe recuperato ogni settore dal disco come è stato fatto riferimento, un sistema operativo moderno è in grado di vedere che hai un file aperto per l'accesso sequenziale e può ragionevolmente prevedere che dovrai recuperare settori aggiuntivi una volta consumato quelli che hai adesso. Quindi può "precaricare" i prossimi (dozzine) settori successivi.

E più spesso è meglio non avere un file contiguo. Su un (grande) sistema in cui il file system è distribuito su più unità, è possibile accedere a un file in modo più rapido anche se viene "diffuso", poiché più dischi possono cercare il file contemporaneamente.

Deframmento ogni 2-3 anni, indipendentemente dal fatto che la mia scatola ne abbia bisogno o meno.

[Aggiungerò che la cosa importante non è tanto se i dati sul disco vengono deframmentati quanto lo è lo spazio libero. FAT è stato terribile in questo - a meno che tu non abbia deframmentato le cose continuasse a peggiorare fino a quando non ci fossero due blocchi contigui di spazio libero. La maggior parte degli altri schemi può fondere lo spazio libero e allocare i pezzi in modo un po '"intelligente" in modo che la frammentazione raggiunga una certa soglia e poi si stabilizzi, anziché peggiorare.]


2
Non ho deframmentato un sistema dal 2005. Ecco, l'ho detto.
BlueRaja - Danny Pflughoeft il

2
@BlueRaja, Se si eseguono molte operazioni su disco in un archivio rotazionale, la deframmentazione aiuta. Recentemente ho scoperto che l'esecuzione di una build della mia applicazione (2 GB di codice sorgente e risorse) è circa il 20% più veloce dopo la deframmentazione e che la scatola aveva ~ 1 mese.
liori,

2
Un post informativo e utile, ma non una risposta alla domanda originale. Sono sorpreso di vederlo accettato.
EMP,

Non ho mai deframmentato il mio sistema. Ora ha circa 10 anni. Ho appena fatto una scansione per la prima volta, i livelli di frammentazione sono molto bassi (2,3% non contigui). Sto usando il file system ext4. Inoltre non ho mai eseguito una scansione antivirus; Mai un problema.
ctrl-alt-delor

13

TUTTO il frammento dei file system. ext e altri file system Linux si frammentano meno a causa del modo in cui sono progettati - per citare Wikipedia riguardo alla Guida per amministratori di rete Linux :

I moderni filesystem Linux mantengono al minimo la frammentazione mantenendo vicini tutti i blocchi di un file, anche se non possono essere archiviati in settori consecutivi. Alcuni filesystem, come ext3, allocano efficacemente il blocco libero più vicino ad altri blocchi in un file. Pertanto non è necessario preoccuparsi della frammentazione in un sistema Linux.

Vorrei notare che ext4 ha la deframmentazione online, quindi alla fine la frammentazione È un problema, anche con i file system Linux.

I file system di Windows hanno i loro cluster posizionati ovunque ci sia spazio per metterli, e la deframmentazione corre e li sostituisce. Con Linux, i file vengono posizionati preferibilmente dove c'è abbastanza spazio.

Vorrei notare che Windows 7 ha programmato esecuzioni di deframmentazione, quindi non è davvero necessario eseguire la deframmentazione manualmente.


Prendo atto che la deframmentazione programmata non era abilitata per impostazione predefinita su nessuno dei miei computer.
Simon Sheehan,

5
ext* non deframmenta mentre procede. trac.transmissionbt.com/ticket/849 e h-online.com/open/features/… . ext*minimizza la frammentazione archiviando dati contigui in posizioni casuali sul disco. Gli offset casuali diffondono i file contigui sul disco e riducono la necessità di frammentare un file.
ta.speot.is

Qualche parola su come Reiser / XFS evita la frammentazione? Mi sono sempre chiesto di loro, ma sembrano in gran parte privi di documenti in relazione a ext.
nuovo123456

1
modificato per correggere la mia risposta mentre venivano fatti quei commenti. Ext4 FA la deframmentazione online da quello che posso dire. ext 2/3 dosen't.
Journeyman Geek

3
Per impostazione predefinita in Windows 7, la deframmentazione è prevista per mercoledì all'01: 00. Se il tuo computer non è mai acceso in questo momento, la deframmentazione potrebbe non verificarsi. Consiglio personalmente di consentire l'esecuzione della deframmentazione programmata settimanale (o altrimenti la deframmentazione settimanale), perché non richiede molto tempo e garantirà al 100% che la frammentazione non diventi mai un problema.
jcrawfordor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.