一种金丝雀分析方法、应用和计算设备与流程

文档序号:11829380阅读:419来源:国知局
一种金丝雀分析方法、应用和计算设备与流程

本发明涉及应用升级测试技术领域,尤其涉及一种金丝雀分析方法、应用和计算设备。



背景技术:

金丝雀是雀科丝雀属鸟类的一种,对于甲烷、一氧化碳等有毒气体很敏感,当毒气浓度超标时会立刻死亡,因此在19世纪左右,金丝雀被作为煤矿安全的报警器。如果煤矿中的金丝雀死去,矿工就需要尽快撤离矿洞,否则会有致命的危险。

计算机领域的“金丝雀部署(Canary Deployments)”是一种应用升级测试方法,其在原有版本的应用(Baseline Application)可用的情况下,部署一个新版本的应用,新版本的应用即为金丝雀应用(Canary Application),部署有旧版本应用的服务器被称为基准服务器(Baseline Server),部署有新版本应用的服务器被称为金丝雀服务器(Canary Server)。随后,同时运行基准服务器和金丝雀服务器,若金丝雀服务器性能更优,则金丝雀应用在线测试成功,从基准服务器中再取出一部分服务器进行升级;若基准服务器性能更优,则金丝雀应用在线测试失败,将金丝雀服务器进行回滚,退回到安装有旧版本应用的原有状态。

Nolio公司提出的“金丝雀部署”测试方法包括以下6个步骤:

1、准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件;

2、从负载均衡列表中移除掉金丝雀服务器;

3、升级“金丝雀”应用(排掉原有流量并进行部署);

4、对应用进行自动化测试;

5、将金丝雀服务器重新添加到负载均衡列表中,测试其连通性和健康性;

6、如果金丝雀在线使用测试成功,升级剩余的其他服务器,否则就回滚。

在以上6个步骤中,步骤5是金丝雀测试的关键,即如何将金丝雀服务器的性能与基准服务器的性能进行比较分析,并得出二者孰优孰劣的比较结果。

针对以上问题,IBM和Netflix公司均有相应的解决方案。

IBM公司的方案是,分别获取基准服务器和金丝雀服务器的多个性能指标(Metric)数据,对于每一个性能指标,求出金丝雀服务器与基准服务器的该性能指标数据的差值,根据该差值分布是否落在预先设定的概率分布之内来判断二者的优劣。该方法中,预先设定的概率分布函数在很大程度上影响着最终的分析结果,然而我们却很难事先确定差值满足什么分布,因此,该方法的准确性并不高。

Netflix公司的方案是,分别获取基准服务器和金丝雀服务器的多个性能指标(Metric)数据,对于每一个性能指标,求出金丝雀服务器与基准服务器的该性能指标数据的均值,若两个均值的比值为1或在一定范围内(例如,比值在0.8~1.2范围内),则认为两个曲线相似。然而,仅均值相似并不能保证两个曲线相似,因此,该方法也缺乏准确性。



技术实现要素:

为此,本发明提供一种金丝雀分析方法、应用和计算设备,以力图解决或至少缓解上面存在的问题。

根据本发明的一个方面,提供一种金丝雀分析方法,在计算设备中执行,该方法包括:获取基准服务器和金丝雀服务器的性能指标数据,其中,每个性能指标均包括第一数量的子性能指标,所述基准服务器中配置有旧版本的应用,所述金丝雀服务器中配置有新版本的应用;根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态;对于每一个性能指标,根据该性能指标所包括的子性能指标的第一状态确定金丝雀服务器的该性能指标相对于基准服务器所处的第二状态;根据各性能指标的第二状态确定金丝雀服务器的总分值。

可选地,在根据本发明的金丝雀分析方法中,获取基准服务器和金丝雀服务器的性能指标数据的步骤包括:每隔预定周期,获取基准服务器和金丝雀服务器在当前时刻之前的预定时间段内的性能指标数据。

可选地,在根据本发明的金丝雀分析方法中,预定周期为30分钟,预定时间段为180分钟。

可选地,在根据本发明的金丝雀分析方法中,在获取基准服务器和金丝雀服务器的性能指标数据的步骤后,还包括:将所述性能指标数据进行归一化处理。

可选地,在根据本发明的金丝雀分析方法中,在将所述性能指标数据进行归一化处理之后,还包括:当基准服务器有多台时,对多台基准服务器的经过归一化处理的性能指标数据求平均值,并将所述平均值作为基准服务器的性能指标数据。

可选地,在根据本发明的金丝雀分析方法中,第一状态包括:优、中、差、无数据。

可选地,在根据本发明的金丝雀分析方法中,根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态的步骤包括:对于每一个子性能指标:若未采集到基准服务器的该子性能指标数据和/或金丝雀服务器的该子性能指标数据,则将第一状态设置为无数据;否则:计算该子性能指标对应的第一均值和第二均值,其中,所述第一均值为基准服务器的该子性能指标数据的均值,所述第二均值为金丝雀服务器的该子性能指标数据的均值;当第二均值与第一均值的比值在第一阈值与第二阈值之间时,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度,若相似度大于相似度阈值,则将第一状态设置为中,否则,将第一状态设置为差;当第二均值与第一均值的比值小于第一阈值时,若该子性能指标的取值越小指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。当第二均值与第一均值的比值大于第二阈值时,若该子性能指标的取值越大指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。

