我在 12.04 Ubuntu 主机中运行了一个客户虚拟机。虚拟机是使用 vmbuilder python 脚本创建的。
在主机上,phoronix-test-suite“aio-stress”提供了>1600MB/s 随机写入吞吐量的性能速度。
VM(也运行 12.04)提供随机写入吞吐量约为 3MB/s. 更加贫穷。 http://openbenchmarking.org/result/1301161-BY-20130116176
我已将主机上的默认文件映像类型从 qcow2 更改为 raw,以提高磁盘吞吐量,并确保编辑 vmbuilder 模板以使用“virtio”作为目标设备。
这导致了速度提升至 7.5MB/s——仍然远低于我的预期。
去年运行 10.04 版(配备 10.04 VM)的同一台机器实现 700MB/s 的吞吐量: http://openbenchmarking.org/result/1205239-BY-20120523168
有人能指出我可能存在什么问题吗?
答案1
下列的IBM 建议, 你应该:
禁用磁盘上的缓存。如果您使用 libvirt,只需将其放入
cache='none'
磁盘的驱动程序部分即可。在虚拟机中使用 noop 作为电梯,让虚拟机管理程序处理它。在虚拟机中将其用作内核 CL:
elevator=noop
在虚拟机管理程序上,使用截止期限电梯:
elevator=deadline
在虚拟机管理程序上,禁用 swappiness。放入
vm.swappiness = 0
您的文件中/etc/sysctl.conf
。然后,使用sysctl -p
。
所有这些都应该会大大提高您的性能。然后,根据您的(硬件)配置,可以使用更具体的提示。我建议您仔细阅读 IBM 文档。