KVM/QEMU Storage Stack Performance Discussion


One Line Summary

An in-depth discussion of the key challenges in optimizing KVM/QEMU storage stack performance, our recent progress, and solicitation of ideas on further work in this area.


Addressing the challenges in KVM storage I/O performance requires the understanding of the entire stack from the KVM management tools, QEMU, to the kernel block layer and drivers. The aim of this micro-conference discussion is to bring together people with backgrounds in QEMU/KVM, libvirt, kernel, and other projects to focus on block I/O.

Suggested topics:

1. We’ll discuss the KVM/QEMU storage stack supporting block I/O, and our recent effort in optimizing its performance. We’ll also present further approaches that may be worth pursuing. We’d like to solicit opinions from the audience on these approaches, as well as any other ideas that the audience may have for further work in this area.

2. Better defaults for block devices (cache=, aio=). Storage configurations can be complex and a “one-size-fits-all” default setting results in poor performance in many storage environments, especially on large storage systsems. Better defaults could make a big difference in performance. Libvirt and virt-manager seem to delegate to QEMU for choosing the best configuration, but QEMU currently does not choose intelligently.

3. We’ll present the performance comparison between emulated device support and para-virtual device support. Smooth para-virtual device support for KVM guests is critical in many storage environments. We found that users were too often not taking advantage of virtio devices. This is usually because the KVM guest was installed either without a management tool that automatically chooses virtio or the user gave the wrong OS hint to the management tool, resulting in legacy emulated devices.


KVM, QEMU, performance, I/O virtualization, virtio


  • Stefanha

    Stefan Hajnoczi

    IBM Linux Technology Center


    Stefan Hajnoczi joined the IBM Linux Technology Center in 2010 where he works on QEMU/KVM and Linux virtualization. He previously worked on cross-platform virtualization at Transitive before it was acquired in 2008.

    Stefan is also involved in the Etherboot Project and works on the gPXE network bootloader, which provides an open source PXE implementation and takes network booting a step further with HTTP, iSCSI, and ATA-over-Ethernet support.

  • Khoa


    Khoa Huynh joined IBM in 1989 where he first worked on OS/2 in the areas of kernel memory management, remote client management, and system performance. He joined IBM’s Linux Technology Center in 2001 where he led the Linux defect support team working with major Linux distributors, and later, joined the virtualization development team, contributing to XEN’s full virtualization support for Windows. Khoa is currently on the Linux Performance team, focusing on the performance of virtualization technologies, such as the IBM PowerVM, XEN, and KVM. Khoa also holds a doctorate in Computer Science. His areas of interest include virtualization, system architectures, and cloud computing.

Leave a private comment to organizers about this proposal