书合文秘网 - 设为首页 - 加入收藏
当前位置 首页 > 范文大全 > 公文范文 >

云计算环境中虚拟机性能评测工具的研究与设计

作者: 浏览数: 关键词: 虚拟机 评测 性能 环境 计算


打开文本图片集

【摘要】 介绍了云计算环境中服务器的部署方式及优缺点,总结了传统的服务器性能评测工具的特点,特别是对于云计算场景下的服务器测试方面的不足及存在的问题。基于此,分析了云计算环境中虚拟机性能测试的需求,并提出了虚拟机性能评测方法,主要针对性能评测工具的功能及关键问题进行了比较全面合理的方案设计。

【关键词】 云计算;虚拟机;性能评测;多虚拟机;评测工具

【中国分类号】 TP311

【文献标识码】 A

0 引言

近年来,随着计算机硬件和信息技术的迅速发展,云计算的技术及理念不断成熟和深入人心,成为计算机领域的研究热点,其作为一种全新的商业服务模式在信息处理和使用领域展现出巨大优势。云计算环境的数据中心由很多真实的服务器集中在一起,组成一个可扩展、高可用和高可靠的资源池,通过虚拟化技术屏蔽了底层复杂的物理环境,使用负载均衡机制将大量的并发访问或数据流量分配到多台虚拟服务器上进行处理。用户根据需要获得相应的服务资源,例如传统的网站服务、邮箱服务、数据库服务,以及各种搜索、地图等应用的服务。在云计算环境中,硬件包括服务器及网络设备不再以单个的个体而存在,而是集成在一起组成虚拟化架构体系。传统操作系统的性能评测工具虽然在一定程度上反映了虚拟机的某方面性能,但是已经不能满足云计算环境中多虚拟机同时运行时的性能评测需求。本文选取了云计算环境中典型的服务,提出面向云计算环境的虚拟机性能评测方案,以实现对虚拟机服务器的综合性能评价。

1 服务器部署方案

将多种服务部署到物理服务器上,首先想到的方案是将多个服务直接部署在一台高性能物理服务器上,即在一台物理服务器上部署多种服务,优点是资源利用率高,开销小,但是这种部署方式安全性、可靠性差,一旦受到外部攻击或遇到系统内部故障,将导致所有服务瘫痪。为了避免不同服务器之间的相互影响、相互干扰,另一种解决方案就是把一个服务只部署在一台物理服务器上,为不同的服务准备独立的物理服务器,这种部署方式的优点是可靠性高,安全性好,一台服务器受到外部攻击或发生故障,不影响其他服务的正常工作,但是IT企业需要购买更多的服务器,需要更多放置服务器的空间和相应的环境控制设备,以及由此导致的能源消耗使得成本巨大。而且,大多服务器的CPU计算能力、存储空间等资源没有得到充分利用,硬件利用率低下。

如何解决安全可靠与成本之间的矛盾呢?随着虚拟机技术的发展成熟,出现了服务器整合的服务部署方案。服务器整合是虚拟化技术在云计算环境中的一个典型应用,就是在一台物理服务器或一套硬件资源上虚拟出多个虚拟机,让不同的服务运行在不同的虚拟机上。服务器整合前后的场景对比如图1所示。

服务器整合方式通过虚拟化技术将实现不同服务的虚拟机建立在同一物理服务器之上,在提高了硬件利用率、减少成本开销的同时,还保证了系统的安全性和可扩展性。该部署方案优势明显,是各云计算服务提供商普遍采用的方式。目前很多公司提供了比较成熟的虚拟化解决方案,如Citrix公司的Xen,IBM公司的PowerVM、zVM,Microsoft公司的Virtual PC、Vitual Server和Hyper-V以及VMware公司的VMware Server、VMware Workstation等。

2 当前虚拟机性能评测的问题

