看了一篇文章,说KVM的cpu和磁盘性能都比virtualbox快。心头一热,就把virtualbox给卸载了,想要测试一下在我的电脑可以快出多少。其实我最关注的是磁盘性能.
然而测试的结果,真是让我极度的郁闷。(花了4个多小时)
我的CPU型号是Intel E6550,支持VT-x,也已经用cpuinfo等确认过了。
代码: 全选
测试方法:
安装winxp sp2时,在文本模式的界面里,以复制文件那一步所花的总时间,以该时间来进行比较。
测试环境:
System: Arch Linux i686 2011.8.19,1个月前更新过系统。
CPU: E6550 2.33GHz
Memory: 3.2G
KVM: pacman -S qemu-kvm
VB: pacman -S virtualbox
测试步骤:
注:所以的镜像文件都是放在/dev/sda4分区里的.
virtualbox:
1) GUI方式创建winxp的虚拟机。
在创建虚拟磁盘的时候,选择“固定分配空间"选项。
注意到设置里,IDE虚拟磁盘是把Cache I/O勾上的。
(费时: 3分02秒结束)
qemu-kvm:
1) qemu-kvm -enable-kvm -drive file=/dev/sda4,if=ide,cache=none -boot d -cdrom winxp_sp2.iso -m 1024
(直接写到本地分区的方式)
(费时: 约4.5分钟结束)
2) qemu-img create -f raw winxp.raw 10G
qemu-kvm -enable-kvm -drive file=winxp.raw,cache=writeback -boot d -cdrom winxp_sp2.iso -m 1024
(使用固定分配空间的方式)
(费时: 4分钟只复制了53%)
3) qemu-img create -f raw winxp.raw 10G
qemu-img create -f qcow2 fake.qcow2 10G
qemu-kvm -enable-kvm -drive file=winxp.raw,if=ide,cache=none,boot=on -drive file=fake.qcow2,if=virtio -boot d -cdrom winxp_sp2.iso -m 1024
(使用动态分配空间的方式)
(费时: 4分钟只复制了4x%)
4) ... 记不清了,反正只要是超过4分钟不到50%的都被我咔掉了.其中都试过if=virtio,if=ide, cache=writeback,cache=none的各个组合。
而如果磁盘性能方面KVM比VB慢这么多,为什么有那么多人说它更快呢!?!
每次试个新东西,都是这么的不顺利。郁闷~~~
请问我错在哪了?
已解决,结论如下:
代码: 全选
真是不好意思,之前给了大家一个错误信息。
倒不是之前的测试有误,仔细想想,是有些太片面了。原因是,一来我的virtio没用对;另一点是这仅仅是测试复制文件,也就是硬盘操作,virtualbox是在文档中已经表明了内置了I/O缓存的,而kvm在没用上virtio的情况下,确实是慢了。所以之前的测试仅仅是virtualbox与kvm(不带virtio)之间的硬盘I/O方面的性能比较,不足以说kvm就比virtualbox慢。可惜有一点不好测,就是本地系统安装winxp的真实速度是怎么样的?到底是速度接近kvm还是跟vbox? (更麻烦了,谁有时间去搞一搞吧 0_0)
另外我想要说是,虽然之前测试kvm让我很不爽,不过还是硬着头皮使用kvm了4天,准确的是kvm和virtualbox切换着用。光是不停的重装qemu-kvm和vbox就不下20次了,重装win7无数次(不用winxp了)。说老实话,越是用了kvm后,就越是不想用virtualbox了,当然了,我是指执行大型程序方面的速度。
由于我是要在虚拟机中安装VisualStudio2010和SqlServer2008R2,光是这2个软件就占了14G的空间,内存的占得凶。在VBOX中,每次打开VS2010,就会看到CPU在嗐跳,特别是debug asp.net(项目总大小约为90M)的时候,等得我都要吐了;KVM中就比较稳定,不会让你觉它在浪费你的电费,比VBOX流畅的多,由于还没长时间使用,不确定是否跟本机的性能一样;另外,没安装其它软件之前,光是升级系统后待机情况下,VBOX占CPU持续在3.5-5.0%,而KVM则是1.25-1.5%。我是用vbox安装的win7, 使用vdi磁盘格式,然后又用kvm来启动win7.vdi对比的。
对了,补充一点,是执行super pi的速度,计算1M的。
在vbox中,测试4次, 每次在了29-31秒;
而在KVM中,测试3次,每次在了23-24秒.
在本机arch中用wine来执行,是21.5秒.
另外,感谢liangmenglm 的回复,了解了不少KVM的知识。:D
正在折腾kvm的网络,vde,bridge什么的,要是kvm有vbox的gui这么方便的话,那该多好啊... :em11