热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

KVM虚拟技术可扩展性研究

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

对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个虚拟机


推荐阅读
  • 如何在Mozilla Firefox中调整GIF动画的循环次数
    本文介绍了如何通过调整Mozilla Firefox的高级设置来控制GIF动画的播放次数,帮助用户根据个人喜好自定义浏览体验。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 当本地计算机的时间被手动调整至一年前,尝试访问网络中的其他计算机共享资源时,会出现持续要求输入用户名和密码的情况,即使输入正确的凭证也无法成功访问。 ... [详细]
  • 本文详细介绍了在 Ubuntu 16.04 系统上安装和配置 PostgreSQL 数据库的方法,包括如何设置监听地址、启用密码加密、更改默认用户密码以及调整客户端访问控制。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 在 CentOS 7 环境中使用 MySQL 5.6 镜像启动数据库时遇到权限问题,本文将详细探讨并提供解决方案。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
author-avatar
神的禁卫军
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有