Cliccando con il tasto destro del mouse, in Windows, su una cartella contenente molti file e scegliendo la voce Proprietà si otterranno alcune informazioni sui file ospitati nella directory selezionata e ci si troverà dinanzi a due differenti valori per quanto concerne le dimensioni e le dimensioni su disco.
Che differenza c’è tra Dimensioni e Dimensioni su disco in Windows e quale valore è quello reale? Qual è lo spazio davvero occupato su disco dai file selezionati o dal contenuto della cartella?
Per fornire una risposta, è necessaria una breve premessa di carattere tecnico. La spiegazione dettagliata è stata fornita a suo tempo da Raymond Chen (Microsoft) in questo articolo ma, dal momento che potrebbe sembrare astrusa ai più, è bene partire con qualche esempio pratico.
Si supponga di avere a che fare con un hard disk tradizionale. Com’è noto, un disco fisso magnetomeccanico può essere pensato come un supporto di memorizzazione suddiviso in cerchi concentrici, detti tracce. I settori, invece, sono gli spicchi radiali in cui è diviso il singolo piatto del disco mentre i cluster sono insiemi di frammenti di tracce contigui.
Nella seguente immagine, pubblicata su Wikipedia, “A” è una traccia; “B” un settore; “C” un settore di una traccia; “D” un cluster:
Il cluster può essere pensato come il quantitativo minimo di spazio utilizzato per gestire la memorizzazione di un file. La dimensione del singolo cluster può variare tra 512 byte e 32 KB. Se un hard disk è formato da cluster di 512 byte, ogni file di dimensioni inferiori a 512 byte occuperà comunque 512 byte sul disco.
Si provi a questo punto a creare un nuovo file, ad esempio sul desktop di Windows, utilizzando il Blocco Note od un qualunque altro editor di testo (Notepad++ o TextPad). Si salvino al suo interno, le 26 lettere che compongono l’alfabeto (ABCDEFGHIJKLMNOPQRSTUVWXYZ
).
L’alfabeto, memorizzato una sola volta, occuperà ovviamente 26 bytes (un byte per singola lettera); ripetendolo per venti volte (senza alcun genere di formattazione e senza aggiungere altre informazioni), si otterrà un file di testo (.txt) di dimensioni pari a 520 byte (26 byte x 20).
Per verificarlo, dopo aver salvato il file di testo, si dovrà semplicemente cliccare con il tasto destro del mouse su tale elemento quindi scegliere la voce Proprietà dal menu contestuale di Windows:
In corrispondenza dell’indicazione Dimensioni si leggerà appunto 520 byte mentre accanto a Dimensioni su disco 4.096 byte.
Come accennato in precedenza, seppur il file di per sé occupi 520 byte, le dimensioni su disco dello stesso elemento appaiono pari a 4.096 byte dal momento che 4.096 byte è la dimensione del singolo cluster.
E 4.096 byte (4 KB) è la dimensione predefinita per il singolo cluster (detta anche unità di allocazione) per il file system NTFS nelle varie versioni di Windows per dischi di dimensioni fino a 16 Terabyte (vedere, a tal proposito, questa pagina riassuntiva).
Per ottenere il numero di KB (Kbyte) a partire dai byte, è sufficiente dividere questo secondo valore per 1.024: nel nostro caso, infatti, 4.096 byte divisi per 1.024 equivalgono appunto a 4 KB.
Windows ha infatti sempre calcolato lo spazio disponibile sui dischi fissi così come su tutti gli altri supporti di memorizzazione utilizzando il valore 1.024 e non 1.000: il tutto è chiarito nell’articolo Perché Windows riporta un valore di spazio disponibile sul disco che sembra scorretto?.
Una verifica sulla dimensione dei cluster è d’altra parte possibile digitando chkdsk
al prompt dei comandi di Windows aperto con i diritti di amministratore. Il comando è utilizzabile su tutte le versioni di Windows: per accedervi basta digitare cmd
nella casella di ricerca del sistema operativo quindi premere la combinazione di tasti CTRL+MAIUSC+INVIO
.
Digitando chkdsk
seguito dalla lettera identificativa di unità corrispondente all’hard disk, all’unità SSD o alla scheda di memoria da controllare (ad esempio chkdsk D:
), in corrispondenza della voce byte in ogni unità di allocazione, si troverà in bell’evidenza la dimensione del singolo cluster.
Per poter leggere il valore è ovviamente necessario attendere pazientemente la fine della scansione.
Non appena si aggiungeranno informazioni all’interno del file di testo utilizzato nell’esempio e si supererà, anche di poco, la soglia dei 4.096 byte (dimensione dell’unità di allocazione) lo spazio su disco riporterà il valore 8.192 bytes (8 KB):
È questo l’approccio che viene utilizzato per qualunque file memorizzato in ogni area del disco.
In alternativa all’utilizzo del comando chkdsk
è comunque possibile digitare al prompt fsutil fsinfo ntfsinfo
seguito dalla lettera identificativa dell’unità da controllare.
Il valore cercato verrà riportato accanto alla voce byte per cluster.
Come regola generale, comunque, per gli hard disk e gli SSD 4 KB è un’impostazione corretta per la dimensione del singolo cluster.
Se si prevede di formattare un’unità che dovrà accogliere file di grandi dimensioni è in generale preferibile selezionare valori elevati come Dimensioni unità di allocazione.
Se l’unità di memorizzazione fosse poco capiente (si pensi alle piccole chiavette USB o ad altre unità rimovibili economiche), è preferibile scegliere valori ridotti in termini di Dimensioni unità di allocazione. Lo stesso dicasi se un disco dovesse conservare principalmente piccoli file di testo o script di dimensioni contenute (si pensi ai file che compongono un’applicazione web).
Per un’unità USB da 512 MB, per esempio, si possono impostare 512 byte mentre per un hard disk esterno da 1 TB o più 64 KB.
Di default Windows propone un valore intermedio pari a 4.096 bytes (4 KB).
Vale infine la pena evidenziare che esaminando il contenuto di una cartella condivisa tramite NAS utilizzando Samba, implementazione libera dei servizi di condivisione di file e stampanti SMB/CIFS, la schermata delle proprietà della directory mostrerà una discrepanza particolarmente marcata tra la voce Dimensioni e Dimensioni su disco.
Il problema è essenzialmente “estetico” e sul NAS i file selezionati occuperanno in realtà quanto indicato in corrispondenza di Dimensioni.
Il parametro di configurazione di Samba chiamato allocation roundup size è infatti impostato per default a 1 MB così, almeno solo all’apparenza, un file da pochi byte sembrerà occupare 1.048.576 byte.
Come spiegato qui e qui è possibile abbassare il valore dell’impostazione allocation roundup size anche se di fatto non avrà alcun effetto sul meccanismo utilizzato per la memorizzazione dei file sul NAS.
Se continuaste ad avere dei dubbi sul perché lo spazio complessivamente disponibile sul disco sia inferiore rispetto a quello dichiarato dal produttore, vi suggeriamo di leggere l’articolo Perché Windows riporta un valore di spazio disponibile sul disco che sembra scorretto?. Nel caso degli SSD, un discreto quantitativo di spazio se ne va per via dell’utilizzo del cosiddetto over provisioning: SSD, come funzionano le tecnologie che li rendono più veloci.