原文地址:http://my.oschina.net/guol/blog/79023
初始测试xen和kvm两款虚拟机软件的稳定性及性能。
为了测试虚拟机运行时在宿主机上的瓶颈,需要同时在同一台宿主机上面根据业务需求启动尽量多的虚拟机,以便观察资源的分配调度情况,根据我们宿主机的情况,每台宿主机适合分配两台2CPU+4G MEM的虚拟机。所有类型的虚拟机均未做优化,xen和kvm均采用全虚拟化。
测试环境
XEN环境
宿主机参数
机器型号:PowerEdge R710
CPU型号:Intel(R) Xeon(R) CPU E5504 @ 2.00GHz * 4
MEM大小:4096 MB * 4
RAID模式:RAID5+hot
DISK大小:60G / + LVM 816.75 GB
操作系统:Debian6 最小化安装+必要的虚拟化环境
内核版本:XEN-4.0 2.6.32-5-xen-amd64 x86_64
文件系统类型:ext3
虚拟机环境
虚拟机名称:xen6
CPU型号:Intel(R) Xeon(R) CPU E5504 @ 2.00GHz * 2
MEM大小:4113384KB (4016MB)
DISK大小:30GB / + 2GB swap + 10GB home
文件系统类型:ext4
内核版本:2.6.32-5-amd64 x86_64
信息如下图:
虚拟机名称:xen7
CPU型号:Intel(R) Xeon(R) CPU E5504 @ 2.00GHz * 2
MEM大小:4113384KB (4016MB)
DISK大小:30GB / + 2GB swap + 10GB home
文件系统类型:ext4
内核版本:2.6.32-5-amd64 x86_64
信息如下图:
KVM环境
宿主机参数
机器型号:PowerEdge R710
CPU型号:Intel(R) Xeon(R) CPU E5504 @ 2.00GHz * 4
MEM大小:4096 MB * 4
RAID模式:RAID5
DISK大小:60G / + LVM 952.875 GB
操作系统:Debian6 最小化安装+(kvm内嵌内核不需要多余虚拟化环境)
内核版本:2.6.32-5-amd64 x86_64
文件系统类型:ext3
虚拟机环境
虚拟机名称:kvm1
CPU型号:QEMU Virtual CPU version 0.12.5 * 2 ( Bochs )
MEM大小:4111616KB (4015MB)
DISK大小:30GB / + 2GB swap + 20GB home
文件系统类型:ext4
内核版本:2.6.32-5-amd64 x86_64
信息如下图:
虚拟机名称:kvm2
CPU型号:QEMU Virtual CPU version 0.12.5 * 2 ( Bochs )
MEM大小:4111616KB (4015MB)
DISK大小:30GB / + 2GB swap + 20GB home
文件系统类型:ext4
内核版本:2.6.32-5-amd64 x86_64
信息如下图:
测试项目
稳定性测试
磁盘IO测试 IOzone
MEM测试 Memtester
Cpu测试 Cpuburn
性能测试
综合测试 Unixbench
注:所有的测试都是在宿主机上同时开启两台虚拟机并同时在虚拟机上进行测试,同时也可以测试虚拟机管理程序是否可以很好的均衡各个虚拟机的在宿主机上造成负载。虽然每台虚拟机都是双vcpu,但是在物理cpu之间的调度是动态的,是随机的分布在物理cpu的四个核上,为了避免出现cpu资源争用的情况,故所有的虚拟机vcpu和物理机的cpu核都进行的绑定,每台虚拟机绑定两个物理cpu核。所有的测试都是在vcpu绑定的情况下进行的。
kvm虚拟机的vcpu绑定情况如下:
xen虚拟机的vcpu绑定情况如下:
KVM性能测试
CPU稳定性测试
为了测试虚拟机cpu的稳定性,在虚拟机上使用./cpuburn-in 300进行测试,表示连续运行5个小时,由于虚拟机是双vcpu的所以需要启动两个进程。
如下图kvm宿主机的cpu使用情况,可以看到四个核都在100%左右,而且有两个kvm进程,表示启动了两台kvm虚拟机。
下图是在两台kvm虚拟机上的cpu使用情况,可以看到在两台虚拟机上cpu都在99%左右的使用率。
测试运行300分钟后,结果如下:
可以看到两台机器在300分钟内运行了很多次测试,即使cpu负载一直持续在100%,连续5个小时的测试都没有错误,cpu的稳定性可以得到保障。
MEM稳定性测试
每台虚拟机分配的为4G内存,因此我们选择3G内存用来测试,memtester 3G。
kvm1 kvm2 在经过近5轮测试后,均没发现错误
磁盘IO测试
Reader Report
Re-reader Report
Writer Report
Re-writer Report
综合测试
由于虚拟机都是双核的,所以在使用unixbench时需要指定两轮测试,第一轮是所有测试使用一个副本测试,第二轮测试采用两个副本并行测试,命令如下:./Run -q -c 1 -c 2
Kvm1测试结果如下图:
Kvm2测试结果如下图:
XEN性能测试
CPU稳定性测试
为了测试虚拟机cpu的稳定性,在虚拟机上使用./cpuburn-in 300进行测试,表示连续运行5个小时,由于虚拟机是双vcpu的所以需要启动两个进程。
如下图xen宿主机的cpu使用情况,使用xm top命令查看,由于top中显示的是以虚拟机为单位,并不是单个cpu的情况,可以看到两台xen虚拟机的cpu利用率都在199%左右。
下图是在两台xen虚拟机上的cpu使用情况,可以看到在两台虚拟机上cpu都在99%左右的使用率。
测试运行300分钟后,结果如下:
可以看到两台机器在300分钟内运行了很多次测试,即使cpu负载一直持续在100%,连续5个小时的测试都没有错误,cpu的稳定性可以得到保障。
MEM稳定性测试
xen6 xen7 在经过近5论测试后,没有发现错误。
磁盘IO测试
Reader Report
Re-reader Report
Writer Report
Re-writer Report
综合测试
由于虚拟机都是双核的,所以在使用unixbench时需要指定两轮测试,第一轮是所有测试使用一个副本测试,第二轮测试采用两个副本并行测试,命令如下:./Run -q -c 1 -c 2
Xen6测试结果如下图:
Xen7测试结果如下图:
综合对比
前面给出了xen和kvm测试的数据,主要是了解各自的性能以及稳定性,下来对这些数据做一下比较,看看两者之间有哪些差距。
Cpu测试对比
虽然kev和xen虚拟机都是双vcpu设置,每台虚拟机的cpu利用率都接近100%,也都运行5个小时,但是会发现在5个小时内每台机器测试过的次数是不一样。
可以看出在300分钟内xen的cpu测试次数比kvm多一点,运算能力会强一些,但是差距不大,可以忽略。
Mem测试对比
IO测试对比
Reader Report
Re-reader Report
Writer Report
Re-writer Report
综合测试对比
在经过综合测试后,不论是单个parallel还是两个parallel,xen的跑分测试都比kvm要好。
各位觉得哪里测试手段有问题可以提示一下,本人非专业选手啊。