一种集群服务器的模拟测试系统的制作方法

文档序号:12692505阅读:249来源:国知局
一种集群服务器的模拟测试系统的制作方法与工艺
本发明涉及云计算的性能测试及评估
技术领域
,尤其涉及一种集群服务器的模拟测试系统。
背景技术
:性能测试是云平台、集群服务器或者应用上线前的一项重要工作。进行性能测试的目的在于对云平台或者集群服务器可支持虚拟机的数量、峰值请求的规模、数据库的最大请求的规模、消息队列访问量等诸多云计算指标进行测试与评价。目前存在三种性能测试工具,即WebStone、WebBench、SPECWeb99。上述性能测试工具虽然功能强大,结果客观权威,但是它们在集群服务器性能测试存在难以产生足够数量的客户请求,因此需要占用或者使用大量的物理计算机来运行客户端程序,才能生成集群服务器在真实运行环境中所面临的负载以进行性能检测及评价。如果需要对集群服务器测试超载情况实例中的性能,则需要更多运行客户端程序的物理计算机。因此,上述三种性能测试工具及其基于该等测试工具的性能测试方法存在测试成本较高,测试时间较长的缺陷,维护成本较高。此外,现有技术中对集群服务器进行性能测试的方法/系统/装置/工具存在功能单一的问题,即在现有技术中仅能对集群服务器的某一种性能,例如Web测试、软件测试等。因此,现有技术中的大多数测试工具无法对网络、磁盘吞吐峰值、CPU或者内存使用等诸多方面进行综合性能测试。此外,还存在过分偏重某一种性能指标的认定,导致对集群服务器的性能测试存在一定的片面性与局限性,无法从全局角度对集群服务器的性能作综合评价,并且无法在部署、测试、模拟、评价等多个方面提供一体化解决方案。有鉴于此,有必要对现有技术中对集群服务器的模拟测试系统予以改进,以解决上述问题。技术实现要素:本发明的目的在于公开一种集群服务器的模拟测试系统,用以实现真实的模拟云计算环境中的集群服务器的状态,实现对集群服务器的各项性能作出真实且准确的模拟测试,同时降低传统的对集群服务器进行性能模拟测试的测试系统的成本,以显著降低部署成本。为实现上述目的,本发明提供了一种集群服务器的模拟测试系统,其包括:自动测试模块,根据输入预定义的关键指标模板生成测试用例,以生成模拟集群服务器操作的REST请求;模拟模块,用于模拟计算环境下对REST请求作出响应;收集模块,用于采集模拟模块在模拟测试过程中所产生的指标数据,并对指标数据作序列化处理;持久化存储介质,保存经过序列化处理的指标数据;分析模块,自持久化存储介质中调用经过序列化处理的指标数据,并根据关键指标模板生成单次模拟测试报告;报告模块,将多份单次模拟测试报告进行汇总并进行数理抽样统计后输出指标汇总结果。作为本发明的进一步改进,所述模拟模块包括:由部署在容器外的预处理模块及压力执行模块,以及模拟计算驱动所组成的模拟计算模块;其中,预处理模块用于接收输入需要模拟的测试类型、测试请求和测试响应,并生成压力测试;压力执行模块用于记录压力测试记录;模拟计算驱动用于远程调用压力执行模块中保存的压力测试记录,并模拟真实计算驱动对压力测试所作出的响应,并向压力执行模块作反馈。作为本发明的进一步改进,所述自动测试模块通过调用Jmeter或者Rally构造用户发送的REST请求,以模拟用户对集群服务器的真实操作。作为本发明的进一步改进,所述关键指标模板由数据库指标模板、消息队列指标模板、OSAPI指标模板中的一种或者多种组成。作为本发明的进一步改进,所述数据库指标模板包含:QPS指标、TPS指标、Commit/S指标、Con/S指标;所述消息队列指标模板包含msg/S指标、延迟指标、吞吐指标;所述OSAPI指标模板包含单位处理请求数指标。作为本发明的进一步改进,所述模拟计算驱动部署于基于Docker的容器中,以抽象和模拟集群服务器的底层服务细节。作为本发明的进一步改进,所述模拟模块还包括模拟网络模块及模拟存储模块,所述模拟计算模块、模拟网络模块及模拟存储模块通过消息队列与OSAPI相连。作为本发明的进一步改进,所述集群服务器操作包括:增加操作、查询操作、修改操作、修补操作、删除操作及其上述操作的排列组合。作为本发明的进一步改进,经过序列化处理后的指标数据以日志、二进制数据流、数字指纹、数字签名、音频的形式保存于持久化存储介质中;所述持久化存储介质包括数据库、机械磁盘、固态硬盘、RAID、NVDIMM或者光盘;其中,所述数据库包括:网状数据库、关系数据库、树状数据库或者面向对象数据库。作为本发明的进一步改进,所述数理抽样统计具体为:对保存于数据库中的多份有效样本进行置信区间计算,以输出指标报告;其中,多份有效样本进行置信区间的计算所采用的置信水平取0.9、0.95或者0.99。与现有技术相比,本发明的有益效果是:在本发明中,通过用户输入的自定义的关键指标模板,实现了对集群服务器在云计算环境中根据已有评价数据建立准确的评价测试模型,并通过数理抽样统计实现了对集群服务器的各项性能作出真实且准确的模拟测试,同时降低了模拟测试系统的成本,从而显著地降低了部署成本。附图说明图1为现有技术中待模拟测试的集群服务器的拓扑图;图2为对集群服务器进行模拟测试的模拟模块的拓扑图;图3为单次模拟测试流程图;图4为样本分析流程图;图5为模拟前的计算集群中的一个物理计算节点的拓扑图;图6为模拟计算驱动对计算集群中的一个物理计算节点进行模拟后的拓扑图;图7为模拟计算模块进行关键指标测试时的时序图;图8为模拟计算模块内部交互的时序图。具体实施方式下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。在详细阐述本发明之前,首先对说明书中的主要技术术语及其定义作出简要阐述。术语“JMeter”:apache提供的开源测试框架。术语“openstack”:开源的云计算项目。术语“OSAPI”:openstack应用程序接口,一种程序的逻辑抽象。术语“Rally”:openstack提供的基准测试工具。术语“Docker”:一种开源的容器项目。术语“REST”:一种设计风格,旨在用简单的请求用于交互,常用的RESTful请求有GET/POST/PUT/DELETE/PATCH。术语“mysql”及“mariadb”:mysql是一种开源数据库,mariadb是mysql的一个衍生分支。术语“QPS”:querypersecond,其为数据库性能评测的指标之一。JMeter是Apache组织开发的基于java的压力模拟工具,相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强,目前已大量应用在各个公司的性能测试过程中。它提供了一个利用本地ProxyServer(代理服务器)来录制生成测试脚本的功能,实现了强大的测试功能并能够提供聚合报告,当build一项任务时,在若干任务中查找所需的任务,运行结束后生成HTML报告(Report),并查看测试的输出结果。生成的报告上显示了每次测试运行的结果,包括测试状态、时间、数据执行顺序以及所有测试花费的时间,使用户或测试开发者直观的掌握整体测试状况、查看测试报告结果。请参图1至图8所示出的本发明一种集群服务器的模拟测试系统的一种具体实施方式。参图7及图8所示,该集群服务器的模拟测试系统,包括:自动测试模块99,根据输入预定义的关键指标模板生成测试用例,以生成模拟集群服务器操作的REST请求;模拟模块100,用于模拟计算环境下对REST请求作出响应;收集模块101,用于采集模拟模块100在模拟测试过程中所产生的指标数据,并对指标数据作序列化处理;持久化存储介质102,保存经过序列化处理的指标数据;分析模块103,自所述持久化存储介质102中调用经过序列化处理的指标数据,并根据关键指标模板生成单次模拟测试报告;报告模块104,将多份单次模拟测试报告进行汇总并进行数理抽样统计后输出指标汇总结果。其中,所述关键指标模板由数据库指标模板、消息队列指标模板、OSAPI指标模板中的一种或者多种组成。本实施方式示出的一种集群服务器的模拟测试系统的流程请参图3及图4所示。数据库指标模板(目前仅限于mysql/mariadb系列)广义上主要是QPS指标,并通过QPS指标用来描述在不同存储引擎,不同缓存、索引配置下的集群服务器中的数据库性能。表1为数据库指标模板示例。其他用于表征数据库指标模板的关键指标还可包括:TPS指标(TransactionsperSecond,每秒事务数),Commit/s指标(每秒提交数),Con/s指标(线程连接数)等。待测存储引擎是否有缓存是否有索引…QPS指标TPS指标Commit/s指标Con/s指标表1消息队列指标模板,广义上主要是msg/s指标(每秒消息数),用来描述在不同配置情况下消息队列处理消息的能力。表2为消息队列模板的示例。其他用于表征消息队列的关键指标还可包括:latency(延迟指标),throughput(吞吐指标,即生产/消费比)。其中,消息队列延迟模板的示例如下表3所示。Latency指标102030…Throughput指标msg/s指标表2延迟指标102030…生产/消费数量指标表3OSAPI指标模板,其包含单位处理请求数指标,主要包括用于模拟集群服务器在云计算环境中的GET操作、POST操作、PUT操作、PATCH操作、DELETE操作等操作或者上述操作的排列组合,用来描述集群服务器对用户发起的REST请求的处理能力。表4为OSAPI指标模板的一种示例。峰值/延迟GET操作POST操作PUT操作…请求数目表4模拟模块100主要分为三部分,即模拟计算模块80、模拟网络模块70、模拟存储模块60。如图1及图2所示,模拟用户发起的REST请求从OSAPI10进入到消息队列20,最终通过计算集群50、网络集群40、存储集群30的逻辑进行下一步操作。模拟模块100的主要目标是模拟REST请求的回应,不继续下发底层操作,缩短消息路径。模拟模块100基于Docker的容器部署,用以抽象底层服务细节,节省部署开销,降低部署成本,提高单位物理机的利用效率。计算服务和模拟计算驱动803均部署于基于Docker的容器中,不执行下发底层操作,可以在一台物理机上同时部署运行多个容器,具体数目视具体物理机而定。例如,一台物理机,Intel(R)Xeon(R)CPUE5-2640v3@2.60GHz,200G内存,可以部署100~200个容器,以模拟100-200个计算节点。具体的,在本实施方式中,所述集群服务器操作包括:增加操作(POST)、查询操作(GET)、修改操作(PUT)、修补操作(PATCH)、删除操作(DELETE)及其上述操作的排列组合。所述操作是指,对集群服务器在Openstack架构的云计算平台在真实环境中所执行的各种操作。配合参照图5及图6所示,在本实施方式中,该模拟模块100选用模拟计算模块80。该模拟计算模块80包括:预处理模块801、压力执行模块802及模拟计算驱动(FakeDriver)803。其中,预处理模块801与压力执行子802模块部署在容器外,根据关键指标模板定义模拟细节,并触发压力请求。模拟计算驱动(FakeDriver)803用于集群服务器真实的模拟计算驱动,以对集群服务器的物理计算节点的计算能力做出真实的模拟测试。模拟计算驱动803部署于基于Docker的容器中,以抽象和模拟集群服务器的底层服务细节。如图6所示,该模拟计算驱动803包括:Init_host、(un)plug_vifs、Spawn、Snapshot、Reboot、power_off等命令。结合图5及图6可知,在本实施方式中,模拟计算驱动803可对计算集群50中的一个物理计算节点中模拟该物理计算节点的真实计算驱动对REST请求所作出的相应响应。计算服务,配合模拟计算驱动803可以在同一物理的计算节点上部署多个实例,从而最大程度上利用了物理资源。本实施方式所示出的模拟测试系统对集群服务的模拟测试方式/系统,在传统的集群服务器的部署过程中是无法实现的。具体的,预处理模块801用于接收输入需要模拟的测试类型、测试请求和测试响应,并生成压力测试;压力执行模块802用于记录压力测试记录;模拟计算驱动803用于远程调用压力执行模块802中保存的压力测试记录,并模拟集群服务器的真实计算驱动对压力测试所作出的响应,并向压力执行模块802作反馈。参图1及图2所示,该模拟模块100包括模拟计算模块80、模拟网络模块70及模拟存储模块60。模拟计算模块80、模拟网络模块70及模拟存储模块60通过消息队列20与OSAPI10相连。REST请求从OSAPI10进入消息队列20,并最终从分别从计算集群50、网络集群40及存储集群30的逻辑进行下一步操作。在图2中,模拟计算模块80、模拟网络模块70、模拟存储模块60都结合基于Doker的容器进行部署,用来模拟图1中对应集群服务器(即,计算集群50、网络集群40及存储集群30)的响应。其中,模拟网络模块70和模拟存储模块60这两部分不是必须的,且这两部分的模拟测试可以作为独立的测试项目进行模拟测试。用户向自动测试模块99进行用户定义,以确定不同测试类型,并输入关键指标模板。该自动测试模块99通过调用压力模拟工具(例如JMeter或者Rally)构造用户发送的REST请求,以模拟用户在云计算环境中集群服务器所执行的增加操作、查询操作、修改操作或者删除操作等真实操作。在本实施方式中,模拟模块100用于模拟集群服务器操作的REST请求,并可基于Docker的容器部署,用以抽象底层服务细节,节约部署开销。参图7所示,本实施方式中的模拟模块100为模拟计算模块80。结合图8所示,模拟计算模块80的主要功能包括:定义测试类型,确定测试属于正常测试,不同的测试类型会生成不同的测试用例,并生成不同的响应信息;定义测试响应,根据测试类型,确定模拟延迟、超时、响应信息;定义测试细节,用以确定REST请求的细节,并具体包括增加操作请求的百分比、查询操作请求的百分比、修改操作请求的百分比、修补操作请求的百分比、删除操作请求的百分比。当然,如果模拟模块100中包含模拟网络模块70或者模拟存储模块60,还需要生成模拟网络模块70及模拟存储模块60的逻辑,如果没有需求,则选择默认的网络设置及存储方式。收集模块101用于采集模拟模块100(在本实施方式中具体为模拟计算模块80)在模拟测试过程中所产生的指标数据,并对指标数据作序列化处理。在模拟测试过程中所产生的关键指标数据分别由云集群服务器、云服务、系统模拟模块产生在不同的逻辑位置,并以日志等形式保存至持久化存储介质102中,以存档及后续处理。优选的,经过序列化处理后的指标数据优选以日志的形式进行存储,并保存至持久化存储介质102中,并具体为保存至数据库中,以便于后期的归档、查询及检索操作。在本实施方式中,需要对指标数据通过收集模块101进行过滤和分离,并对指标数据作序列化处理,尤其需要分离出与关键指标模板中关联的数据,以便于后期的对上述指标数据作存档和数理抽样统计操作。具体的,该持久化存储介质102包括数据库、二进制数据流、数字指纹、数字签名或者音频等形式进行存储;优选的,该持久化存储介质102包括数据库、机械磁盘、固态硬盘、RAID、NVDIMM或者光盘;其中,所述数据库包括:网状数据库、关系数据库、树状数据库或者面向对象数据库。需要说明的是,在本实施方式所输出的一种集群服务器的模拟测试系统中,不同的关键指标模板具有不同的关键指标数据的收集途径。被收集模块所收集到的关键指标数据进行收集后,还需要对这些关键指标数据进行数据过滤处理并存储至持久化存储介质102中,以确保收集模块101所收集到的关键指标数据能够被数据库(持久化存储介质102的一种具体实现形式)可读并保存于数据库中。分析模块103可根据关键指标模板生成单次的测试报告,并将形成的有效的数据样本保存于数据库中。累积多次有效样本后即可通过报告模块104启动样本分析流程,并输出指标报告,以得到最终的指标结果汇总。在本实施方式中,该对多份单次的模拟测试报告(即下文所述的“有效样本”)进行汇总后对这些多份单次的模拟测试报告做数理抽样统计具体为:对保存于数据库中的多份有效样本进行置信区间计算,以输出指标报告;其中,多份有效样本进行置信区间的计算所采用的置信水平取0.9、0.95或者0.99。在本具体实施方式中,所采用的置信水平取0.95。具体的,对多份有效样本进行数理抽样统计,并进行评价的核心计算方法如下文所示。下文所述的“样本”与“有效样本”具有等同的技术含义。已给定置信水平为1-α,并设X1,X2,...,Xn,为总体N(μ,σ2)的样本,S2分别是样本均值和方差。S2是σ2的无偏估计,且即处理后的样本服从标准正太分布。当σ2未知时,σ可以由替换,可由定理替换知t(n-1)分布不依赖于为止参数,由其特性可知:即于是得到μ的一个置信水平为1-α的置信区间为其中,S2是σ2的无偏估计,根据定理可知由卡方分布的特点可知:即可以得到标准差σ的一个置信水平为1-α的置信区间为:样本统计评价核心计算方法示例以下以样本数n=101,置信水平1-α=0.95举例,并作示范性说明。α/2=0.025,n-1=100,t0.025(100)=1.984QPS指标样本均值则均值μ的一个置信水平为0.95的置信区间为即(500.409,507.591)。1-α/2=0.975,s=18.1020,标准差σ的一个置信水平为0.95的置信区间为即:(15.904,21.012)因此,可以得出结论:在某种特定的集群服务器的结构下,均值μ的一个置信水平为0.95的置信区间为(500.409,507.591),标准差σ的一个置信水平为0.95的置信区间为(15.904,21.012);反推亦生效。因此,根据采集到的指标数据,可以定义规模集群服务器的性能报告,用来参考标定相似规模集群服务器的性能,并可具体用于表征集群服务器中的存储集群30、网络集群40或者计算集群50在上线后对用户发起的各种操作的响应能力与真实性能。表5举例说明了通过本发明所示出的一种集群服务器的模拟测试系统对一个具体的集群服务器进行模拟测试后所得到的样本报告及配置建议。表5通过本实施方式,可对集群服务器在云计算环境中的各项性能指标进行建模统计,并基于历史数据对现有的集群服务器提出优化选项及其具体优化建议,提高了集群服务器的部署效率,并有效地减低了集群服务器的部署成本,更重要的是通过本实施方式显著降低了对集群服务器进行模拟检测的测试成本。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1