服务器的整合带来的优势显而易见,也是云计算环境的一个新的场景。虚拟化作为能充分利用服务器性能的技术得到业界的一致认可,但是如何衡量虚拟服务器的综合性能却是一个问题。多个虚拟机共同部署在同一物理服务器上,共同分享物理服务器的资源,理论上相互间独立,但是当各虚拟机上的负载压力相差比较大时,会对虚拟机系统的性能产生一定影响。传统的服务器性能评测工具很多,例如来自于标准性能评测公司的SPECcpu、SPECweb、SPECjbb/SPECAppServer、SPECmail、SPEC MPI等就是分别针对处理器、Web服务器、Java应用、邮件服务器和高性能计算的基准测试项目,类似的工具还有LMbench、Vbench、Unixbench、Netperf、IOzone等,但这些基准测试工具仅侧重于对系统性能的一个或少数几个侧面的监测和分析,缺乏综合性的性能监测手段,不能获得服务器上同时支持多个工作负载时服务器的综合性能。所以,如何评测云计算环境中虚拟机系统的性能,量化服务质量,以便查找系统部署的问题和资源瓶颈,成为当前测试方面的一个研究热点。

一些主流的虚拟化厂商和组织针对新的场景进行了研究和开发,目前来说这方面的工具主要有vConsolidate、VMmark和SPECvirt。这些工具都不是开源的工具,购买价格昂贵,不能根据实际情况进行扩展或剪裁。VMmark和vConsolidate都依赖于一个针对邮件服务器的,叫做LoadSim 的基准测试程序,这个基准测试程序只能配合Microsoft公司的Exchange Server 使用,vConsolidate目前是在Intel内部使用,VMmark测试对象仅为VMware公司的虚拟化管理产品,这些工具的应用存在一定的局限。

3 云计算环境虚拟机性能评测工具设计方案

面向云计算的虚拟机性能评测需要综合考虑计算机软硬件、虚拟化方案以及云计算环境中的一些特殊应用场合(例如服务器整合、动态迁移等),有针对性地开发自动化测试框架和基准测试程序。实现虚拟机性能评测工具的任务是通过与用户直接交互,实现基准测试程序、测试过程及测试结果的管理维护,为用户提供一个简单直观、方便操作的测试工具,以便对计算机硬件、软件以及虚拟机管理软件的综合性能做出评价,找出系统瓶颈以进行系统调优。

3.1 测试场景及功能需求

在进行服务器性能测试时,通常的做法是在一台或多台客户机上运行基准测试程序,模拟虚拟用户向服务器发送请求得到测试数据,但是面向云计算环境要测试的虚拟机数量比较多,如果为每个虚拟机增加额外的计算机运行基准测试程序将会使得整个测试场景中客户计算机过多,不便于统一维护管理。所以本工具将各基准测试程序部署在虚拟机服务器上运行,虽然基准测试程序的运行占用了一定的系统资源,但是系统的综合评价是通过不同配置的差异比较得出的,由于基准测试程序占用的系统资源基本一致,所以不会影响不同的被测虚拟机服务器综合性能的比较。因此,整个测试系统只需要由两台计算机组成:一台为测试管理计算机和一台虚拟服务器计算机。虚拟服务器的配置要求较高,需要能够在其上通过虚拟化管理软件创建多台虚拟机,并安装需要的服务器软件。

本工具选取了云计算环境中最典型的五类服务器作为测试对象,分别为Web服务器、数据库服务器、邮件服务器、应用服务器和空闲服务器,由于空闲服务器不提供服务,只是为了模拟云计算环境中的服务器整场的真实场景,不需要基准测试程序。系统测试场景布局如图2所示。

测试管理计算机负责与用户交互,主要包括搭建测试环境、配置测试方案、部署基准测试程序、驱动测试执行、监控测试状态和处理测试结果等工作。虚拟机性能评测工具的用例图如图3所示。

用户主要通过对测试管理计算机的操作完成虚拟机的整个测试过程,通过分析该系统用例图,明确该工具应具有如下功能。

1) 配置测试方案

即测试用例可以根据各种测试环境(包括硬件环境和软件环境)灵活调整,由于用户对于虚拟机产品的性能指标(并发用户数、响应时间、出错率等)要求不同,就导致了测试方案的不同,所以一个基本的需求就是要针对不用的用户要求配置不同的测试方案,根据不同的测试环境设置适合的参数。

