Let’s build the diagram for different arrays performance for 1 request queue, as this is the most probable real-life situation. All RAID0 arrays are marked with the same color. RAID5 arrays have a different color, and so do mirrored arrays. The order in which these arrays are displayed on the diagrams is the same as on the legend: the higher – the most hard disk drives are involved into the given array.
In case of 1 request workload per thread we haven’t seen any steady scalability of the read speed on the number of HDDs per array neither in RAID0 nor in RAID5. The single HDD speed turned out almost the same as RAID1 speed. Since we didn’t manage to squeeze anything more than that, neither the controller, nor the HDDs can boast aggressive read ahead.
In case of two simultaneous threads mirrored RAID1 and RAID10 arrays showed their best (the ideal situation is when each HDD returns its own data). And the performance of all other arrays has dropped down quite unexpectedly, although we could see some scalability of the speed on the number of HDDs in the array with RAID0 and RAID5 arrays. Of course, the HDD heads have to shift between two work zones all the time, when there are two operational streams, so the linear read speed from the array is completely out of the question here.
Further increase in the number of working threads affects the performance of all arrays, but the general tendency remains the unchanged.
Now let’s take a look at multi-threaded writing:
And during writing, RAID1 and RAID10 mirrored arrays turned out slower than a single HDD and a 2-HDD RAID0 array in almost all test modes. RAID5 arrays on the contrary run very fast and are perfectly scalable depending on the number of hard drives in the array.
RAID0 arrays are pretty slow and hardly scalable when there is only one working stream. However, in case of two threads of data processed simultaneously the performance and scalability get much better. Incase of three simultaneous threads RAID0 arrays again prove highly scalable on the number of HDDs involved, but the speed is not that high any more. As it comes to four threads running at the same time, performance drops and scalability disappears completely.