Perché la deframmentazione di Windows non fa quasi nulla su un disco con il 23% di spazio vuoto?


8

Durante il tentativo di deframmentare un volume NTFS da 80 GB (dimensione cluster 4 KB) su Windows XP, ho riscontrato uno strano problema: il processo di deframmentazione è molto rapido, ma anche molto inutile. Graficamente, ho potuto vedere alcuni file muoversi ovunque, ma il livello di frammentazione rimane lo stesso.

Ecco come appare dopo la deframmentazione del volume:

L'immagine è uno screenshot di Windows Defragmenter su Windows XP, con due viste grafiche di un disco: prima e dopo;  entrambi sono abbastanza simili e presentano una pesante deframmentazione

So che esiste un limite di spazio libero del 15%. In realtà, il volume è gratuito al 23%.

Naturalmente, la deframmentazione di Windows mostra un mucchio di file che non è stato in grado di deframmentare. Alcuni sono grandi (fino a 1 GB), ma non troppo grandi per non poterli spostare durante la deframmentazione. Senza contare, immagino, hiberfil.sys e pagefile.sys (sono immobili, no?).

Come posso diagnosticare questo problema?

PS. Installare altri prodotti software di deframmentazione, come suggerito da una domanda simile , non è una soluzione nel mio caso.


Il 15% non è un limite rigido, solo una stima approssimativa.
user1686

1
È possibile che i frammenti siano abbastanza grandi da rendere il costo del loro spostamento pari o superiore al vantaggio di spostarli insieme.
surfasb,

I grandi file non deframmentabili sono aperti per caso? Puoi citare alcuni dei grandi frammentati?
William C,

@William C: quelli sono i file personali degli utenti (inclusi quelli degli utenti non registrati). Non vengono utilizzati durante la deframmentazione.
Arseni Mourzenko,

Risposte:


5

La deframmentazione non ha nessun posto in cui spostare i file di grandi dimensioni: tutto lo spazio libero è distribuito in modo un po 'uniforme in piccoli pezzi, quindi non ci sarebbe alcun miglioramento se $ VERYBIGFILE passasse da, diciamo, 20 pezzi vicini a 10 sparpagliati pezzi.

Uno dei passaggi eseguiti dalla deframmentazione è la compattazione dei file, in cui i file contigui ma separati vengono mescolati per formare un singolo blocco di dati. Prova a eseguirlo alcune volte e dovrebbe migliorare nel tempo.

Puoi anche provare contig -v somebigfilea deframmentare i file uno per uno.


4

Prova a riavviare in modalità provvisoria, quindi disattiva il maggior numero possibile di servizi. I file aperti non verranno spostati o deframmentati, quindi l'idea di essere eseguita con il minor numero di processi possibile.

Oppure rimuovere l'unità e installarla (come unità dati) su un altro PC per la deframmentazione.


1

È possibile disabilitare l'ibernazione e dovrebbe eliminare hiberfil.sys. In caso contrario, è possibile eliminarlo manualmente una volta che l'ibernazione è disabilitata. Puoi anche disabilitare il tuo file di paging. Una volta che quei due file di grandi dimensioni, non deframmentabili sono spariti, potresti avere risultati migliori nella deframmentazione. Una volta fatto, puoi riattivare il file di paging e l'ibernazione. Si spera che, dopo la deframmentazione del volume, gli altri due file vengano inseriti in file contigui.


1

Sysinternals ha l' utilità Defrag Page File . Non sono sicuro di come funzionerà con la disposizione del disco così com'è, ma probabilmente vale la pena provare a sistemare quei file più grandi in modo che i tuoi deframmenti standard possano arrivare in modo più efficace agli altri file.


1

Se la deframmentazione in modalità provvisoria non aiuta, allora neanche

  • Svuota le cartelle di prefetch e superfetch. (Brivido!) Queste cartelle dicono a Defrag di non deframmentare alcuni file, che è esattamente l'opposto di quello che vuoi,

o

  • Rimuovere l'unità e deframmentarla mentre è collegata a un altro computer. Ciò garantisce che i file aperti siano il meno possibile e che Defrag non consideri i dati PF.
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.