Cluster, cluster size, and slack

The filesystem does not keep track of the disk space allocation (what space is used for which file and what is free) down to the byte level. That would require too much maintenance. Instead, the disk space divided into equal blocks called clusters. The filesystem then allocates disk space cluster-by-cluster.

This reduces the amount of overhead involved in tracking what is where, but also creates a side effect. If the file size is less than a cluster size, the filesystem still allocates a full cluster to store the file. The unused space in the cluster is thus wasted. For any file which size is not an integral multiple of a cluster size, there will be some unoccupied space in the last cluster. This unoccupied space is called "slack" and it cannot be used for any other file. On average, half the cluster size is wasted for every file stored on the volume.

Typical volume holding a Windows Vista installation and also some installed applications contains approximately 150,000 files occupying about 150 GB. Given a cluster size of 4096 bytes, the amount of disk space lost is about 300 MB, or 0.2% overhead, which is negligible for all practical purposes.

What is the best cluster size to use?

Use the default setting for a cluster size. It provides the best results in almost all cases. In cases where the default value is not the same as the optimum value, you would not see the difference anyway. The ability to specify a cluster size is itself a legacy from the days of floppy drives.

On NTFS, it is not recommended to select a cluster size larger than 4096 bytes (4KB) for general use, because NTFS only supports compression for clusters up to 4096 bytes.

Continue to NTFS-specific features.