可选地,在根据本发明的金丝雀分析方法中,第一阈值与第二阈值互为倒数。

可选地,在根据本发明的金丝雀分析方法中,第一阈值为0.5,第二阈值为2。

可选地,在根据本发明的金丝雀分析方法中,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度的步骤包括:计算基准服务器的该子性能指标数据的累积分布函数F1(x)和金丝雀服务器的该子性能指标数据的累积分布函数F2(x);

按照以下公式计算相似度

D=max(F1(xj)-F2(xj))

其中,D表示相似度,xj为F1(x)曲线和F2(x)曲线对应的横坐标上的任意一点。

可选地,在根据本发明的金丝雀分析方法中,第二状态包括:中、差。

可选地,在根据本发明的金丝雀分析方法中,对于每一个性能指标,根据该性能指标所包括的子性能指标的第一状态确定金丝雀服务器的该性能指标相对于基准服务器所处的第二状态的步骤包括:在该性能指标所包括的第一数量的子性能指标中,若第一状态为差的子性能指标的数目大于等于第二数量,则将第二状态设置为差,否则,将第二状态设置为中。

可选地,在根据本发明的金丝雀分析方法中,第一数量为6,第二数量为3。

可选地,在根据本发明的金丝雀分析方法中,根据各性能指标的第二状态确定金丝雀服务器的总分值的步骤包括:根据各性能指标的特点,将每一个性能指标分别归为多个指标中类中的某一类;对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值;根据各指标中类的特点,将每一个指标中类分别归为多个指标大类中的某一类;对于每一个指标大类,根据该指标大类中包括的指标中类的分值确定该指标大类的分值;根据各指标大类的分值确定金丝雀服务器的总分值。

可选地,在根据本发明的金丝雀分析方法中,对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值的步骤包括:根据各性能指标的第二状态确定各性能指标的分值;指标中类的分值为该指标中类中所包括的性能指标的分值的平均值。

可选地,在根据本发明的金丝雀分析方法中,性能指标的分值按照以下方法确定:若性能指标的第二状态为中,则该性能指标的分值为100分;若性能指标的第二状态为差,则该性能指标的分值为0分。

可选地,在根据本发明的金丝雀分析方法中,指标大类的分值为该指标大类中所包括的指标中类的分值的平均值。

可选地,在根据本发明的金丝雀分析方法中,根据各指标大类的分值确定金丝雀服务器的总分值的步骤包括:为每一个指标大类设置权重,各指标大类的权重之和为1;金丝雀服务器的总分值为各指标大类的分值的加权平均。

根据本发明的一个方面,提供一种金丝雀分析应用,驻留于计算设备中,该应用包括:数据获取模块,适于获取基准服务器和金丝雀服务器的性能指标数据,其中,每个性能指标均包括第一数量的子性能指标,所述基准服务器中配置有旧版本的应用,所述金丝雀服务器中配置有新版本的应用;第一分析模块,适于根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态;第二分析模块,适于对于每一个性能指标,根据该性能指标所包括的子性能指标的第一状态确定金丝雀服务器的该性能指标相对于基准服务器所处的第二状态;总分计算模块,适于根据各性能指标的第二状态确定金丝雀服务器的总分值。

可选地,在根据本发明的金丝雀分析应用中,数据获取模块进一步适于:每隔预定周期,获取基准服务器和金丝雀服务器在当前时刻之前的预定时间段内的性能指标数据。

可选地,在根据本发明的金丝雀分析应用中,预定周期为30分钟,预定时间段为180分钟。

可选地,在根据本发明的金丝雀分析应用中,还包括数据预处理模块,适于在数据获取模块获取到基准服务器和金丝雀服务器的性能指标数据后,将所述性能指标数据进行归一化处理。

可选地,在根据本发明的金丝雀分析应用中,数据预处理模块还适于:在基准服务器有多台时,对多台基准服务器的经过归一化处理的性能指标数据求平均值,并将所述平均值作为基准服务器的性能指标数据。

可选地,在根据本发明的金丝雀分析应用中,第一状态包括:优、中、差、无数据。

可选地,在根据本发明的金丝雀分析应用中,第一分析模块适于按照以下步骤确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态:对于每一个子性能指标:若未采集到基准服务器的该子性能指标数据和/或金丝雀服务器的该子性能指标数据,则将第一状态设置为无数据;否则:计算该子性能指标对应的第一均值和第二均值,其中,所述第一均值为基准服务器的该子性能指标数据的均值,所述第二均值为金丝雀服务器的该子性能指标数据的均值;当第二均值与第一均值的比值在第一阈值与第二阈值之间时,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度,若相似度大于相似度阈值,则将第一状态设置为中,否则,将第一状态设置为差;当第二均值与第一均值的比值小于第一阈值时,若该子性能指标的取值越小指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。当第二均值与第一均值的比值大于第二阈值时,若该子性能指标的取值越大指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。

