Random Read & Write Patterns
Now we’ll see the dependence of the arrays’ performance in random read and write modes on the data chunk size.
We will discuss the results of the arrays at processing random-address data in two variants basing on our updated methodology. For small-size data chunks we will draw graphs showing the dependence of the amount of operations per second on the data chunk size. For large chunks we will compare performance depending on data-transfer rate in megabytes per second. This approach helps us evaluate the disk subsystem’s performance in two typical scenarios: working with small data chunks is typical of databases. The amount of operations per second is more important than sheer speed then. Working with large data blocks is nearly the same as working with small files, and the traditional measurement of speed in megabytes per second is more relevant for such load.
We will start out with reading.
The efficient reading from the RAID10 mirror pairs shows up again in the test of reading in small data chunks.
The checksum-based arrays go very close to each other. We can note a couple of facts here. First, the arrays with more disks are somewhat faster even when reading very small blocks (smaller than the size of a stripe). And second, the degraded RAID6 with two failed disks slows down greatly at reading, so you may want to switch to RAID10 if you suspect your disks are going to fail often.
Take note of how long the RAID10 remains in the lead. It is as fast as the 8-disk RAID0 even at a data chunk size of 8MB (comparable to the size of a document, musical file or hi-res photo). The degraded RAID10 is somewhat ahead of the 4-disk RAID0.
The 8-disk RAID5 and RAID6 go neck and neck, including the degraded variants. The 4-disk RAID6 is a disappointment as its speed hardly differs from that of the single HDD even on large data chunks.
Random writing goes next.
Everything is good in this group of arrays. We see nearly ideal scalability here.
The RAID5 and RAID6 arrays have serious problems when writing in small data chunks. This must be the explanation of the high write response time and the Database results. You can see it clear with the 8-disk arrays: when the data block size is reduced to 8KB, they suffer a sudden performance hit. Moreover, their performance goes on lowering when the data chunks gets smaller, although the normal behavior for such arrays is to accelerate steadily. The 4-disk and degraded arrays are especially poor. If the controller behaves like that with RAID3, a RAID3 array would be downright sluggish.
There are some inexplicable fluctuations of performance when the RAID0 and RAID10 arrays are reading in large data blocks, but these are not as serious as to cause any problems.
The controller copes very well with writing large data blocks to RAID5 and RAID6 arrays. Moreover, the degraded arrays hardly differ from their healthy counterparts. Thus, you can store large files on these arrays but should avoid keeping small files on them.