I purchased a current model MacMini (Mid 2011) to serve as a Continuous Integration server. I chose the one model that has 4 GB and 2 HDDs because the larger RAM certainly should benefit the overall performance and 2 HDDs would give me an opportunity to experiment with striping the hard disks to see what performance could be gotten from that.
For comparison I am using a Mid 2011 27″ iMac which I had with stock Apple SSD and one HDD.
First up, Xbench of the iMac HDD.
Next in line is the performance of the RAID 0 in the MacMini:
Finally here’s the iMac SSD, you can see from the type that it claims to be from Apple:
As expected the striped HDD is generally faster than the non-striped one. The SSD takes a clear lead. However there are a few surprising results contained herein as well.
The single most slowest operation when accessing data on hard disks is the seek time, that is the time that the read/write heads need to move to the area on the platters where the data is located, called seek time or access time. In situations when seeking is less of a percentage of the overall operation (e.g. uncached sequential writing) the striping actually doubles the throughput. Random reading is about equivalent with the striped HDD being marginally faster in 3 out of 4 scenarios. In reading of large chunks (= less seeking) the stripe set also outperforms the regular HDD by a factor of almost 3x.
To summarize this, for the RAID0 has twice the throughput in general, except for reading random or sequential 4K blocks.
Now lets see how it did versus the SSD. Again a few surprises there. The RAID0 even outperforms the stock SSD on some scenarios, again when seek time can be ignored, like for large sequential writing. Look at the random access reading and writing however to see where the SSD truly shines. Having no seek times on the SSD memory chips gives you faster throughput between 3 to 10 times.
Reading and writing large sequential files is clearly won by the RAID0 setup, the SSD wins the random access categories hands down.
Of course the question now is wether building apps would actually benefit from the RAID0, I’ve had a fight with colleagues over this one. Is the build process dealing with small or large blocks? Is it more random access or sequential?
Then there is a certain additional danger when you use two hard disks as one. If one of them fails both are toast. HDDs have a certain MTBF (mean time before failure) and they do break occasionally. Therefore it is even more important than usually to be doing regular backups. Also the RAID0 setup makes it impossible to have recovery partition on one hard disk. For these worst case scenarios you should have a USB stick or internet connectivity to launch the recovery system so that you can restore the system if need be.
One scenario comes to mind for which I also want to have the benefit of the RAID0 setup: video encoding. I recently purchased Final Cut Pro X and Compressor on the Apple Store and of course I want to try to add an instance of compressor running on the MacMini for times when I want to speed up the time it takes to encode a 720p video for YouTube.