可选地,在根据本发明的金丝雀分析应用中,第一阈值与第二阈值互为倒数。

可选地,在根据本发明的金丝雀分析应用中,第一阈值为0.5,第二阈值为2。

可选地,在根据本发明的金丝雀分析应用中,第一分析模块适于按照以下步骤采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度:计算基准服务器的该子性能指标数据的累积分布函数F1(x)和金丝雀服务器的该子性能指标数据的累积分布函数F2(x);

按照以下公式计算相似度

D=max(F1(xj)-F2(xj))

其中,D表示相似度,xj为F1(x)曲线和F2(x)曲线对应的横坐标上的任意一点。

可选地,在根据本发明的金丝雀分析应用中,第二状态包括:中、差。

可选地,在根据本发明的金丝雀分析应用中,第二分析模块适于按照以下步骤确定金丝雀服务器的各性能指标相对于基准服务器所处的第二状态:在某一个性能指标所包括的第一数量的子性能指标中,若第一状态为差的子性能指标的数目大于等于第二数量,则将第二状态设置为差,否则,将第二状态设置为中。

可选地,在根据本发明的金丝雀分析应用中,第一数量为6,第二数量为3。

可选地,在根据本发明的金丝雀分析应用中,总分计算模块适于按照以下步骤确定金丝雀服务器的总分值:根据各性能指标的特点,将每一个性能指标分别归为多个指标中类中的某一类;对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值;根据各指标中类的特点,将每一个指标中类分别归为多个指标大类中的某一类;对于每一个指标大类,根据该指标大类中包括的指标中类的分值确定该指标大类的分值;根据各指标大类的分值确定金丝雀服务器的总分值。

可选地,在根据本发明的金丝雀分析应用中,总分计算模块适于按照以下步骤确定指标中类的分值:根据各性能指标的第二状态确定各性能指标的分值;指标中类的分值为该指标中类中所包括的性能指标的分值的平均值。

可选地,在根据本发明的金丝雀分析应用中,总分计算模块适于按照以下步骤确定性能指标的分值:若性能指标的第二状态为中,则该性能指标的分值为100分;若性能指标的第二状态为差,则该性能指标的分值为0分。

可选地,在根据本发明的金丝雀分析应用中,总分计算模块适于按照以下方法确定指标大类的分值:指标大类的分值为该指标大类中所包括的指标中类的分值的平均值。

可选地,在根据本发明的金丝雀分析应用中,总分计算模块适于按照以下步骤确定金丝雀服务器的总分值:为每一个指标大类设置权重,各指标大类的权重之和为1;金丝雀服务器的总分值为各指标大类的分值的加权平均。

根据本发明的一个方面,提供一种计算设备,包括如上所述的金丝雀分析应用。

根据本发明的技术方案,采用KS检验算法来比较金丝雀服务器和基准服务器的子性能指标,不需要事先确定子性能指标数据符合何种分布,降低了人为因素对于分析结果的干扰。此外,与现有技术中仅考虑均值的分析方法不同,KS检验算法隐含地综合考虑了子性能指标数据的均值、方差等其他因素,提高了检验结果的准确性。另外,本发明按照子性能指标→性能指标→指标中类→指标大类→金丝雀服务器的顺序层层向上评分,评价体系科学、完善,准确度较高。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的金丝雀分析系统100的示意图;

图2示出了根据本发明一个实施例的计算设备200的结构图;

图3示出了根据本发明一个实施例的金丝雀分析应用300的结构图;

图4示出了根据本发明一个实施例的性能指标划分的示意图;

图5示出了根据本发明一个实施例的确定某个子性能指标的第一状态的流程图;以及

图6示出了根据本发明一个实施例的金丝雀分析方法600的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的金丝雀分析系统100的示意图。如图1所示,服务器集群中有100台服务器。当开发出新版本的应用(或网站)时,需要测试新版本应用的质量和性能。为了保证交付更高质量的代码与服务,并缩短升级测试的时间,采用“金丝雀部署”的方式对新版本应用进行测试。例如,从100台服务器中抽取6台作为金丝雀服务器,金丝雀服务器中部署有新版本的应用,其余的94台为基准服务器,基准服务器中部署原版本的应用。分别采集基准服务器和金丝雀服务器的性能数据,并将其存入数据库。数据库可以作为远程数据库设置于计算设备200之外,也可以作为本地数据库驻留于计算设备200之中,本发明对数据库的部署方式并无限制。根据一种优选的实施例,为了节省计算设备200的存储资源和运算资源,将数据库设置于计算设备200之外。

