8.2.4 性能测试数据
由于使用的硬件平台、操作系统、内核、qemu-kvm等对本次CPU性能测试都有较大影响,而且本次仅仅使用了Intel Xeon E5-4650处理器上的4个CPU线程,所以本次CPU性能测试数据并不代表该处理器的实际处理能力,测试数据中绝对值的参考意义不大,请读者主要参考其中的相对值(即KVM客户机中的测试结果占原生系统中测试结果的百分比)。
1)SPEC CPU2006
在非虚拟化的原生系统和KVM客户机中,分别执行了SPEC CPU2006的rate base类型的整型和浮点型测试,总体结果如图8-1所示,测试的分数越高表明性能越好。由图8-1中的数据可知,通过SPEC CPU2006基准测试的度量,KVM虚拟化客户机中CPU做整型计算的性能达到原生系统的97.04%,浮点型计算的性能达到原生系统的96.89%。
图8-1 SPEC CPU2006整型和浮点型测试的总体结果对比[5]
SPEC CPU2006的整型计算测试中各个基准测试的性能得分对比,如图8-2所示,各个基准测试的结果都比较稳定、波动较小。
图8-2 SPEC CPU2006整型测试数据的对比
SPEC CPU2006的浮点型计算测试中各个基准测试的性能得分对比,如图8-3所示,其中有两项测试(410.bwaves和470.lbm)的对比结果为100%,也有一项测试(416.gamess)的对比性能稍微差一点(为78.40%)。
图8-3 SPEC CPU2006浮点型测试数据的对比
2)内核编译
分别在原生系统和KVM客户机中编译Linux内核,记录所花费的时间。这里为了测试结果的准确性,图8-4展示的内核编译时间都是测试了3次然后计算的平均值。
图8-4 内核编译所需时间的对比
如图8-4所示,时间长度越短说明CPU性能越好,在本次示例中,总体来说,KVM客户机中编译内核的性能为同等配置原生系统的94.15%左右。
3)Super PI
分别在原生系统和KVM客户机中执行Super PI基准测试程序,分别重复执行3次取平均值,一次计算所花费的时平均间对比如图8-5所示,其中的时间长度越短说明性能越好。从图8-5看来,本次Super PI测试示例中,客户机CPU性能约为原生系统的97.17%。
图8-5 Super PI基准测试数据对比
从SPEC CPU2006、内核编译、Super PI等3个基准测试的数据看来,其中有两个测试(CPU2006和Super PI)显示KVM虚拟化中CPU性能为原生系统的97%左右,另一个测试(内核编译)显示KVM中CPU性能为原生系统的94%。由于内核编译也同时是磁盘I/O密集型的计算,所以可能是由于磁盘I/O的性能差异而导致了它效果与另外两个测试的结果稍微有一点差距。
Hi,你好,我们最近也测试了一下KVM虚拟机的cpu性能,用的工具也是cpuspec2006,但虚拟机实际性能相对物理机下降了20%左右,请问你在测试的时候虚拟机的vcpu和物理机cpu进行了绑定吗?
你好,我这篇写文章时做的实验,没有绑定vCPU和pCPU,而且我当时也绑定过试了一下没啥大的差别~ 我用的KVM (kernel)是3.5.0/3.7.0哦,qemu-kvm 1.2.0哦 你的如果比较老,那么可能性能会差一些;另外,我用的CPU是Intel比较新的,如果你是很老的CPU(例如EPT没有支持),则可能内存虚拟化效率很低,也会影响CPU2006 Benchmark的测试结果。
我的硬件配置是 Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz, 2numa,32核。用的kvm内核为3.2,qemu-kvm为1.1.2. 测试的时候,在物理机上的4个cpu上跑4个任务,发现不同numa节点上的cpu组合跑出来的数据存在较大差异,如在不同numa节点上不同物理核上的4个cpu跑出来的数据比同一numa节点上的2对超线程cpu的数据要好30%左右。据此推测,如果不绑定cpu来保证物理机和虚拟机都在同一组cpu上跑测试,测试出来的结果可能会存在一定的误差~
你这种情况,不好分析哦;我这里也有NUMA结构的机器(跟你那个CPU差不多的),没有遇到你的情况,至少没遇到差距那么大的~~
你好博主,我想咨询下现在对各品牌虚拟机的横向对比是否有什么好的测试软件,有没有相关文章推荐一下呢,谢谢了~
可以在相同硬件上,一次用一个虚拟机,然后测试客户机中的CPU/内存/磁盘/网络等性能,并监控宿主机的资源利用情况,然后进行对比。具体的一些测试工具:可以在本博客中找到一些零碎的;也可以在我的kvm书中找到,里面有专门一章讲如何测试KVM的性能。