客人I / O性能差KVM Ubuntu 12.04

我有一个虚拟机在12.04 Ubuntu主机中运行。 VM是使用vmbuilder python脚本创build的。

在主机上,phoronix-test-suite“aio-stress”提供了> 1600MB / s的随机写入吞吐量。

虚拟机(也运行12.04)给出了大约3MB / s的随机写入吞吐量 。 远远更穷。 http://openbenchmarking.org/result/1301161-BY-20130116176

我已将默认文件映像types从qcow2更改为主机上的raw,以提高磁盘吞吐量并确保编辑vmbuilder模板以使用“virtio”作为目标dev。

这导致了速度提高到7.5MB / s – 仍然低于我的预期。

去年运行10.04(10.04个虚拟机)的同一台机器达到了700MB / s的吞吐量 : http : //openbenchmarking.org/result/1205239-BY-20120523168

任何人都可以指出我可能是什么问题?

遵循IBMbuild议 ,您应该:

  1. 禁用磁盘上的caching。 如果您使用libvirt,只需将cache='none'放入驱动器的磁盘部分即可。

  2. 在虚拟机中使用noop作为电梯,让虚拟机pipe理程序处理它。 在你的VM中使用这个作为内核CL: elevator=noop

  3. 在pipe理程序上,使用截止date电梯: elevator=deadline

  4. 在pipe理程序上,禁用swappiness。 把vm.swappiness = 0放到你的/etc/sysctl.conf文件中。 然后,使用sysctl -p

所有这些都会大大提高你的表演。 然后,给你的(硬件)configuration,可以使用更具体的提示。 我build议您仔细阅读IBM文档。