原文地址: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

            信息如下图:

XEN4.0 && KVM性能稳定性测试_KVM

 

            虚拟机名称: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

            信息如下图:

XEN4.0 && KVM性能稳定性测试_KVM_02

         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

             信息如下图:

XEN4.0 && KVM性能稳定性测试_KVM_03          

              虚拟机名称: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

              信息如下图:

XEN4.0 && KVM性能稳定性测试_XEN_04

    测试项目

          稳定性测试

                 磁盘IO测试  IOzone  

                 MEM测试  Memtester

                 Cpu测试  Cpuburn

           性能测试

                 综合测试   Unixbench

            注:所有的测试都是在宿主机上同时开启两台虚拟机并同时在虚拟机上进行测试,同时也可以测试虚拟机管理程序是否可以很好的均衡各个虚拟机的在宿主机上造成负载。虽然每台虚拟机都是双vcpu,但是在物理cpu之间的调度是动态的,是随机的分布在物理cpu的四个核上,为了避免出现cpu资源争用的情况,故所有的虚拟机vcpu和物理机的cpu核都进行的绑定,每台虚拟机绑定两个物理cpu核。所有的测试都是在vcpu绑定的情况下进行的。

      kvm虚拟机的vcpu绑定情况如下:  

XEN4.0 && KVM性能稳定性测试_KVM_05

      

      xen虚拟机的vcpu绑定情况如下:

XEN4.0 && KVM性能稳定性测试_XEN_06

 

    KVM性能测试

        CPU稳定性测试

            为了测试虚拟机cpu的稳定性,在虚拟机上使用./cpuburn-in 300进行测试,表示连续运行5个小时,由于虚拟机是双vcpu的所以需要启动两个进程。

             如下图kvm宿主机的cpu使用情况,可以看到四个核都在100%左右,而且有两个kvm进程,表示启动了两台kvm虚拟机。

XEN4.0 && KVM性能稳定性测试_KVM_07

             下图是在两台kvm虚拟机上的cpu使用情况,可以看到在两台虚拟机上cpu都在99%左右的使用率。

XEN4.0 && KVM性能稳定性测试_XEN_08

XEN4.0 && KVM性能稳定性测试_XEN_09

             测试运行300分钟后,结果如下:

XEN4.0 && KVM性能稳定性测试_KVM_10

XEN4.0 && KVM性能稳定性测试_XEN_11

XEN4.0 && KVM性能稳定性测试_KVM_12

XEN4.0 && KVM性能稳定性测试_KVM_13

             可以看到两台机器在300分钟内运行了很多次测试,即使cpu负载一直持续在100%,连续5个小时的测试都没有错误,cpu的稳定性可以得到保障。

 

        MEM稳定性测试

              每台虚拟机分配的为4G内存,因此我们选择3G内存用来测试,memtester 3G。

              kvm1 kvm2 在经过近5轮测试后,均没发现错误

XEN4.0 && KVM性能稳定性测试_KVM_14

XEN4.0 && KVM性能稳定性测试_KVM_15

        磁盘IO测试

            Reader Report

XEN4.0 && KVM性能稳定性测试_XEN_16

            Re-reader Report

XEN4.0 && KVM性能稳定性测试_KVM_17

            Writer Report

XEN4.0 && KVM性能稳定性测试_XEN_18

            Re-writer Report

XEN4.0 && KVM性能稳定性测试_KVM_19

 

        综合测试

            由于虚拟机都是双核的,所以在使用unixbench时需要指定两轮测试,第一轮是所有测试使用一个副本测试,第二轮测试采用两个副本并行测试,命令如下:./Run -q -c 1 -c 2

            Kvm1测试结果如下图:

XEN4.0 && KVM性能稳定性测试_KVM_20

XEN4.0 && KVM性能稳定性测试_KVM_21

            Kvm2测试结果如下图:

XEN4.0 && KVM性能稳定性测试_KVM_22

XEN4.0 && KVM性能稳定性测试_KVM_23

 

 

    XEN性能测试

        CPU稳定性测试

            为了测试虚拟机cpu的稳定性,在虚拟机上使用./cpuburn-in 300进行测试,表示连续运行5个小时,由于虚拟机是双vcpu的所以需要启动两个进程。

            如下图xen宿主机的cpu使用情况,使用xm top命令查看,由于top中显示的是以虚拟机为单位,并不是单个cpu的情况,可以看到两台xen虚拟机的cpu利用率都在199%左右。

XEN4.0 && KVM性能稳定性测试_XEN_24

            下图是在两台xen虚拟机上的cpu使用情况,可以看到在两台虚拟机上cpu都在99%左右的使用率。

XEN4.0 && KVM性能稳定性测试_KVM_25

XEN4.0 && KVM性能稳定性测试_KVM_26

            测试运行300分钟后,结果如下:

XEN4.0 && KVM性能稳定性测试_KVM_27

XEN4.0 && KVM性能稳定性测试_KVM_28

XEN4.0 && KVM性能稳定性测试_KVM_29

XEN4.0 && KVM性能稳定性测试_KVM_30

            可以看到两台机器在300分钟内运行了很多次测试,即使cpu负载一直持续在100%,连续5个小时的测试都没有错误,cpu的稳定性可以得到保障。

 

         MEM稳定性测试

             xen6 xen7 在经过近5论测试后,没有发现错误。

XEN4.0 && KVM性能稳定性测试_XEN_31

XEN4.0 && KVM性能稳定性测试_KVM_32

        磁盘IO测试

            Reader Report

XEN4.0 && KVM性能稳定性测试_XEN_33

            Re-reader Report

XEN4.0 && KVM性能稳定性测试_XEN_34

            Writer Report

XEN4.0 && KVM性能稳定性测试_KVM_35

            Re-writer Report

 XEN4.0 && KVM性能稳定性测试_XEN_36

        综合测试

            由于虚拟机都是双核的,所以在使用unixbench时需要指定两轮测试,第一轮是所有测试使用一个副本测试,第二轮测试采用两个副本并行测试,命令如下:./Run -q -c 1 -c 2

            Xen6测试结果如下图:

XEN4.0 && KVM性能稳定性测试_XEN_37

XEN4.0 && KVM性能稳定性测试_XEN_38

            Xen7测试结果如下图:

XEN4.0 && KVM性能稳定性测试_KVM_39

XEN4.0 && KVM性能稳定性测试_XEN_40

 

 

       综合对比

           前面给出了xen和kvm测试的数据,主要是了解各自的性能以及稳定性,下来对这些数据做一下比较,看看两者之间有哪些差距。

          Cpu测试对比

              虽然kev和xen虚拟机都是双vcpu设置,每台虚拟机的cpu利用率都接近100%,也都运行5个小时,但是会发现在5个小时内每台机器测试过的次数是不一样。

XEN4.0 && KVM性能稳定性测试_KVM_41

              可以看出在300分钟内xen的cpu测试次数比kvm多一点,运算能力会强一些,但是差距不大,可以忽略。

         Mem测试对比

         IO测试对比

             Reader Report

XEN4.0 && KVM性能稳定性测试_KVM_42

             Re-reader Report

XEN4.0 && KVM性能稳定性测试_KVM_43

             Writer Report

XEN4.0 && KVM性能稳定性测试_KVM_44

             Re-writer Report

XEN4.0 && KVM性能稳定性测试_KVM_45

综合测试对比

     在经过综合测试后,不论是单个parallel还是两个parallel,xen的跑分测试都比kvm要好。

XEN4.0 && KVM性能稳定性测试_XEN_46

 

        

    各位觉得哪里测试手段有问题可以提示一下,本人非专业选手啊。