I'm specifically interested in the answer for NAND storage (SD cards, memory sticks).
I have a Windows 7 laptop where I run 2 VM's inside VMWare, as well as multiple programs in the host OS. VM disk access is very random, and I've had an excellent improvement in performance of my system from using a 16GB memory stick with ReadyBoost. I formatted the flash with exFAT so that I could allocate a 16GB sfcache file. I used a 32MB cluster size, but I'm not sure this is optimal.
My understanding of cluster size is that larger cluster sizes result in wasted space for smaller files but increased read speed and less filetable usage if you mostly have large files. However, I realised that ReadyBoost only helps for random I/O, not sequential I/O. This made me wonder if a smaller cluster size would be better for random I/O, and large cluster size better for sequential I/O.
I ran some IO tests on the 16GB thumb drive.
The images show the results for cluster sizes of: 1kB, 4kB, 8k, 32MB.
1k had the worst random I/O speed while 4k had the best (only slightly slower than 8k for sequential I/O, maybe within error margin). Not sure how to interpret these results. Is it possible the manufacturers optimized their device for the default Windows allocation unit size?