QEMU 1.4.0 boosts large storage device performance
The latest version, 1.4.0, of the open source QEMU emulator and virtualiser has been released and brings with it a new experimental threaded backend to manage direct PCI IO. This new backend is regarded as the highlight of the new release as, in testing, it managed to give a 900% increase in IO performance for a single KVM guest, from 150,000 IOPS (IO operations per second) to 1.33 million IOPS.
According to the QEMU developers this equates with getting 95% of native performance all from a user space application. This, though, was in the context of a very large storage array, said QEMU maintainer Anthony Liguori noting that, on a typical laptop, QEMU was "already probably close to 95% of native already". Many hypervisors are trying to optimise for the large storage array case; Liguori says that these are the "highest published rates so far" and that the developers will be formally publishing the details of the benchmarking configuration soon. The new backend does have limitations though; for now it can only be used with raw image files and needs to disable QEMU features such as live snapshots and storage migration.
Other improvements in 1.4.0 include the addition of threaded live migration, which keeps QEMU flowing smoothly and quickly during storage migration, support for USB tablets as USB 2.0 devices thus reducing CPU usage, improved USB serial device support, and multi-queue operation support added to virtio-net.
Further details of all the changes can be found in the change log. QEMU is published with a GPLv2 licence and version 1.4.0 is available to download from the QEMU site, where documentation and other resources are provided.