For filesystems with tons of small files, use 8 KiB cluster sizes. For filesystems with only large files, like media, use 128 KiB clusters. If not sure, use 8 KiB cluster sizes. There is negligible speed improvement for clusters larger than 128 KiB (see the top-left plot in the group of plots below), but the possibility for huuuuuge disk usage if you go to larger clusters.
Example: for my case, with tons of small files (just over 1 million files, comprising 74 GB):
- 8 KiB cluster size --> 82 GB of storage spaced used up for my 74 GB of data.
- 338 MB write speed
- 128 KiB cluster size --> 194 GB of storage space used up for my same 74 GB of data
- 390 MB write speed
- 32 MiB cluster size --> 32768 GB (32.8 TB) (nope! not an error) of storage space used up for my 74 GB of data.
- 428 MB write speed
Microsoft's default values for cluster size max out at 128 KiB too. See the table at the end of my answer, from Microsoft.
Study these plots I meticulously made. The top-left plot trends apply regardless of how many small files you have, as I did those tests by rsyncing over a 5.3 GB file to the exFAT external SSD, but the other three plots are exacerbated by the quantity of tiny files I have. The log-linear trend in the bottom-right applies to everyone, but its slope, and therefore the y-axis values, depends on how many small files you have.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/j1KyA.png)
I have a full writeup on it on my website here if interested: https://gabrielstaples.com/exfat-clusters/
Full Python matplotlib/numpy plotting code is here: https://github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world/blob/master/stack_exchange/format_exFAT_PLOTS.py
I'm not answering the OPs question about "recording HDTV programs". I'm answering for people with lots of small files, including doing a full disk backup, as they will certainly land on this page too.
I'd choose the smallest allocation unit possible if you have a lot of small files. This avoids wasted space for tiny files. Ex: use 4 KiB allocation unit size on exFAT instead of 128 KiB.
I just backed up 74 GB of data from an Apple APFS filesystem onto an external SSD with an exFAT filesystem with 128 KB allocation unit sizes (the default apparently when formatting to exFAT using Gnome Disks in Linux Ubuntu), and on the external drive, the formerly-74 GB of data on the APFS filesystem now takes up a whopping 194 GB on the exFAT filesystem! That's nuts! That's 2.62x more space taken, for nothing!
It's because I have thousands and thousands of tiny files that are, for instance, only a couple hundred bytes. On the old drive with the APFS filesystem, those would take up a single 512 byte cluster, and on the new external drive with the exFAT filesystem, those same 90 byte files take up a whopping 128 KB cluster, which is 128KiB * 1024 bytes/KiB / 512 bytes
= 256 times larger storage space required on the exFAT drive for tiny files. Reducing that 128 KiB allocation unit to only 4 KiB, for instance, would take up 128/4 = 32x less space!
See also
My answer: Unix & Linux: Create and format exFAT partition from Linux - I show the commands for both Linux Ubuntu 20.04 with mkexfatfs
, and Linux Ubuntu 22.04 with mkfs.exfat
.
My answer on how to determine the cluster size of any filesystem you have: Server Fault: How to find the cluster size of any filesystem, whether NTFS, Apple APFS, ext4, ext3, FAT, exFAT, etc.
[REALLY USEFUL] Support.Microsoft.com: Default cluster size for NTFS, FAT, and exFAT:
Default cluster sizes for exFAT
The following table describes the default cluster sizes for exFAT.
Volume size |
Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP |
7 MB–256 MB |
4 KB |
256 MB–32 GB |
32 KB |
32 GB–256 TB |
128 KB |
> 256 TB |
Not supported |
128 KiB
cluster sizes. For disks with lots of small files, I recommend8 KiB
to keep disk usage down. Wasted space on a system with32 MiB
cluster sizes, for instance, is 32768/8 = 4096x greater than on systems with the same data using8 KiB
cluster sizes.