Linux - KVM - 磁盘 io 非常慢

Linux - KVM - 磁盘 io 非常慢

我的新服务器的 I/O 性能相当低。我搜索了 Google 并尝试了所有我能想到的方法。首先,以下是硬件组件:

  • AMD Opteron(tm) 处理器 6344
  • 4台希捷 ST3000VX000

它当前在软件 RAID5 上运行。

主机的吞吐量:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.44095 s, 242 MB/s

客户系统当前的吞吐量:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 94.8643 s, 11.3 MB/s

我使用的是自编译的 QEMU + LIBVIRT,以及自编译的 Linux 内核 (3.10.32-lns-opteron-kvmhost)。我可以提供内核配置之外的部分。

  • Linux 内核(主机):3.10.32-lns-opteron-kvmhost
  • Linux 内核(GUEST):3.10.2-lns-opteron-kvmguest
  • QEMU 版本:2.0.0
  • Libvirt 版本:1.2.4

我在另一个系统(相同的处理器,但不同的硬盘)上运行两个内核,该系统以完整的 I/O 性能运行。

我没有安装其他系统,因此无法可靠地重现该问题。

来宾的 HDD 配置:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='threads'/>
  <source dev='/dev/vmstore/guest-data'/>
  <target dev='vda' bus='virtio'/>
</disk>

如您所见,我正在使用 LVM。

我没有遇到任何与 CPU/内存相关的性能问题 - 只有磁盘 I/O 存在问题。

答案1

我看到的唯一明显的问题在您的配置中io='threads'。这不太可能提供比 更好的性能io='native'

除此之外,我也不建议自己编译这些组件(内核、libvirt、QEMU),除非你已经对它们有了深入的了解。最好使用经过充分测试且已知的 Linux 发行版中的软件包,该发行版已针对性能和稳定性进行了优化。RHEL/CentOS 和 Fedora 运行良好。我不能保证其他发行版也能正常运行。

相关内容