计算设备200可以是桌面电脑、笔记本电脑、服务器、工作站、平板电脑、手机等具有运算能力的设备。驻留于计算设备200中的金丝雀分析应用300可以从数据库中获取基准服务器和金丝雀服务器的性能数据,并基于该性能数据分析金丝雀服务器的性能。图1中有94台基准服务器和6台金丝雀服务器,相应地,数据库中存储有94台基准服务器的性能数据和6台金丝雀服务器的性能数据。金丝雀分析应用300将94台基准服务器的性能数据求平均,得到94台基准服务器的平均性能数据,随后,将每一台金丝雀服务器的性能数据分别与上述平均性能数据进行比较分析,得到每一台金丝雀服务器相对于基准服务器的分值。若6台金丝雀服务器的得分都比较高,则认为新版本应用测试成功,金丝雀分析应用300指示控制器发出控制信号,从94台基准服务器中再取出6台作为金丝雀服务器,继续按照上述步骤测试这6台新的金丝雀服务器的性能。当6台金丝雀服务器中有1台的分值特别低(低于第一预设值,例如60分),或整体分值普遍偏低(低于第二预设值,例如90分)时,则认为新版本应用测试失败,金丝雀分析应用300指示控制器发出控制信号,将金丝雀服务器进行回滚,退回到安装有旧版本应用的原有状态。应当指出,回滚条件是由测试人员设置的,除了可以将回滚条件设置为金丝雀服务器中有1台的分值特别低、整体分值普遍偏低之外,还可以设置为有一半以上的金丝雀服务器的分值低于阈值,或各金丝雀服务器的分值差异较大,等等,本发明对回滚条件的设置不做限制。此外,控制器可以驻留于计算设备200中,也可以是设置于计算设备200之外的独立装置,本发明对控制器的部署方式亦无限制。

在图1所示的金丝雀分析系统100中,驻留于计算设备200中的金丝雀分析应用300是关键,其能够计算出金丝雀服务器相对于基准服务器的评分,实现了金丝雀服务器的性能分析,评分越高,金丝雀服务器的性能越好。

图2示出了根据本发明一个实施例的计算设备200的结构图。在基本配置202中,计算设备200典型的包括系统存储器206和一个或者多个处理器204。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据226,应用222可以布置为在操作系统上利用程序数据226进行操作。

根据本发明的技术方案,应用222可以被配置为包括金丝雀分析应用300,相应地,程序数据226中可以存储或缓存有基准服务器和金丝雀服务器的性能数据,性能数据体现为多个时间序列。金丝雀分析应用300从程序数据226中获取基准服务器和金丝雀服务器的性能数据,并据此计算金丝雀服务器相对于基准服务器的评分。

图3示出了根据本发明一个实施例的金丝雀分析应用300的结构图。如图3所示,金丝雀分析应用300包括数据获取模块310、第一分析模块320、第二分析模块330和总分计算模块340。

数据获取模块310适于获取基准服务器和金丝雀服务器的性能指标数据。根据一种实施例,数据获取模块310每隔预定周期,获取基准服务器和金丝雀服务器在当前时刻之前的预定时间段内的性能指标数据。其中,预定周期可以设置为30分钟,预定时间段可以设置为180分钟,即,数据获取模块310每隔30分钟获取一次性能指标数据(也即,金丝雀分析应用300每隔30分钟执行一次金丝雀分析,计算金丝雀服务器的总分值),性能指标数据为各性能指标在最近180分钟的观测值,若每分钟采集一次性能指标的观测值,则性能指标数据为包括180个观测值的时间序列。每一个性能指标均包括第一数量的子性能指标,相应地,性能指标数据也包括多组子性能指标数据。根据一种实施例,第一数量为6。

为了得到金丝雀服务器的总分值,本发明设置了多级指标,其中,子性能指标为最小的指标单位,金丝雀分析应用300在执行金丝雀分析时,从子性能指标开始,先计算出子性能指标的状态(分值),然后基于子性能指标的状态层层向上递推,直至最终计算出金丝雀服务器的总分值。图4示出了根据本发明一个实施例的性能指标划分的示意图。如图4所示,包括评价体系五级指标,依次为子性能指标、性能指标、指标中类、指标大类和金丝雀服务器。当然,在其他实施例中,也可以将评价体系划分为三级、四级等其他数目的层级。图4中,金丝雀服务器下分为4个指标大类,分别为系统(Syetem)、应用(Application)、外部依赖(Dependency)和正确性(Correctness)。每个指标大类包括多个指标中类,例如,应用的指标大类包括Web事务、其他事务等指标中类。每个指标中类包括多个性能指标,例如,Web事务的指标中类包括Web事务1、Web事务2等性能指标。每个性能指标均包括第一数量的子性能指标。图4中,每个性能指标均包括多个子性能指标,例如,Web事务2包括调用次数、平均响应时间、平均执行时间、最大响应时间、最小响应时间和响应时间的方差6个子性能指标。除了上述列举的6个子性能指标之外,性能指标还可以包括其他的子性能指标,但是为了方便分析,每一个性能指标应当包括相同数目(即第一数量)的子性能指标,图4中,每个性能指标均包括6个子性能指标,当然,在其他的实施例中,也可以将每个性能指标所包括的子性能指标的数目设置为其他数值。金丝雀分析应用300在执行金丝雀分析时,从子性能指标开始,先计算出子性能指标的状态(分值),然后基于子性能指标的状态层层向上递推,依次计算出性能指标、指标中类、指标大类的分值,最终,根据指标大类的分值和各指标大类的权重计算出金丝雀服务器的总分值。