2) 部署基准测试程序

在开始测试之前,需要将测试管理计算机上的基准测试程序发送部署到被测系统的相应虚拟机上,以完成测试方案的部署;在测试过程中,提供不同服务的不同虚拟机需要执行各自的的基准测试程序。该功能的提出主要是应对这样一种场景,在多虚拟机服务器测试时,通过测试管理端的用户界面将基准测试程序自动部署到被测系统上,而不是用户在每台虚拟机上手动安装基准测试程序,为测试人员减轻工作强度、节省测试时间。

3) 驱动测试程序

驱动测试程序的目的是使各虚拟机的基准测试程序同时运行,该功能是面向云计算服务器整合场景的特别需求,以尽可能的贴近实际环境。在云计算环境中,在一个物理机载体上,往往同时部署多个虚拟机,不同的虚拟机用于提供不同的服务。如果对某个虚拟机进行测试而让其他虚拟机空闲,可能存在被测虚拟机争用其他虚拟机资源的情况,只有在所有的虚拟机都忙碌的情况下,才能尽可能避免资源争用问题。所以要求各虚拟机同时运行基准测试程序,尽量满负荷工作,并且运行的测试时间相同。

4) 监控测试状态

由于测试管理与基准测试程序处于不同的机器上,需要采取远程测试监控方法。监控内容包括:待测系统虚拟机上是否运行基准测试程序、各虚拟机系统资源(包括CPU、内存、磁盘I/O等)的使用情况以及主要测试指标,要求能够实时反馈到控制管理计算机的UI用户界面。要求每个虚拟机基准测试程序为主控制程序提供控制通信监控接口。

5) 处理测试结果

测试完成后,需要从远程机器上读取测试数据。测试结果的数据量很大,依靠人工进行分析费时费力,而且容易出现人为错误。所以需要该工具具有数据处理分析功能,即对大量的测试数据进行提炼,产生一个或者几个能够反映出系统的性能数据,这些数据经过标准化处理,得到能够体现系统综合性能评价,并呈现给用户。

3.2 虚拟机性能评测工具的方案设计

本文提出的虚拟机性能评测工具采用三层结构设计:用户界面层、业务逻辑层和测试负载程序层,用户界面层和业务逻辑层位于测试管理计算机上,测试负载层位于被测系统的各虚拟机上。系统的结构如图4所示。

3.2.1 用户界面层

用户界面层也称为UI层,是功能的表示层,只负责功能的调用,功能的实质需要由业务逻辑层实现。系统在这一层提供测试方案管理、测试程序部署、测试过程控制、测试状态显示、测试数据处理等功能。通过测试方案管理功能可以添加、删除、修改测试方案,可以根据根据实际情况选择合适的测试方案,主要包括测试参数(包括并发数、测试持续时间等)的管理和虚拟机信息的管理。测试程序部署是将基准测试程序自动部署到对应的被测虚拟机上,用户可以查看到注册的虚拟机状态,包括系统的配置信息和已经部署的基准测试程序等信息,可以实现为虚拟机部署或撤销部署基准测试程序。

该功能的操作必须在测试方案管理之后进行。测试控制功能是在用户设定测试方案并成功部署基准测试程序后,为用户提供了开始测试、结束测试、清除测试状态等操作,测试方式可以选择单一虚拟机进行测试,也可以选择多个虚拟机同时测试。测试过程中虚拟机出现异常情况可以结束测试,开始新的测试前需要清除测试状态才能开始新的测试。测试状态显示功能将测试状态及时反映给用户,以便随时监控或及时发现出现的异常情况并处理。测试数据处理功能是将测试数据进行综合分析处理后的数据直观的显示出来,为用户比较虚拟机性能提供参考。

3.2.2 业务逻辑层

业务逻辑层是中间层,它是系统纽带,负责管理测试负载程序层,并为用户界面层提供支持,使整个测试程序形成一个整体系统。这一层主要模块有主程序、测试程序管理、测试管理、数据通信、数据处理、测试监控等模块。

