Performance in Intel IOMeter Database Pattern
The Database pattern comes first. We use it to check the speed of processing a stream of requests to read and write 8KB data blocks with a random address. By changing the ratio of reads to writes, we can see how well the read/write requests are sorted out.
Here are the numbers for the single drive:

For better readability, we estimate the efficiency of TCQ as the ratio of the array’s results with enabled TCQ to the results with disabled TCQ. Thus, if the ratio is above 1, TCQ is rewarding. And vice versa…

There’s a discernable pattern here. Enabled TCQ reduced the array’s performance at small loads and at high percentages of read operations. It must be the controller’s driver’s blame since we can’t explain the 15% performance hit by anything else. Meanwhile, the controller experiences a 35% performance boost with Random Read requests at the maximum load!
We built graphs for three loads (1, 16 and 256 requests):

As you can see, TCQ affects the performance of the array differently. For example, the biggest speed bonus from enabled TCQ is observed at the maximum load, and mostly with “purely” read or write requests. There’s almost no speed growth with mixed requests.
Curiously enough, the speed of the array in the Random Write mode is the same for loads of 1 and 16 requests in both TCQ On and TCQ Off modes.
Let’s see what we have with a two-disk RAID0 array.



Enabled TCQ increases the speed of read operations, but only at high loads.
The array’s speed bottoms out in the mixed modes at the load of 1 request if we enable TCQ.



