KVM可扩展性测试报告

by yaonli(http://www.yaronspace.cn/blog)

测试设计

对KVM虚拟机可扩展性测试,主要是指随着虚拟机的数量的增加,虚拟机的在CPU利用率、内存使用、磁盘IO和网络IO的性能是否表现良好,最后能够给出在物理机一定硬件条件下,可运行的虚拟机的数目的最佳指标。

在具体的设计方案上,在物理机上分别启动1到16个虚拟机,然后从CPU利用率、磁盘IO和网络IO三个方面进行分析,这里需要说明下没有测试内存使用的情况的原因:针对KVM来说,分配给虚拟机的内存大小是事先指定,加入分配512M内存,则虚拟机的物理内存就是512M内存,分析意义不大;

1,  CPU利用率测试上

在测试虚拟机CPU利用率方面,主要是CPU密集型的软件进行测试,计算最终的执行时间;例如内核的编译或者bzip2对大文件进行压缩,都是CPU计算性。本次测试选用bzip2 对1.8G的镜像文件进行压缩,计算最终的执行时间。

date+%s.%N && bzip2 –9 windows_2003_server.img && date +%s.%N

2,  磁盘IO测试

测试磁盘IO的话,我选择用的是Bonnie++ 软件,并发地从虚拟机1台到16台的进行测试,执行命令如下:

./bonnie++ -d ~/test –s 1000

3,  网络IO测试

鉴于如果使用网卡类型如rtl8139或者e1000,效率非常低,所以本次测试网卡类型都是基于virtio网卡类型,然后并发地从物理机到1到16台虚拟机进行并发通信,主要是利用nertperf软件进行测试.

测试环境

物理主机硬件配置

1,  8核Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz

2,  16G内存

3,  1.4T硬盘

4,  千兆以太网卡

物理主机的软件配置

1,64Bit CentOS 5.3  2.6.18-128.el5

2,kvm-88

虚拟机分配的硬件配置

1,  单核CPU

2,  512M内存

3,  Virtio 网卡

4,  qcow2 format 增量镜像

虚拟机的软件配置

1,8.04 ubuntu系统

测试数据

1, CPU执行时间

上面这图例说明,随着虚拟机数目的增加,CPU执行时间在5-9虚拟机时呈现一种稳定的状态,但是当虚拟机达到10个时,CPU执行时间呈现较大的增长,然后在10-12个虚拟机时呈现稳定装填,当虚拟机数目到达13以上,CPU时间呈增长趋势。

第一个这个图例说明,在虚拟机的数目达到8个时,执行bzip命令的时间基本上是相同的,也就是说在CPU调度方面达到了均衡,平均分配CPU时间;但是在虚拟机的数目达到9个时,每个虚拟机的CPU执行时间出现了波动,有的执行的时间长,有的执行时间短,CPU没有达到调度平衡。

2,网络IO数据

由实验数据可知,使用virtio技术,虚拟机的网络吞吐,随着虚拟机数量的增加,实际网络IO基本达到理想的网络IO的水平,即如果物理网卡是千兆网卡,虚拟机的网络IO吞吐为100M/n,n代表同一台物理机上虚拟机的数量.

3,磁盘IO数据

上面两个图分别代表对虚拟机进行磁盘的Block Read Write操作的结果,由图可知,磁盘的并发写操作的效率随着虚拟机数目的增加下降的快,而并发读操作下降的不是很明显,当虚拟机的数目达到10时,磁盘的并发读操作急剧下降,可以作为分隔点 (Bonnie++ 软件把字符和块测试放到一起,这里我只列出了block读写的数据,测试数据是否准确有待进一步验证)。

结论

通过对虚拟机的CPU执行时间、网络IO和磁盘IO的测试,在现有硬件条件支持下,KVM虚拟机的数量在维持在8-10个是较稳定的状态,各个虚拟机的衡量指标达到比较稳定的值。

在这种物理主机硬件配置条件下

1,  8核Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz

2,  16G内存

3,  1.4T硬盘

4,  千兆以太网卡

建议KVM虚拟机的配置:

1,  单核CPU  (多核性能未测试)

2,  1G内存   (物理内存完全可以满足需求,所有可以开的大一些)

3,  百兆网卡 virtio

单台物理机启动虚拟机的数目在8-10左右,建议为8个虚拟机

来自yaronspace.cn  本文链接:http://www.yaronspace.cn/blog/index.php/archives/1102