数据获取模块310获取的性能数据是从基准服务器和金丝雀服务器中采集到的原始的数据。根据一种实施例,为了方便后续的分析过程,由数据预处理模块350(图3中未示出)对数据获取模块310获取到的性能数据进行预处理。数据预处理模块350所执行的预处理主要包括归一化处理和平均化处理两种。

归一化处理指的是将原本不具有可比性的子性能指标处理成具有可比性的子性能指标。例如,对于CPU利用率这一子性能指标,基准服务器的CPU利用率为60%,金丝雀服务器的CPU利用率为80%,但我们并不能简单地认为基准服务器的CPU利用率优于金丝雀服务器,因为可能基准服务器占用60%的CPU资源处理了2000个请求,而金丝雀服务器占用了80%的CPU资源处理了5000个请求,这时,金丝雀服务器处理每个请求所消耗的CPU资源小于基准服务器,因此,虽然单从CPU利用率的数据上显示基准服务器优于金丝雀服务器,而实际上金丝雀服务器的性能却是优于基准服务器的。为了消除上述数据与结果不一致的情况,需要对CPU利用率进行归一化处理,处理办法是将CPU利用率除以吞吐量。除了CPU利用率,调用次数、平均响应时间、平均执行时间、最大响应时间、最小响应时间等子性能指标也需要除以吞吐量,以保证金丝雀分析结果的准确性。

若金丝雀分析系统中有多台基准服务器,则数据预处理模块350在完成数据归一化处理后,还需要对多台基准服务器的经过归一化处理的性能指标数据求平均值,并将该平均值作为基准服务器的性能指标数据。例如,系统中有94台基准服务器,每台基准服务器包括CPU利用率和内存使用量两个性能指标,则数据预处理模块350首先将这94台基准服务器的两个性能指标数据进行归一化处理(即除以吞吐量),然后分别求这94台基准服务器的CPU利用率的均值和内存使用量的均值。在后续将金丝雀服务器与基准服务器进行对比分析的过程中,将每一台金丝雀服务器的性能数据分别与基准服务器的平均性能数据进行比较分析,得到每一台金丝雀服务器相对于基准服务器的分值。

第一分析模块320适于根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态。根据一种实施例,第一状态包括优、中、差、无数据四种。

第一分析模块320按照以下步骤计算各子性能指标的第一状态:

对于每一个子性能指标,若未采集到基准服务器的该子性能指标数据和/或金丝雀服务器的该子性能指标数据,则将第一状态设置为无数据。否则:计算该子性能指标对应的第一均值和第二均值,其中,第一均值为基准服务器的该子性能指标数据的均值,第二均值为金丝雀服务器的该子性能指标数据的均值。

当第二均值与第一均值的比值在第一阈值与第二阈值之间时,采用KS检验(Kolmogorov–Smirnov test)算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度。

根据一种实施例,第一阈值与第二阈值互为倒数,第一阈值取值为0.5,相应地,第二阈值取值为2。相似度的具体计算过程为:计算基准服务器的该子性能指标数据的累积分布函数F1(x)和金丝雀服务器的该子性能指标数据的累积分布函数F2(x);按照以下公式计算相似度

D=max(F1(xj)-F2(xj))

其中,D表示相似度,xj为F1(x)曲线和F2(x)曲线对应的横坐标上的任意一点。若相似度D大于相似度阈值,则将该子性能指标的第一状态设置为中,否则,将第一状态设置为差。相似度阈值一般取一个比较小的数,例如,10^(-10)。KS检验算法不需要事先确定子性能指标数据符合何种分布,降低了人为因素对于分析结果的干扰。此外,与现有技术中仅考虑均值的分析方法不同,KS检验算法隐含地综合考虑了子性能指标数据的均值、方差等其他因素,提高了检验结果的准确性。

当第二均值与第一均值的比值小于第一阈值时,若该子性能指标的取值越小指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。取值越小指示的性能越好的子性能指标包括平均响应时间、平均执行时间、最大响应时间、最小响应时间、方差,等等。

当第二均值与第一均值的比值大于第二阈值时,若该子性能指标的取值越大指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。取值越大指示的性能越好的子性能指标包括调用次数、吞吐量,等等。

根据一种实施例,确定某个子性能指标的第一状态的流程图如图5所示。图5中,将第一阈值设为0.5,第二阈值设为2,相似度阈值设为10^(-10)。首先,输入基准服务器的子性能指标数据metricbaseline和金丝雀服务器的子性能指标数据metriccanary,若metricbaseline和metriccanary中至少有一个为空,则将该子性能指标的第一状态设为无数据。

若metricbaseline和metriccanary均不为空,则分别计算metricbaseline和metriccanary的均值,将metricbaseline的均值记为第一均值,metriccanary的均值记为第二均值。