测试程序库存储测试程序信息,在测试程序库中,记录测试程序的路径信息,而测试程序存储在指定的目录中。测试管理程序是一个基于事件的多线程程序,用于控制整个测试过程,向各个客户端发出执行测试的命令,收集客户端和服务器的性能参数。

数据通信模块主要实现基准测试程序和监控器端的数据通信,通过对socket 函数的封装来实现。主控程序负责整个业务逻辑层的管理并且直接与用户进行交互,协调各个模块之间的关系。测试监控模块负责监听虚拟机的事件及状态数据信息,收到事件后通过主控程序调用测试管理模块进行相应处理工作,并将数据提供给用户界面层。数据处理模块实现了测试结束后的数据读取分析和处理,结果通过用户界面层显示给用户。

3.2.3 测试负载程序层

测试负载程序层位于远程的各虚拟机上,是真正的测试执行层。这一层的主要功能模块有通信模块、测试引擎和基准测试程序。

与业务逻辑层的通信模块一样,测试负载程序层通信模块的任务是负责与业务逻辑端的通信,通过对Socket 函数封装实现。测试引擎模块主要负责管理本地测试程序的运行,其工作包括负责监听消息事件,根据用户命令启动和关闭测试程序、回收测试结果,监控被测虚拟机的资源状况等。基准测试程序部署在各个虚拟机,用于响应控制程序的命令执行测试。

虽然传统的服务器测试工具不能直接应用于服务器整合场景的虚拟机性能评测,但是国内外对于各种服务器的测试方法,测试工具发展比较成熟,基准测试程序可以充分借鉴成熟的测试方法,并根据云计算的应用场景加以改进而实现。

3.3 系统数据流程

系统正常运行之后将在测试管理端和各虚拟机端分别启动程序,用户界面层、业务逻辑层和测试负载程序层之间的数据结构流程如图5所示。

由系统的数据流程图可以看出,启动测试管理端的程序后,打开网络端口并进入异步消息等待模式,开始监听虚拟机测试负载端的连接注册信息;然后启动各虚拟机端的通信程序,同样打开网络端口监听测试管理端程序发来的消息,然后收集本地信息向测试管理端注册,注册成功就表明该虚拟机准备就绪,进入异步消息等待模式,等待来直测试管理计算机端的消息指令。

测试管理计算机端的用户界面负责接收用户输入的数据和响应用户操作,从配置测试参数界面输入参数数据包括待测虚拟机的的URL、并发数、模拟用户数、测试时间等,然后更新基准测试程序的配置文件中的对应参数信息;通过部署测试程序界面将基准测试程序文件打包发送到对应的被测虚拟机,被测虚拟机将收到的基准测试程序解包到指定目录并安装,然后等待开始测试的消息。

由测试管理端发出启动测试命令,发送给各虚拟机测试程序,基准测试程序同时启动,读取配置文件中的参数信息,根据测试参数和测试脚本中传入的测试对象集来创建Socket连接池和线程池。Socket连接池的大小和每个Socket连接由测试对象集和线程数决定,线程池的大小由线程组属性参数决定。通过启动和调度每个测试线程,模拟真实用户行为,向服务器发送请求进行负载压力测试,获取测试数据后,将测试的原始数据以文本形式暂时保存在虚拟机的硬盘。测试过程中,测试管理程序采取按照一定时间间隔定时读取各虚拟机的状态信息,为了避免网络流量过大,需要设置合理的数据读取时间间隔。测试完成之后,测试管理程序读取各虚拟机的结果数据并进行标准化处理,得出虚拟机服务器的综合评分。

3.4 系统服务器性能评分标准

评测服务器处理能力的测试体系(BenchMark)有多种。国际上主流厂商通常采用TPC委员会制定的TPC-C测试基准。TPC委员会是一个中立测试机构,主要工作是制定各类测试指标的测试基准及测试规范。目的在于客观地评估业界各个产品提供商的系统性能指标,结果具有公开性和权威性。

