iotune qemu/KVM total_iops total_bytes 限制

iotune qemu/KVM total_iops total_bytes 限制

我在 SSD 上创建了一些 qemu/KVM 虚拟机。

主机有大约 6 个 SSD。1 个用于操作系统,其他每个 SSD 都VM 客户机。

我正在使用iotune来限制这些驱动器的功能:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw' cache='writeback' io='threads'/>
  <source file='/var/lib/libvirt/images/sdd/pz/heavy/virtual-machine-1/os.img' aio=''/>
  <target dev='vda' bus='virtio'/>
  <iotune>
      <total_iops_sec>3000</total_iops_sec>
      <total_bytes_sec>125829120</total_bytes_sec> #120Mb
    </iotune>
</disk>

当我通过 SSH 连接到其中一台虚拟机并运行时,这些限制似乎起作用了——无论我在 fio 上使用什么配置( 、等),fio我都无法超过 120Mb 的吞吐量或 3000 IOPS 。--iodepth--bs --rwmixread

然而,在负载下,当我运行时iostat -xm 2,我偶尔会看到writes per secondtps跳出这些限制。

每个驱动器有 2 个虚拟机,并且强制执行这些限制,我应该看到最大 6000 IOPS 或 240Mb 读/写。在以下输出中,您可以看到情况并非如此:

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdd            6515.00         0.00        23.10          0         46


Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdd               0.00     4.50    0.00 7742.50     0.00    58.38    15.44     1.47    0.21    0.00    0.21   0.08  63.10

这也不是一次性事件。我有 4 台服务器运行相同的虚拟机设置,我发现这种情况在所有 SSD 和所有服务器上都相当频繁地发生:

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     0.00    0.00 9588.50     0.00    33.59     7.17     1.47    0.16    0.00    0.16   0.06  52.85
sdd               0.00     0.00    0.00 8528.00     0.00    66.15    15.89     1.36    0.16    0.00    0.16   0.07  59.30

这是我的配置失败、qemu/KVM 实现失败还是 iostat 对这些磁盘性能的解释失败?

相关内容