当第二均值与第一均值的比值在[0.5,2]的范围内时,采用KS检验算法计算metricbaseline和metriccanary的相似度D,若D>10^(-10),则将第一状态设为中,若D≤10^(-10),则将第一状态设为差。

当第二均值与第一均值的比值小于0.5时,若该子性能指标越小越好,则将第一状态设为优,否则,将第一状态设为差。

当第二均值与第一均值的比值大于2时,若该子性能指标越大越好,则将第一状态设为优,否则,将第一状态设为差。

第一分析模块320确定了各子性能指标的第一状态后,第二分析模块330根据各子性能指标的第一状态确定性能指标的第二状态。根据一种实施例,第二状态包括中、差两种。第二分析模块330可以按照以下步骤确定各性能指标的第二状态:在某一个性能指标所包括的第一数量的子性能指标中,若第一状态为差的子性能指标的数目大于等于第二数量,则将第二状态设置为差,否则,将第二状态设置为中。根据一种实施例,第一数量为6,第二数量为3,每个性能指标均包括6个子性能指标,对于某个性能指标,若在其包括的6个子性能指标中至少有3个的第一状态为差,则将该性能指标的第二状态设置为差,若在其包括的6个子性能指标中第一状态为差的子性能指标的数目小于3,则将该性能指标的第二状态设置为中。应当指出,上述实施例中第一数量和第二数量的取值仅是示例性的,在其他的实施例中,第一数量和第二数量也可以被设为其他数值。此外,上述第二分析模块330确定各性能指标的第二状态的方法也是示例性的,第二分析模块330还可以采用其他方法来确定各性能指标的第二状态,本发明对各性能指标的第二状态的确定方法并无限制。

第二分析模块330确定了各性能指标的第二状态后,总分计算模块340根据各性能指标的第二状态确定金丝雀服务器的总分值。总分值的具体计算过程与评价体系的层级数有关,对评价体系为三级,则总分计算模块340直接根据各性能指标的第二状态确定金丝雀服务器的总分值。例如,第二状态有中、差两种,将“中”记为100分,“差”记为0分,金丝雀服务器的总分值可以是各性能指标的第二状态所对应的分值的平均值。

对于如图4所示的五级评价体系,总分计算模块340首先根据各性能指标的第二状态确定各指标中类的分值,根据各指标中类的分值确定各指标大类的分值,最后,根据各指标大类的分值确定金丝雀服务器的总分值。根据一种实施例,指标中类的分值为该指标中类中所包含的性能指标的分值的平均值。性能指标的分值可以根据该性能指标的第二状态进行设定,例如,将性能指标的第二状态中的“中”记为100分,“差”记为0分,总分计算模块340按照以下公式计算指标中类的分值:

其中,n1为该指标中类中包括的性能指标的数目,ai为该指标中类中的第i个性能指标的第二状态对应的分值,1≤i≤n1

指标大类的分值为该指标大类中所包含的指标中类的分值的平均值,即总分计算模块340按照以下公式计算指标大类的分值:

其中,n2为该指标大类中包括的指标中类的数目,bj为该指标大类中的第j个指标中类的分值,1≤j≤n2

测试人员可以为每一个指标大类设置权重,各指标大类的权重之和为1。金丝雀服务器的总分值为各指标大类的分值的加权平均,即,总分计算模块340按照以下公式计算金丝雀服务器的总分值:

其中,n3为指标大类的数目,ck为第k个指标大类的分值,wk为第k个指标大类的权重,

应当指出,以上指标中类、指标大类、总分值的计算方法仅是示例性的,本领域技术人员还可以设置其他的计算方法,例如,将指标中类的分值设为其所包含的性能指标的分值的加权平均,指标大类的分值设为其所包含的指标中类的加权平均,将金丝雀服务器的总分值设为指标大类的分值的平均,等等,本发明对指标中类、指标大类以及总分值的具体计算方法并无限制。

总分值是对金丝雀服务器的性能的评价。总分值越高,金丝雀服务器的性能越好。测试人员可以自行设置基于总分值的金丝雀服务器的性能评价标准,例如,当总分值为90分及以上时,认为金丝雀服务器的性能符合要求,测试通过;当总分值低于90分时,认为金丝雀服务器的性能不符合要求,测试未通过,特别地,当总分值为60分及以下时,认为金丝雀服务器的性能很差,不符合要求。以上标准仅是示例性的,测试人员还可以设置其他的评价标准,本发明对此不做限制。

当金丝雀分析系统中有多台金丝雀服务器时,需要分别计算每一台金丝雀服务器的总分值,并综合考虑这多台金丝雀服务器的总分值来做出升级或回滚的决策。例如,当全部金丝雀服务器的总分值均达到设定的标准(例如90分)时,认为新版本应用测试通过,从基准服务器中再取出一定数量的服务器作为金丝雀服务器,升级其应用的版本,由金丝雀分析应用300继续对这些新的金丝雀服务器进行测试分析。当多台金丝雀服务器中有半数及以上未达到设定标准(例如90分),或有一台的总分值特别低(例如低于60分)时,则认为新版本应用测试失败,将金丝雀服务器进行回滚,退回到安装有旧版本应用的原有状态。

