Would SSD drives benefit from a non-default allocation unit size?
If you are looking for an good article I recommend
The Hows and Whys of SSDs by Robert Hallock
I linked to page 2, which contains the part which discusses clustering and block size.
[...] The solution to the problem is to increase the cluster size, for which there are several advantages:
- Reduced file system complexity; less clusters means less to organize.
- Increased read and write speed as cluster size approaches parity with block size.
- Decreased slack space if the system is primarily composed of large files.
Yet increased cluster size is not a magic bullet for solid state disks, as most people have a mix of information. Games often contain a myriad of small files and operating systems are the sum of small files almost as a rule; yet movies, music, archives and MMOs are perfect candidates for enlarged cluster sizes. More frustrating than the anchor of small clusters is the complicated process to get larger clusters under modern Windows operating systems. Such a feat requires premeditated use of programs like Acronis Disk Director which can increase cluster sizes prior to the installation of Windows. It is also possible to resize existing clusters, but such a procedure is accomplished with a frighteningly varied degree of success.
I definitely agree with Hollock ("The How's and Why's of SSDs") when it comes to increased performance as cluster size approaches block size. In such a situation, you would have a minimal number of block reads and overhead per cluster request.
Having a cluster size smaller than the block size is not necessarily a huge performance hit but it will typically entail more overhead (since the SSD will read the block and REMOVE the portion of the block that is not in the cluster requested. This is even worse if the drive is fragmented and adjacent clusters on the same block are not part of the same file.)
In general increasing the cluster size to (but not beyond) the block size of the SSD will be beneficial. The loss (of course) is that you will start to lose space and as you mention, the $/GB of SSDs is much higher than magnetic media.
Depending on how much money you have, you can either:
- Set the cluster size to your drive's block size (which as Hollock mentions might be somewhat tedious) and reap the performance benefits while sacrificing space and having to spend more $$
or
- Set the cluster size to the size of the average file (or a little higher to make it a factor of the block size) on your drive to improve drive capacity while (potentially) sacrificing some performance. If the cluster size is significantly less than the block size, be sure to keep the drive defragmented.
Hope this helped :)
This is one anecdote, but it suggests no real world advantage in using a cluster size other than the default 4k. You may have more I/O requests to process but that is going to be negligible in the big scheme of things.