TPC-C测试基准主要用于测试主机服务器系统每分钟能够处理的交易数,即TPM值(Transaction Per Minute,每分钟处理的交易数)。在实际业务应用系统选择测试指标时,必须考虑到多方面的因素,以最大程度地做到综合反映系统的性能。本工具选取各服务器的每分钟交易数TPM作为性能评测的指标。为了使TPM真实的反映出系统的综合性能,提出了以下TPM计算公式来反映业务对于主机处理能力的需求:

TPM=M×M0/(T×M1)

其中的参数说明如下:

M:为测试中的并发交易量,即用系统用户数量来衡量,为用户设定值。

T:为平均交易时间,通过基准测试程序测试得到。

M0:为实际交易操作的复杂程度比例。可以根据请求的操作复杂度或请求文件大小设定一个合理的值。

M1:为主机CPU利用率。通常,一台主机服务器的CPU利用率高于80%则表明CPU的利用率过高,会产生系统瓶颈;而利用率处于60%左右时,处于利用率的最佳状态。所以,将CPU利用率也作为计算TPM的一个指标。

测试结束后,每个虚拟机都会得到反映该虚拟机性能的TPM值,该工具为每个虚拟机设定了一个基准值,这个基准值可以为对单一服务器的测试得到的TPM值或者根据实际经验获得,然后将测试的TPM值与对应基准值的比值根据实际情况加权平均后得到对系统的综合性能评价。例如,Web服务器、数据库服务器、邮件服务器和应用服务器经过测试得到的TPM值分别为W1、D1、I1、A1,对应的基准值分别为W0、D0、I0、A0,根据实际情况各服务器使用所占的比重分别为f1、f2、f3、f4。所得到的系统最终评分P_Mark公式为:

P_Mark=f1×W1/W0+f2×D1/D0+f3×I1/I0+f4×A1/A0

4 结束语

本文提出的面向云计算的虚拟机性能评测工具方案借鉴了比较成熟的虚拟机性能评测方法,应用该工具能够实现对服务器整合场景下的虚拟机性能评测,能够得到直观的标准化得分,可以为面向云计算环境的虚拟机性能评测的测试人员查找性能瓶颈或者为用户选择虚拟化软硬件搭配方案提供参考。

参考文献

[1] 虚拟化与云计算小组.虚拟化与云计算[M].北京:电子工业出版社,2009.10.

[2] 金海等著.计算系统虚拟化——原理与应用[M].北京:清华大学出版社,2008.12.

[3] 黄达伟,叶可江等.虚拟计算系统性能评测[J].中国计算机学会通讯,2011.10第10期.

[4] 虚拟化与云计算小组.云计算宝典技术与实践[M].北京:电子工业出版社,2011.9.

[5] 陈青茶.虚拟化计算系统性能评测管理工具的研究[D].华中科技大学硕士论文,2008.5.

[6] 兰雨晴,宋潇豫,马立克,徐舫.系统虚拟化技术性能评测[J].电信科学,2010年第8A期.

[7] 怀进鹏,李沁,胡春明. 基于虚拟机的虚拟计算环境研究与设计[J]. 软件学报,2007(4).

[8] 黄宇华.虚拟服务器聚合动态性能评测系统[D].华中科技大学硕士论文.2008年6月.

[9] 曹向志,于涌,高楼著.软件测试项目实战-技术流程与管理[M].北京:电子工业出版社,2010.4.

[10] Intel开源软件技术中心,复旦大学并行处理研究所.系统虚拟化-原理与实现[M].北京:清华大学出版社,2009.3.

[11] 周斌.虚拟机显示性能评测系统[J].计算机工程.2011年1月第37卷第1期.

[12] D. Ye, Q. He, H. Chen, and J. Che. A Framework to Evaluate and Predict Performances in Virtual Machines Environment[C]. IEEE/IFIP International Conference on Embedded and Ubiquitous Computing, 2008.

基金项目:

国家“核高基”专项《国产基础软件集成应用测试》(2009ZX01045-005-002)。

作者简介:

冯运辉(1979-),男,河北廊坊人,工程师,硕士在读;主要研究领域为计算机软件与理论。

兰雨晴(1969-),男,副教授;主要研究领域为操作系统、软件工程。

相关文章:

Top