I’m formatting a 1TB external hard drive as NTFS. This drive is mainly meant for storing media such as music and video.
What should I choose for the allocation unit size setting? The options range from 512 bytes to 64K. Are there any guidelines that I might apply to other drive types? Should I stop poking around and just leave it at “default?”
If you are a “Standard User” by Microsoft’s definition, you should keep the default 4096 bytes. Basically, the allocation unit size is the block size on your hard drive when it formats NTFS. If you have lots of small files, then it’s a good idea to keep the allocation size small so your harddrive space won’t be wasted. If you have lots of large files, keeping it higher will increase the system performance by having less blocks to seek.
But again, nowadays hard drive capacity is getting higher and higher it makes small difference by choosing the right allocation size. Suggest you just keep the default.
Also keep in mind that the majority file are relatively small, larger files are large in size but small in units.
In terms of space efficiency, smaller allocation unit sizes perform better. The average space wasted per file will be half the chosen AUS. So 4K wastes 2K per file and 64K wastes 32K. However, as Jonathon points out, modern drives are massive and a little wasted space is not worth fussing over and this shouldn’t be a determining factor (unless you are on a small SSD).
Compare 4K vs 64K average case waste (32K-2K = 30K), for 10,000 files that only comes out to 300,000KB or around 300MB.
Instead think about how the OS uses space. Let’s say you have a 3K file which needs to grow 2K. With a 4K AUS the data needs to be split over two blocks – and they may not be together so you get fragmentation. With a 64K AUS there are a lot fewer blocks to keep track of and less fragmentation. 16x the block size means 1/16th the number of blocks to keep track of.
For a media disk where you photos, music and videos are stored, every file is at least 1MB I use the biggest AUS. For a windows boot partition I use the Windows default (which is 4K for any NTFS drive smaller than 16TB).
To find out what the cluster size is on an existing disk:
fsutil fsinfo ntfsinfo X: