The I/O performance of my new server is pretty low. I Googled and tried everything I can imagine. First of all, here are the Hardware Components:

  • AMD Opteron(tm) Processor 6344
  • 4x Seagate ST3000VX000

Its currently running on a software RAID5.

Throughput from the host machine:

# 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

Current throughput on the guest system:

# 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

I'm using a self-compiled QEMU + LIBVIRT, plus a self compiled Linux kernel (3.10.32-lns-opteron-kvmhost). I can provide parts out of the kernel configuration.

  • Linux Kernel (HOST): 3.10.32-lns-opteron-kvmhost
  • Linux Kernel (GUEST): 3.10.2-lns-opteron-kvmguest
  • QEMU Version: 2.0.0
  • Libvirt Version: 1.2.4

I'm running both kernels on another system (same processor, but other hdds), which is running with full I/O performance.

I did not install the other system, so I can't reliably reproduce the problem.

HDD Configuration of the guest:

<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'/>

As you can see I'm using LVM.

I don't have any performance issues with the CPU / Memory - only with the disk I/O.

  • 1
    Can you reproduce this performance with a fresh Fedora or RHEL build? – dyasny Jun 18 '14 at 13:22
  • As a guest system? or as host? – T-Bash Jun 18 '14 at 13:31
  • The host of course. Self compiling is nice, but stock stuff gets tested and verified – dyasny Jun 18 '14 at 14:00
  • sorry, its currently not possible for me to reinstall the host machine. But do you have any idea? – T-Bash Jun 18 '14 at 14:10
  • I have a RHEL machine with the host and the guests providing very similar IO throughput counts. Actually, that's 8 RHEL machines and about 90 guests. – dyasny Jun 18 '14 at 14:26

The only obvious problem I see in your configuration is io='threads'. This is unlikely to provide better performance than io='native'.

Beyond that, I also don't recommend compiling any of these components (kernel, libvirt, QEMU) yourself unless you already have a deep understanding of them. Better to use a well-tested and known working package from a Linux distribution which has optimized it for performance and stability. RHEL/CentOS and Fedora work fine. I can't vouch for any other distribution.

| improve this answer | |
  • Hi Michael, thanks for your response; ive already tried the io="native". But just for safety i did it again. The Write Performance is now down to 5mb/s (on the guest) – T-Bash Jun 18 '14 at 14:59
  • You've got other issues, then. See the second paragraph :) – Michael Hampton Jun 18 '14 at 15:55
  • have you tried to use noop scheduler in your vm guest? – c4f4t0r Jun 15 '15 at 12:40
  • I was ext4 on kvm guest and I had the same problem, I was using the default caching mode and I solved the problem, disabling the write barrier on guest and on host filesystem – c4f4t0r Nov 30 '16 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.