Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

enter image description here

enter image description here

enter image description here

enter image description here

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?

share|improve this question
up vote 1 down vote accepted

I personally would not bother as deviations from standard formatting have nearly always caused me problems down the road if not immediately in terms of reliability and support. Deviating from a standard should be well considered as code paths for these type of things are not necessarily as well tested as for the standard general case.

Unless you have some real need, I'd not experiment especially if it is any data you wish to save long term.

share|improve this answer
I'm not concerned about long term storage, I just want to optimize the one use-case: random access. Was also curious about the different results. – Jim May 18 '14 at 10:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .