Appunti digitali

Il blog di Pasquale Fraccalvieri

Deframmentare a costo zero

, , , , , ,

E' noto che con il passare del tempo le prestazioni di un computer degradano rispetto al suo primo utilizzo. Le cause sono molteplici, ma per fortuna ci sono dei rimedi per arginare questo fenomeno.
Uno dei motivi per cui le prestazioni diminuiscono è la frammentazione dei dati. Detto in breve, è il fenomeno per cui un file viene memorizzato su disco in modo non contiguo. A causa di ciò, la testina del disco fisso compie svariati spostamenti per leggere o scrivere anche uno solo di questi file. Così facendo, le operazioni di lettura e scrittura impiegano più tempo per essere portate a termine. Per unificare in un unico blocco i file frammentati si ricorre alla tecnica della deframmentazione, mentre per prevenire la formazione di ulteriori file frammentati si ricorre a tecniche di ottimizzazione. Le tecniche di ottimizzazione sono utilizzate anche per collocare i file contigui (e quindi non frammentati) in posizioni strategiche, in modo da diminuire ulteriormente gli spostamenti della testina del disco fisso. C'è da dire che i File System dei più blasonati sistemi operativi come Windows o Linux già tentano di prevenire il più possibile il fenomeno della frammentazione in real-time, ma a lungo andare questo meccanismo non è sufficiente. Si ricorre perciò a dei software studiati appositamente per tale scopo, i cosiddetti deframmentatori. Piccola nota: per i sistemi Unix-like (come Linux) non esistono deframmentatori degni di questo nome, principalmente perché al contrario di Windows, Linux non offre delle API dedicate per la deframmentazione dei file.
Di deframmentatori per Windows ce ne sono una miriade, ma non tutti sono equamente efficaci: ognuno adotta una sua tecnica precisa per deframmentare e ottimizzare i file. Windows stesso include al suo interno un deframmentatore, ma è solo uno strumento base per riordinare almeno in parte i propri dati. In Windows Vista e Windows 7 questo è abilitato di default per deframmentare in automatico alcuni file importanti di sistema. Come prima cosa andremo a disabilitarlo ... perché? Perché in questo articolo farò riferimento ad altri deframmentatori, e i deframmentatori fra di loro sono incompatibili, poiché ognuno ha il suo modo di riordinare i dati. Per disattivarlo, cliccare su Start->Tutti i programmi->Accessori->Utilità di sistema->Utilità di deframmentazione dischi. Una volta avviato, all'interno della sua interfaccia si potrà comodamente disabilitare la deframmentazione pianificata (per Windows XP non è necessario poiché non è abilitato in automatico). Ora ... quale deframmentatore usare? Personalmente preferisco l'accoppiata di due deframmentatori, MyDefrag e UltraDefrag. A questo punto potrete chiedervi: ma non avevi detto che sono incompatibili fra loro due deframmentatori diversi? La risposta è si, MyDefrag e UltraDefrag sono incompatibili fra di loro, ma se usati nel mondo in cui descriverò nelle prossime righe, saranno al contrario complementari.
Una nota importante per chi ha Windows Vista e Windows 7: prima di deframmentare, assicurarsi di limitare lo spazio dedicato al Volume Shadow Copy (VSS) di Windows, ovvero quello spazio dedicato alla creazione dei punti di ripristino di sistema. A causa di una inadempienza della Microsoft, qualsiasi spostamento di file nel sistema viene registrato come modifica di file, e quindi il file in questione per sicurezza viene salvato nello spazio dedicato al VSS. Se al VSS è stato dedicato parecchio spazio, questo si riempirebbe subito durante una deframmentazione, visto che durante questo processo vengono spostati in continuazione i file. In Windows 7, per limitare lo spazio al VSS cliccare su Start->clic destro su Computer->Proprietà->Protezione sistema. Da qui selezionare l'unità di interesse e configurare la quantità di spazio allocato per i punti di ripristino. In Windows Vista questo non si può fare, ma in alternativa si può cliccare su Start->Tutti i programmi->Accessori->clic destro su Prompt dei comandi->Esegui come amministratore. Da qui scrivere "vssadmin Resize ShadowStorage /For=C: /On=C: 4GB". Se si vuole impostare lo spazio per un'altra unità, sostituire "C:" con la lettera dell'altra unità (ad es. "D:"). Ora possiamo eseguire finalmente la deframmentazione.
Iniziamo da MyDefrag. Utilizzare questo software è semplicissimo: una volta avviato, si possono selezionare varie strategie di deframmentazione e ottimizzazione. In particolare queste si suddividono in giornaliere, settimanali e mensili, ad indicare la frequenza con cui si dovrebbero effettuare queste operazioni. Per giunta, queste si suddividono in deframmentazione di sistema e di dati. Le tre tipologie di deframmentazione di sistema ha senso effettuarle sull'unità in cui risiede il sistema operativo (di solito C); le altre tre tipologie, quelle sui dati, ha senso effettuarle su unità dove non risiede il sistema operativo. Una volta selezionata la/le unità di interesse, si può avviare il processo di deframmentazione. Inutile sottolineare che le deframmentazioni mensili agiscono più a fondo rispetto a quelle settimanali e giornaliere, quindi il tempo impiegato per completare l'operazione è maggiore. Inoltre è bene effettuare le deframmentazioni mensili, come dice la parola stessa, _una_ volta al mese, poiché mettono sotto stress (e non poco) il disco fisso per ottimizzare al meglio i dati per il mese venturo.
Si può ulteriormente semplificare l'uso di MyDefrag in modo tale da poterlo avviare con un semplice doppio clic, senza decidere quale unità deframmentare. Per farlo, posizionarsi nella cartella d'installazione di MyDefrag (per arrivarci, cliccare col destro su MyDefrag, quindi Proprietà, posizionarsi nella scheda Collegamento, e cliccare Apri percorso file), entrare nella sottocartella Scripts e creare un collegamento sul desktop a tutti e tre gli script che iniziano per "automatic". Una volta fatto, sul desktop si possono rinominare e/o spostare i collegamenti appena creati a proprio piacimento. Avviando questi collegamenti, si avvierà direttamente il processo di deframmentazione adeguato per ogni unità presente nel computer (senza più doverla selezionare manualmente). In questo modo dovremo solo scegliere se avviare una deframmentazione leggera (daily), normale (weekly) o approfondita (monthly).
Passiamo adesso ad UltraDefrag. Questo deframmentatore, sebbene sia velocissimo, è di gran lunga meno efficace rispetto a MyDefrag. Tuttavia ha una feature che MyDefrag non ha: la deframmentazione a boot-time. Per capire la sua utilità, bisogna sapere che quando Windows è avviato non tutti i file si possono deframmentare: alcuni di questi infatti sono bloccati dal sistema operativo per poter funzionare. La deframmentazione a boot-time si avvia prima che Windows blocchi questi file, riuscendo a deframmentarli senza problemi. Questo genere di deframmentazione va eseguita raramente, in media una volta ogni 1-2 mesi, poiché è leggermente pericolosa (se se ne va la corrente durante l'operazione il computer rischia di diventare inutilizzabile) e poiché questi file bloccati non si frammentano con la stessa frequenza degli altri file. Per poter avviare questo tipo di deframmentazione, bisogna prima configurarla (una volta configurata per la prima volta, la si potrà avviare con un semplice doppio click senza stare a riconfigurarla): aprite UltraDefrag, cliccate su Settings o Impostazioni, e adesso cliccate su Script. Vi si aprirà un file di testo in Notepad (_non_ modificatelo se viene aperto con Word o Wordpad!). Cancellate tutto il contenuto e copiate quanto segue:
;--------------------------------------------------------------------
;                UltraDefrag Boot Time Shell Script
;--------------------------------------------------------------------
; !!! NOTE: THIS FILE MUST BE SAVED IN UNICODE (UTF-16) ENCODING !!!
;--------------------------------------------------------------------

set UD_IN_FILTER=system volume information;windows;winnt;ntuser;pagefile;hiberfil
set UD_EX_FILTER=temp

udefrag c:

boot-off

exit

Salvate il file e chiudetelo. Potete chiudere anche UltraDefrag. Ora posizionatevi in "%windir%\System32" e cercate per un file di nome "boot-on.cmd" (o semplicemente "boot-on" se il vostro S.O. vi nasconde le estensioni). Create un collegamento e posizionatelo sul desktop (solo il collegamento, non toccate nessun altro file). Adesso potete rinominarlo o spostarlo a vostro piacimento. Una volta fatto, per poter avviare la deframmentazione al boot di Windows, basta un semplice doppio clic su questo link appena creato. Al successivo riavvio del sistema, verrà effettuata una breve deframmentazione dei file di sistema più importanti.
Combinando l'uso di MyDefrag e della boot-time defragmentation di UltraDefrag, si riescono ad ottenere risultati stupefacenti per risolvere il fastidioso problema della frammentazione, risultati migliori dei software a pagamento. Tuttavia si può fare molto di più: tutto quello che è stato descritto fin qui è solo per effettuare una deframmentazione e ottimizzazione standard del sistema. Volendo si può approfondire ulteriormente e far si che Windows esegua automaticamente tutte queste operazioni con il Windows Task Scheduler, oppure dare una priorità di ottimizzazione ad un programma specifico (spostando i relativi file all'inizio del disco), ecc. Ma di queste altre operazioni più sofisticate ne parlerò in futuro.

NOTA: le versioni dei deframmentatori a cui ho fatto riferimento sono MyDefrag 4.3.1 e UltraDefrag 4.3.0 RC4. Probabilmente quanto scritto andrà bene anche per le future versioni, ma non posso garantirlo.

Modificare PDF gratuitamente

Comments

stratoBlu Friday, September 17, 2010 10:55:26 AM

Interessante articolo.

Parlando di Ultradefrag e dello script riportato per esempio, potrebbe essere interessante chiarire il significato delle variabili "windows;winnt;ntuser;pagefile;hiberfil".

Posso immaginare l'effetto, ma prima di usare un comando i cui effetti non sono chiari, preferirei astenermi.

Poi, ad esempio, se volessi deframmentare uno specifico file di sistema, ad esempio di quelli il cui nome inizia per "$", come dovrei definire lo script? con tutto il percorso, o con il solo nome del file, magari con gli asterischi?

Piacere di averla letta.

Write a comment

New comments have been disabled for this post.