7

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

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.

5
  • 1
    Can you reproduce this performance with a fresh Fedora or RHEL build?
    – dyasny
    Jun 18, 2014 at 13:22
  • As a guest system? or as host?
    – T-Bash
    Jun 18, 2014 at 13:31
  • The host of course. Self compiling is nice, but stock stuff gets tested and verified
    – dyasny
    Jun 18, 2014 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, 2014 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, 2014 at 14:26

1 Answer 1

1

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.

4
  • 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, 2014 at 14:59
  • You've got other issues, then. See the second paragraph :) Jun 18, 2014 at 15:55
  • have you tried to use noop scheduler in your vm guest?
    – c4f4t0r
    Jun 15, 2015 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, 2016 at 16:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .