各个物理磁盘的IOPS总和不等于raid0逻辑磁盘吗?

各个物理磁盘的IOPS总和不等于raid0逻辑磁盘吗?

我设置了一个由 2 个物理磁盘组成的 raid0:

bash-4.2$ lsblk 

NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvda    202:0    0  100G  0 disk  
`-xvda1 202:1    0  100G  0 part  /
nvme0n1 259:0    0  1.7T  0 disk  
`-md0     9:0    0  3.5T  0 raid0 /home/ec2-user/deploy
nvme1n1 259:1    0  1.7T  0 disk  
`-md0     9:0    0  3.5T  0 raid0 /home/ec2-user/deploy

我通过以下命令创建了一些写入负载:

dd if=/dev/random of=/home/ec2-user/deploy/testfile bs=1024 count=4000000

我测量了 md0 和两个物理磁盘的 iostats:

iostat -d 1
Linux 4.14.154-128.181.amzn2.x86_64 (ip-10-123-151-189.ap-northeast-1.compute.internal)     11/08/2021  _x86_64_    (16 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda              0.50         0.03         3.07     253733   25752714
nvme0n1          96.83         2.76       853.15   23209231 7166198418
nvme1n1          96.66         2.72       851.67   22806490 7153813102
md0             294.30         5.75      1711.15   48271101 14373181088

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda              0.00         0.00         0.00          0          0
nvme0n1          73.00         0.00       968.00          0        968
nvme1n1          30.00         0.00       268.00          0        268
md0             306.00         0.00      1236.00          0       1236

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda              0.00         0.00         0.00          0          0
nvme0n1          62.00         0.00       784.00          0        784
nvme1n1          32.00         0.00       756.00          0        756
md0             382.00         0.00      1540.00          0       1540
...

我期望的 tpsnvme0n1nvme1n1总结为 的 tps md0

差异是否是由于块大小不同造成的。物理磁盘是否将多个写入合并为单个磁盘写入?有没有办法证实这个假设?

答案1

md0作为一个功能齐全的块设备,它有自己的调度程序和写入合并。因此,虽然kB_wrtn/s每个设备的舍入值都与 RAID 阵列本身的报告值相近,但tps由于在md0级别上合并,因此要低得多。

为了更好地了解合并,您可以发出iostat -x -k 1并查看wareq-sz字段(或rareq-sz读取)。

相关内容