F_L_C
08-28-05, 06:42 PM
I've believed for the longest time that a 16K Stripe/ 16K Cluster would optimize transfer performance. Then I read this guide from a reputable source:
http://www.storagereview.com/guide2...perfStripe.html
There are many "rules of thumb" that are thrown around to tell people how they should choose stripe size, but unfortunately they are all, at best, oversimplified. For example, some say to match the stripe size to the cluster size of FAT file system logical volumes. The theory is that by doing this you can fit an entire cluster in one stripe. Nice theory, but there's no practical way to ensure that each stripe contains exactly one cluster. Even if you could, this optimization only makes sense if you value positioning performance over transfer performance; many people do striping specifically for transfer performance.
Unfortunately, nowhere in that entire guide do they recommend what cluster size to use for various stripe sizes. But, if using a 16K Stripe (and you value transfer performance over positioning performance), then a cluster size less then 16K should be used.
Now, for the question of what Stripe size to use. The guide purposely avoids recommending Stripe sizes because RAID 0 arrays are used for different purposes.
But they do offer this:
And if you must have a rule of thumb, I'd say this: transactional environments where you have large numbers of small reads and writes are probably better off with larger stripe sizes (but only to a point); applications where smaller numbers of larger files need to be read quickly will likely prefer smaller stripes. Obviously, if you need to balance these requirements, choose something in the middle.
I use my 2-disk RAID 0 array primarily for gaming. So this would involve smaller numbers of larger files that need to be read quickly, hence a smaller Stripe should be used. I've decided that either a 16K or 32K Stripe would be optimal for my purposes.
Back to Cluster sizes. This is what I'm not totally sure what to use. So Cluster should not equal Stripe. Then I'm left with the following choices:
1) 16K Stripe: 4K or 8K Cluster
2) 32K Stripe: 4K, 8K, or 16K Cluster
Gamers, which Stripe/Cluster combination would you choose and why?
http://www.storagereview.com/guide2...perfStripe.html
There are many "rules of thumb" that are thrown around to tell people how they should choose stripe size, but unfortunately they are all, at best, oversimplified. For example, some say to match the stripe size to the cluster size of FAT file system logical volumes. The theory is that by doing this you can fit an entire cluster in one stripe. Nice theory, but there's no practical way to ensure that each stripe contains exactly one cluster. Even if you could, this optimization only makes sense if you value positioning performance over transfer performance; many people do striping specifically for transfer performance.
Unfortunately, nowhere in that entire guide do they recommend what cluster size to use for various stripe sizes. But, if using a 16K Stripe (and you value transfer performance over positioning performance), then a cluster size less then 16K should be used.
Now, for the question of what Stripe size to use. The guide purposely avoids recommending Stripe sizes because RAID 0 arrays are used for different purposes.
But they do offer this:
And if you must have a rule of thumb, I'd say this: transactional environments where you have large numbers of small reads and writes are probably better off with larger stripe sizes (but only to a point); applications where smaller numbers of larger files need to be read quickly will likely prefer smaller stripes. Obviously, if you need to balance these requirements, choose something in the middle.
I use my 2-disk RAID 0 array primarily for gaming. So this would involve smaller numbers of larger files that need to be read quickly, hence a smaller Stripe should be used. I've decided that either a 16K or 32K Stripe would be optimal for my purposes.
Back to Cluster sizes. This is what I'm not totally sure what to use. So Cluster should not equal Stripe. Then I'm left with the following choices:
1) 16K Stripe: 4K or 8K Cluster
2) 32K Stripe: 4K, 8K, or 16K Cluster
Gamers, which Stripe/Cluster combination would you choose and why?