Relation between disk IOPS and sar tps
Solution 1:
Transactions are single IO-commands (fetch block/write block) that are written to the RAW-disk (in your example dm-0). The linux-kernel tries to order those commands into a better sequence or tries to compress them into more efficient commands (like: get two blocks at once instead of get one block and get another block right after this one). These are the transactions that go out to the disk-controller (tps for sda).
Good controllers migth have a logic of their own that reduce the real number of transactions further.
A transaction might be the SCSI-command "write 2 GB to crontoller 1 target 2 lun 3 starting from sector 22). As you can see this can not be brought into direct correlation with throughput-numbers.
What you are after is the sustained write-rate. You have a couple of limiting factors here:
- client-connection: If the network is Gigabit you will never have more than 100 MB/s input
- disk-controller: If this is a 3 Gb controller you will never have more than 300 MB/s throughput
- disk: Look up the manufacturers value for sustained write performance
- Filesystem: There is a little overhead since the OS needs to process data - test that in a RAM-disk...
My guess for your system is: Get a good hardware-raid-controller that is capable of doing raid 10 or 5 and get at least 6 fast (15k) disks.
For professional use use SAS instead of SATA.
Solution 2:
Please also be aware that TPS
value represents reads and writes, you can use -x
switch for extended view where reads and writes are separated (r/s = read IOPS, w/s = write IOPS):
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
vda 0.07 24.65 0.30 18.95 30.65 330.22 18.74 0.07 3.61 0.98 1.89