Linux – KVM – 非常慢的磁盘io

我的新服务器的I / O性能很低。 我谷歌search,并尝试我能想象的一切。 首先,这里是硬件组件:

  • 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)。 我可以从内核configuration中提供部分内容。

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

我在另一个系统(相同的处理器,但其他硬盘)上运行这两个内核,这些系统运行在完全的I / O性能上。

我没有安装其他系统,所以我不能可靠地重现问题。

客人的HDDconfiguration:

 <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。

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

除此之外,我也不build议你自己编译这些组件(kernel,libvirt,QEMU),除非你已经对它们有深入的了解。 最好使用经过充分testing和已知的工作包,从Linux发行版中进行优化,以提高性能和稳定性。 RHEL / CentOS和Fedora工作正常。 我不能担保任何其他分配。