Multithreaded Read & Write Patterns
The multithreaded tests simulate a situation when there are one to four clients accessing the virtual disk at the same time, the number of outstanding requests varying from 1 to 8. The clients’ address zones do not overlap. We will discuss diagrams for a request queue of 1 as the most illustrative ones. When the queue is 2 or more requests long, the speed doesn’t depend much on the number of applications.
- IOMeter: Multithreaded Read RAID1+RAID10
- IOMeter: Multithreaded Read RAID5+RAID6
- IOMeter: Multithreaded Write RAID1+RAID10
- IOMeter: Multithreaded Write RAID5+RAID6
The arrays are very fast when reading one data thread. While most other controllers reach their max speeds at queue depths longer than 1, the Areca ARC-1680 delivers a high sequential read speed even at the shortest queue depth.
The controller is less successful with two threads, though. Most of the arrays deliver only two thirds of their speed with one thread, and the 8-disk RAID5 and RAID6 suffer a twofold performance hit. On the other hand, the RAID10 feel all right and even speed up a little: the controller recognized the type of load and sent one thread to each disk in a mirror pair. The speed of the degraded RAID6 is higher, too, but this must be a peculiarity of the controller’s firmware rather than a deliberate optimization.
When there are more threads to be processed, the arrays slow down steadily, but the standings do not change much. It is good that the controller is able to send the different threads to different disks of mirror pairs in RAID10 arrays.
When the queue is 1 request deep, the controller is somewhat worse at writing one thread than at reading, but the speeds are high enough for it to avoid our criticism. However, we can again see the familiar problem: the 4-disk RAID10 and RAID6 have very low performance.
Some of the arrays slow down expectedly when we add a second thread, but others, on the contrary, speed up. Particularly, the 8-disk RAID0 and RAID5, including the degraded RAID5, accelerate eagerly.
There are no changes in the standings when third and fourth threads are added: the arrays just slow down steadily.