图6示出了根据本发明一个实施例的金丝雀分析方法600的流程图。如图6所示,该方法始于步骤S610。

在步骤S610中,预定周期获取基准服务器和金丝雀服务器的性能指标数据。其中,每个性能指标均包括第一数量的子性能指标,相应地,性能指标数据也包括多个子性能指标数据。基准服务器中配置有旧版本的应用,金丝雀服务器中配置有新版本的应用。根据一种实施例,每隔预定周期,获取基准服务器和金丝雀服务器在当前时刻之前的预定时间段内的性能指标数据。其中,预定周期可以设置为30分钟,预定时间段可以设置为180分钟。预定周期

根据一种实施例,在步骤S610之后,执行步骤S650(图6中未示出),对获取到的性能指标数据进行预处理,所述预处理包括归一化和平均化。预处理的具体过程可以参考前述对数据预处理模块350的描述,此处不再赘述。步骤S650执行完毕后,继续执行步骤S620。

在步骤S620中,根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态。根据一种实施例,第一状态包括优、中、差、无数据四种。第一状态的确定过程可以参照前述对第一分析模块320的描述,此处不再赘述。

随后,在步骤S630中,对于每一个性能指标,根据该性能指标所包括的子性能指标的第一状态确定金丝雀服务器的该性能指标相对于基准服务器所处的第二状态。根据一种实施例,第二状态包括中、差两种。第二状态的确定过程可以参照前述对第二分析模块330的描述,此处不再赘述。

随后,在步骤S640中,根据各性能指标的第二状态确定金丝雀服务器的总分值。总分值的确定过程可以参照前述对总分计算模块340以及图4的描述,此处不再赘述。

根据本发明的技术方案,采用KS检验算法来比较金丝雀服务器和基准服务器的子性能指标,不需要事先确定子性能指标数据符合何种分布,降低了人为因素对于分析结果的干扰。此外,与现有技术中仅考虑均值的分析方法不同,KS检验算法隐含地综合考虑了子性能指标数据的均值、方差等其他因素,提高了检验结果的准确性。另外,本发明按照子性能指标→性能指标→指标中类→指标大类→金丝雀服务器的顺序层层向上评分,评价体系科学、完善,准确度较高。

A6:A1所述的金丝雀分析方法,其中,所述第一状态包括:优、中、差、无数据。

A7:A6所述的金丝雀分析方法,其中,所述根据子性能指标数据确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态的步骤包括:对于每一个子性能指标:若未采集到基准服务器的该子性能指标数据和/或金丝雀服务器的该子性能指标数据,则将第一状态设置为无数据;否则:计算该子性能指标对应的第一均值和第二均值,其中,所述第一均值为基准服务器的该子性能指标数据的均值,所述第二均值为金丝雀服务器的该子性能指标数据的均值;当第二均值与第一均值的比值在第一阈值与第二阈值之间时,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度,若相似度大于相似度阈值,则将第一状态设置为中,否则,将第一状态设置为差;当第二均值与第一均值的比值小于第一阈值时,若该子性能指标的取值越小指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差;当第二均值与第一均值的比值大于第二阈值时,若该子性能指标的取值越大指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。

A8:A7所述的金丝雀分析方法,其中,所述第一阈值与所述第二阈值互为倒数。

A9:A8所述的金丝雀分析方法,其中,所述第一阈值为0.5,所述第二阈值为2。

A10:A7所述的金丝雀分析方法,其中,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度的步骤包括:计算基准服务器的该子性能指标数据的累积分布函数F1(x)和金丝雀服务器的该子性能指标数据的累积分布函数F2(x);按照以下公式计算相似度

D=max(F1(xj)-F2(xj))

其中,D表示相似度,xj为F1(x)曲线和F2(x)曲线对应的横坐标上的任意一点。

A11:A1所述的金丝雀分析方法,其中,所述第二状态包括:中、差。

A12:A11所述的金丝雀分析方法,其中,对于每一个性能指标,根据该性能指标所包括的子性能指标的第一状态确定金丝雀服务器的该性能指标相对于基准服务器所处的第二状态的步骤包括:在该性能指标所包括的第一数量的子性能指标中,若第一状态为差的子性能指标的数目大于等于第二数量,则将第二状态设置为差,否则,将第二状态设置为中。

A13:A12所述的金丝雀分析方法,其中,所述第一数量为6,所述第二数量为3。

A14:A11所述的金丝雀分析方法,其中,所述根据各性能指标的第二状态确定金丝雀服务器的总分值的步骤包括:根据各性能指标的特点,将每一个性能指标分别归为多个指标中类中的某一类;对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值;根据各指标中类的特点,将每一个指标中类分别归为多个指标大类中的某一类;对于每一个指标大类,根据该指标大类中包括的指标中类的分值确定该指标大类的分值;根据各指标大类的分值确定金丝雀服务器的总分值。

