云计算性能测试框架的设计
2012-03-20宫立圆
许 伟 宫立圆
(莱芜职业技术学院 山东 莱芜 271100)
0 引言
云计算是处理和储存大量数据的一种新兴技术。它基于互联网分布式计算机协作,高效处理大量信息,同时确查询结果保快速反馈给用户。许多云计算用户不喜欢使用自己的物理基础设施,相反,他们从第三方租用基础设施,云平台和软件。这些基础设施提供的应用服务被称为云服务。[1]
云服务的一个关键技术就是容错技术。故障和异常会影响服务质量,甚至可用性。Coulouris[2]提出,故障发生在分布式系统,比如,在云计算系统,当一个进程或一个连接通道偏离其正常或预期时,故障就会发生。异常不同于故障,它会部分减弱云计算系统性能,而不是使其完全失效,它会影响某节点的任务性能,最终影响系统自身。
ISO 15939[3]描述了测试的四个步骤,如图1所示。
性能测试框架改进了ISO 15939中所描述的前两个测试步骤:(1)建立测试文件,(2)规划测试过程。这一框架定义了云计算性能测试的要求,数据类型,和评价标准。在未来的工作中,云计算系统测试方法和性能测试模型的设计将得到进一步发展。
1 计算机系统的性能测试方法
系统的性能测试方法中比较熟悉的一个是由Jain[4]提出的,他认为性能研究首先要建立一套性能标准来帮助实施系统测试过程。如果一个系统正确执行一个服务,其性能可通过三方面进行测试:(1)响应时间,(2)吞吐量,(3)占用率。并针对这三点分别提出一个测试过程。此外,Jain认为服务请求结果有三类:(1)该服务被正确执行,(2)该服务被非正确执行,(3)该服务被拒绝执行。他还对影响系统性能的每个可能结果,定义了三个性能:(1)速度,(2)可靠性,(3)可用性。
ISO 25010[5]标准从两个角度定义软件产品和计算机系统质量:
(1)使用质量模型:即产品在特定使用范围下相互作用的结果。
(2)产品质量模型:即软件的静态性能和计算机系统的动态性能。
ISO 25010中,两个性能决定了基于用户需求的特定环境下的产品质量。例如,性能效率和可靠性与具体专业领域用户相关,包括信息传输、管理、维护。执行效率包括:(1)时间行为,(2)资源利用,(3)容量。可靠性包括:(1)成熟度,(2)可用性,(3)容错,(4)可恢复性。
2 云计算性能指标
基于Jain提出的性能概念和ISO25010中定义的产品质量特征,我们认为云计算系统的性能取决于对提供有效和可靠服务的特点分析,该服务能够满足规定条件下和最大限度系统参数范围内的要求。性能相关的主要指标有:
性能效率:规定条件下使用的资源量,包括软件产品、软硬件配置、材料。
时间行为:响应时间、处理时间和产品或系统的吞吐率。容量:满足要求的参数的最大极限。
资源利用:执行其功能时,产品或系统所需的资源数量和类型。
可靠性:在特定时间段特定环境下,系统或组件执行规定功能的程度。
成熟度:一个系统在正常运行下满足可靠性要求的程度。
可用性:使用过程中,一个系统,产品或组件是否能运行和被访问。
容错:尽管存在硬件或软件错误,一个系统,产品或组件正常运作的程度。
可恢复性:产品或系统能够直接恢复发生干扰或失败事件中的数据的程度。
系统性能取决于性能效率和可靠性。性能效率决定一段时间内的资源使用数额,可靠性决定在相同时间段内系统成功执行特定功能的程度。假设云计算系统正确执行一个服务,但是,在其执行过程中,服务失败,后来又恢复。虽然服务最终成功完成,但是系统的可用性受到损害,这影响了云计算系统性能。
3 云计算性能测试框架设计
3.1 COSMIC测试方法模型
ISO 19761 COSMIC测试方法[6]定义了一个功能用户需求的软件性能模型。功能用户需求描述了软件或系统的功能。根据这一方法,每个功能用户需求以一个或多个功能过程表示,每个功能过程分配给一个软件来执行。反过来,每个功能过程以子过程表示,即数据传输类型或数据转换类型。
该功能模型中的四种数据传输类型是输入,输出,读和写。图2显示了通用软件的COSMIC模型。
COSMIC模型[7]中,如图2所示的左侧:软件可以由用户,硬件设备或其他软件通过设备使用,如键盘,打印机,鼠标等。此外图2右边,存储器硬件决定软件,如硬盘。因此,软件的功能可以被视为一个数据流的输入、输出、读、写数据。输入输出操作允许用户通过I/O设备进行数据交换,读取和写入数据操作允许软件和存储器之间进行数据交换。
图2 通用COSMIC模型
3.2 云计算系统性能测试框架
根据通用软件的COSMIC模型和上面提到的抽象算法,我们提出的通用云计算系统性能测试框架设计如图3所示。左边表示云计算系统,输入云计算系统的详细属性如内存使用,CPU占用率,网络连接信息等,以及用户应用程序的属性,如已完成的任务,错误的任务等。这些属性通过各种测量函数来量化效率和可靠性,以满足功能要求。这些测试函数将系统属性转化成表示性能的数值。属性测试的理想值表示系统要求即可行性所满足的值。与测试的实际值比较就能得到系统的满意程度。
图3 通用云计算系统测试框架
3.3 性能参数
性能测试框架确定后,下一步是确定各种性能相关的参数,并评估是否满足系统要求。我们选择ECSS[9]和ISO 25010[5]标准制定系统要求。确定测试的关键环节,而且这些已包括在框架中。这些性能参数组成各种函数,使用组合基础测试法引导测试过程。而且它们与ISO 25010质量体系概念相对应。
3.4 详细的性能测试框架
详细的云计算性能测试框架模型如图4所示。这些功能将通过一个中间服务进行连接,这个中间服务能分享基本的测试,来减少测试计算。
性能测试框架由七个质量控制组成。使用五个基本函数对每个概念进行衡量,通过中间服务共享基础测量。这意味着中间服务将分享从测量过程的每部分的结果。测试框架要求前期捕获所需的数据。这些数据可以使用自动数据采集软件进行收集。
图4 详细的云计算性能测试框架模型
3.5 测试的可行性
利用该框架,我们可以证明测试的可行性。例如,一个时间函数可以进行多种测试,如CPU占用,工作时间和响应时间。这些测试是通过使用数据采集器来获得所需要的基本测试数据。反过来,这些测试数据可以输入到时间函数,并计算出测试结果。这些测试根据用户,开发人员或维护人员的期望值组合起来。最后,根据初始性能要求,通过分析模型来对云计算系统性能进行分析。
4 总结
云计算是一种能高效地处理大量数据基于互联网的技术。它的一个最重要的挑战是提供一个高水平的耐故障和异常机制。本文提出了云计算系统的一种性能测试框架。这种框架确定了用的软件质量概念衡量集群行为所必要的元素。框架的设计是基于计量概念,和软件质量直接相关的性能概念。我们发现,性能效率和可靠性与Jain的测试结果密切相关。
需要进一步研究测试方法和云计算的应用程序性能分析机制,有助于评估验证我们提出的测试框架。预计未来将提出一种分析模型,能够检测可能存在的影响云计算系统性能的异常现象。
[1]H.Jin,S.Ibrahim,T.Bell,L.Qi,H.Cao,S.Wu and X.Shi,Tools and Technologies for Building Clouds.Cloud Computing:Principles, Systems and Applications,Computer Communications and Networks, Springer-Verlag,Berlin,2010.
[2]G.Coulouris,J.Dollimore and T.Kindberg.Distributed Systems Concepts and Design.Addison-Wesley,4th Edition,Pearson Education, Edinburgh,2005.
[3]ISO/IEC 15939 Systems and Software Engineering Measure.International Organization for Standardization ement Process,Geneva,2007.
[4]J.Raj.The Art of Computer Systems Performance Analysis:Techniques for Experimental Design,Measurement,Simulation,and Modeling.Wiley-Interscience,New York,1991.
[5]ISO/IEC 25010:2010(E)Systems and Software Engineering-Systems and Software Product Quality Requirements and Evaluation(SQuaRE)-System and Software Quality Models.International Organization for Standardization,Geneva,2010.
[6]ISO/IEC-19761 Software Engineering-COSMIC v 3.0A Functional Size Measurement Method.International Organization for Standardization,Geneva,2003.
[7]A.Abran.Software Metrics and Software Metrology.John Wiley& Sons Interscience and IEEE-CS Press,New York,2010,doi:10.1002/ 9780470606834.
[8]K.Sarayreh,A.Abran and L.Santillo.Measurement of Software Requirements Derived from System Reliability Requirements.Workshop on Advances on Functional Size Measurement and Effort Estimation,24th European Conference on Object Oriented Programming,Maribor,20-22,June,2010.
[9]ECSS-E-ST-10C Space Engineering:System Engineering General Requirements.European Cooperation for Space Standardization,Requirements&Standards Division,Noordwijk,2009.