基于性能模型的云平台性能评测方法
【技术领域】
[0001] 本发明涉及云平台性能评测领域,特别是一种基于性能模型的云平台性能评测方 法。
【背景技术】
[0002] 云计算已经成为当前计算机科学学术界和工业界最重要最热门的研究主题之一。 基础设施即服务是最基础的云服务模型,基础设施云提供商一般以虚拟机的形式将计算资 源和其他的一些资源提供给用户。一般会提供的资源包括虚拟机镜像、块存储或文件存储、 防火墙、IP地址、虚拟局域网、负载均衡器等等。随着云计算热潮的出现,云环境下的性能 评测也获得了越来越广泛的关注。不管是云服务提供商还是个人用户,他们都希望有公平 准确的性能评测标准对各种公有云和私有云平台适用。但是云环境的复杂性使得对云的性 能评测异于对传统虚拟化集群系统进行的性能评测。为了评测云系统的计算、存储、网络等 不同方面的性能,需要用到各种各样的负载,在这些负载之上会产生庞大的参数空间。而除 了这些基础性能之外,还需要对云的可靠性、可扩展性、可用性等多种其他方面进行评估才 能正确衡量一个云系统的能力。这些要求大大增加了性能评测工具的设计难度。目前已经 出现了各种各样的分布式系统性能评测工具,但是它们或者受限于云系统和测试负载的种 类,或者需要大量人工参与工作才能结束一个完整的测试周期。对能支持多种云系统并且 负载集可扩展的自动化性能评测工具和相关评测方法的需求非常迫切。
[0003] 在对云系统进行性能评测时会遇到各种复杂的测试场景,如静态并行场景和动态 增量场景。在这些场景下会用到各种不同的负载,每个负载都有很多可选择的配置参数。 多种负载的组合测试下,生成的数据量和与之对应的参数设置量更加随负载数的增多而迅 速增大。为了从如此多的数据中过滤出真正有意义的数据,并从中窥得云系统的性能和潜 力,需要一种好的建模方法和性能模型,来对实验数据进行分析解读,并准确地描述云系统 的综合性能。
【发明内容】
[0004] 本发明针对上述云平台性能评测所遇到的问题,结合优化设计的可扩展自动化性 能测试框架,提出了一种基于一系列基本模式和复杂模式的应用场景实验建立得到的新的 性能模型,在该框架中作为一个评测数据评估分析的模块,来对可扩展的云平台性能评测 得到的实验数据进行分析解读,并描述云系统的可扩展性。
[0005]本发明的技术方案提供了一种基于性能模型的云平台性能评测方法,包括:
[0006] 对各类云系统的接口进行抽象和总结,并对云资源操作逻辑进行封装,使得在测 试时,自动化分配和管理所述云资源;
[0007] 基于全新建模方式得到的性能评测模块对实验数据进行分析解读,对被测的云系 统各个方面的性能进行扩展性分析,归纳所述被测的云系统的规模变化时的性能模型,得 到相应应用场景下该云系统的性能的变化趋势和峰值。
[0008] 可选的,所述抽象包括所述云系统的基础信息以及用于操作所述云资源的一系列 接口。
[0009] 可选的,所述基于全新建模方式得到的性能评测模块对实验数据进行分析解读, 对被测的云系统各个方面的性能进行扩展性分析包括:数据收集及建模分析模块负责对测 试结果的数据进行收集、提取、分类工作,并分别从计算能力、网络能力、存储能力以及性能 归纳四个方面进行建模分析,给出可扩展性和性能分析结果。
[0010] 本发明的技术方案具有以下优势:
[0011] 通过对各类云系统的接口进行抽象和总结,将复杂的云资源操作逻辑进行封装, 实现测试时自动化分配和管理云端资源,并且由基于全新建模方式得到的性能评测模块来 对大量的实验数据进行分析解读,对被测云系统各个方面的性能进行扩展性分析,归纳被 测云系统规模变化时的性能模型,最终可以较为直观的得到相应应用场景下云系统性能的 变化趋势、峰值等情况,以此达到对云系统的性能评测和部署指导的作用。本发明帮助测试 人员从众多的数据中过滤出正真有意义的数据,并从中窥得云系统的性能和潜力,给出相 应应用场景下的性能变化及其趋势,为部署和维护云系统环境起到参考和指导作用。本发 明能够减轻测试者进行云性能评估时的工作量,预期它能为相关对云性能的研究工作提供 帮助和支持。
【附图说明】
[0012] 图1是本发明实施例提供的工作流程图;
[0013] 图2是本发明实施例提供的计算性能建模图。
【具体实施方式】
[0014] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明 的【具体实施方式】做详细的说明。
[0015] 在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不 同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类 似推广。因此本发明不受下面公开的【具体实施方式】的限制。
[0016] 结合图1详细说明本发明的技术方案:
[0017] -种基于性能模型的云平台性能评测方法,包括:
[0018]S1,对各类云系统的接口进行抽象和总结,并对云资源操作逻辑进行封装,使得在 测试时,自动化分配和管理所述云资源;
[0019]S2,基于全新建模方式得到的性能评测模块对实验数据进行分析解读,对被测的 云系统各个方面的性能进行扩展性分析,归纳所述被测的云系统的规模变化时的性能模 型,得到相应应用场景下该云系统的性能的变化趋势和峰值。
[0020] 具体的,所述抽象包括所述云系统的基础信息以及用于操作所述云资源的一系列 接口。所述基于全新建模方式得到的性能评测模块对实验数据进行分析解读,对被测的云 系统各个方面的性能进行扩展性分析包括:数据收集及建模分析模块负责对测试结果的数 据进行收集、提取、分类工作,并分别从计算能力、网络能力、存储能力以及性能归纳四个方 面进行建模分析,给出可扩展性和性能分析结果。
[0021] 本发明包括:⑴被测云系统抽象、(2)负载抽象、(3)工作流抽象、(4)分层数据 处理、(5)数据收集及建模分析。其中,被测云抽象定义一个能够适用于多种基础设施云系 统的抽象,这样一个抽象需要包含一个云系统的基础信息以及用于操作云资源的一系列接 口;负载抽象提供了一个负载集合(WorkloadSet),能够支持一系列针对多个云系统不同 方面的自动化性能测试;工作流抽象通过支持python和shell两种语言接口来达到灵活 性,默认分为四个阶段,分别是准备阶段(Pr印areStage)、测试阶段(RunStage)、停止阶 段(StopStage)和后续处理阶段(PostStage),这四个阶段能够适用于大多数的负载,在 一些特殊负载需要的情况下,也是可以由用户定制不同阶段的处理过程;分层数据处理定 义了一个数据集成接口,用来对一个测试中不同负载的结果进行归纳和总结;数据收集及 建模分析模块负责对测试结果的数据进行收集、提取、分类工作,并分别从计算能力、网络 能力、存储能力以及性能归纳四个方面进行建模分析,给出可扩展性和性能分析结果。
[0022] 图1描述了本发明框架的工作流程。首先通过图形化界面进行测试用例的配置。 用户需要明确被测试云系统类型、选择负载集、制定负载的运行方式以及关注的结果数据 设置。这部分都属于测试工作模块,测试流程设置好后,将被测云引入测试模块,按照设置 的方案作用于被测云,将得到大量的原始测试结果数据。在对被测云进行测试过程中,评测 分析模块对被测云进行监督,收集其测试结果数据。在完成了所有测试,确保被测云处于空 闲后,进行数据的分析、建模。当一个测试用例完成之后,其信息会被永久的存储归档,包括 该测试的配置、运行细节以及中间和最终结果等。最后得到的数据分析结果包括性能建模 和数据点图表,可以直观的看到性能与部署的关系,得到对部署有指导意义的峰值数据和 图形。
[0023] 本发明的测试执行部分主要由三部分组成,分别是前端部分、核心进程和协调进 程。前端部分主要负责对用户操作的封装和验证,它和核心进程之间通过CSAPI模炔基 于HTTP协议进行通信。核心进程和协调进程组成核心模块。核心进程主要负责与用户 前端的交互和维护测试用例队列的状态。核心进程会在整个测试过程中跟踪记录测试运 行的状态,包括每一个步骤,并且负责测试结束后的归档工作。协调进程则会控制整个选 定负载的执行过程。协调进程通过CloudAPI模块对云资源进行管理,通过通信抽象层 (CommunicationAbstractLayer,CAL)在虚拟机实例内部进行操作。协调进程和核心进程 之间也是通过HTTP协议进行通信,这种松耦合的设计能够很好的避免错误聚集效应,并提 供更好的可扩展性支持。一般地,在一个测试中,每个被测试云系统都额外地启动一个主结 点(MasterInstance),它会作为云内负载运行的副结点(SlaveInstance)和云外协调进 程的通信代理。这样的设计是为了节省浮动IP地址的开销,使每个云只需要为某一个测试 分配一个浮动IP,而不是为每个副结点都分配。而本文认为一个虚拟机实例的额外开销对 整个云的性能来说是可以忽略的。
[0024] 在一段时间的运行后,该框架会因为终止条件的满足而结束运行,并记录测试状 态,回收处理测试数据,解放云端资源,清理环境。从用户角度来说,云系统可以被认为是一 个黑盒。测试者不需要像平常使用云的用户一样考虑太多操作云系统的接口,而是将这些 资源分配管理都交由该框架完成。
[0025] 本发明的数据评估分析部分,新提出了一种方式来定义数据对,由单个虚拟机实 例的性能读数(集合记为P)和此时与之相关的负载规模(集合记为S)组成。这里的性能 可以是吞吐量、延时或者其他度量标准。负载规模表达为测试相关虚拟机的个数。模型接 受输入是一组实验得到的数据对,记为集合E= {(p,s) | 3pGP,3eGS}。它为其中 性能读数的坐标轴规定一个间隔值,利用这个间隔值,输入的性能坐标范围被分割为很多 连续的小段,在每一小段对应的负载中将最大的负载规模对应的点挑选出来,组成一个子 集E':SE:s对集合E'中的点进行曲线的拟合,得到的拟合函数可以代表在测试范围内得到 的某个规模下最好的单个虚拟机性能值,也可以理解为在保证单个虚拟机实例能达到某种 程度的