A15:A14所述的金丝雀分析方法,其中,所述对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值的步骤包括:根据各性能指标的第二状态确定各性能指标的分值;指标中类的分值为该指标中类中所包括的性能指标的分值的平均值。

A16:A15所述的金丝雀分析方法,其中,性能指标的分值按照以下方法确定:若性能指标的第二状态为中,则该性能指标的分值为100分;若性能指标的第二状态为差,则该性能指标的分值为0分。

A17:A14所述的金丝雀分析方法,其中,指标大类的分值为该指标大类中所包括的指标中类的分值的平均值。

A18:A14所述的金丝雀分析方法,其中,所述根据各指标大类的分值确定金丝雀服务器的总分值的步骤包括:为每一个指标大类设置权重,各指标大类的权重之和为1;金丝雀服务器的总分值为各指标大类的分值的加权平均。

B23:B22所述的金丝雀分析应用,其中,所述数据预处理模块还适于:在基准服务器有多台时,对多台基准服务器的经过归一化处理的性能指标数据求平均值,并将所述平均值作为基准服务器的性能指标数据。

B24:B19所述的金丝雀分析应用,其中,所述第一状态包括:优、中、差、无数据。

B25:B24所述的金丝雀分析应用,其中,所述第一分析模块适于按照以下步骤确定金丝雀服务器的每一个子性能指标相对于基准服务器所处的第一状态:对于每一个子性能指标:若未采集到基准服务器的该子性能指标数据和/或金丝雀服务器的该子性能指标数据,则将第一状态设置为无数据;否则:计算该子性能指标对应的第一均值和第二均值,其中,所述第一均值为基准服务器的该子性能指标数据的均值,所述第二均值为金丝雀服务器的该子性能指标数据的均值;当第二均值与第一均值的比值在第一阈值与第二阈值之间时,采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度,若相似度大于相似度阈值,则将第一状态设置为中,否则,将第一状态设置为差;当第二均值与第一均值的比值小于第一阈值时,若该子性能指标的取值越小指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差;当第二均值与第一均值的比值大于第二阈值时,若该子性能指标的取值越大指示的性能越好,则将第一状态设置为优,否则,将第一状态设置为差。

B26:B25所述的金丝雀分析应用,其中,所述第一阈值与所述第二阈值互为倒数。

B27:B26所述的金丝雀分析应用,其中,所述第一阈值为0.5,所述第二阈值为2。

B28:B25所述的金丝雀分析应用,其中,所述第一分析模块适于按照以下步骤采用KS检验算法计算基准服务器的该子性能指标数据与金丝雀服务器的该子性能指标数据的相似度:计算基准服务器的该子性能指标数据的累积分布函数F1(x)和金丝雀服务器的该子性能指标数据的累积分布函数F2(x);按照以下公式计算相似度

D=max(F1(xj)-F2(xj))

其中,D表示相似度,xj为F1(x)曲线和F2(x)曲线对应的横坐标上的任意一点。

B29:B19所述的金丝雀分析应用,其中,所述第二状态包括:中、差。

B30:B29所述的金丝雀分析应用,其中,所述第二分析模块适于按照以下步骤确定金丝雀服务器的各性能指标相对于基准服务器所处的第二状态:在某一个性能指标所包括的第一数量的子性能指标中,若第一状态为差的子性能指标的数目大于等于第二数量,则将第二状态设置为差,否则,将第二状态设置为中。

B31:B30所述的金丝雀分析应用,其中,所述第一数量为6,所述第二数量为3。

B32:B29所述的金丝雀分析应用,其中,所述总分计算模块适于按照以下步骤确定金丝雀服务器的总分值:根据各性能指标的特点,将每一个性能指标分别归为多个指标中类中的某一类;对于每一个指标中类,根据该指标中类中包括的性能指标的第二状态确定该指标中类的分值;根据各指标中类的特点,将每一个指标中类分别归为多个指标大类中的某一类;对于每一个指标大类,根据该指标大类中包括的指标中类的分值确定该指标大类的分值;根据各指标大类的分值确定金丝雀服务器的总分值。

B33:B32所述的金丝雀分析应用,其中,所述总分计算模块适于按照以下步骤确定指标中类的分值:根据各性能指标的第二状态确定各性能指标的分值;指标中类的分值为该指标中类中所包括的性能指标的分值的平均值。

B34:B33所述的金丝雀分析应用,其中,总分计算模块适于按照以下步骤确定性能指标的分值:若性能指标的第二状态为中,则该性能指标的分值为100分;若性能指标的第二状态为差,则该性能指标的分值为0分。

B35:B32所述的金丝雀分析应用,其中,所述总分计算模块适于按照以下方法确定指标大类的分值:指标大类的分值为该指标大类中所包括的指标中类的分值的平均值。

B36:B32所述的金丝雀分析应用,其中,所述总分计算模块适于按照以下步骤确定金丝雀服务器的总分值:为每一个指标大类设置权重,各指标大类的权重之和为1;金丝雀服务器的总分值为各指标大类的分值的加权平均。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1