一种SBS云应用自适应资源优化调整系统及方法转让专利

申请号 : CN201611077438.5

文献号 : CN106506229B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张斌郭军闫永明孟煜马安香印莹莫玉岩武静

申请人 : 东北大学

摘要 :

本发明提供一种SBS云应用自适应资源优化调整系统及方法,该系统包括:规则生成单元;监测单元;触发单元;动态决策单元;方案执行单元。该方法包括:生成自适应资源优化调整规则;在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;对SBS云应用进行自适应资源优化调整规则在线触发判断,确定触发的自适应资源优化调整规则;生成一组自适应资源优化调整动作,决策出自适应资源优化调整方案,进行SBS云应用自适应资源优化调整。本发明根据SBS云应用提供者与云环境提供者所签订的SLA,调整SBS云应用所占用的资源,实现了在保障SBS云应用性能的同时最小化资源调整的成本。

权利要求 :

1.一种SBS云应用自适应资源优化调整系统,其特征在于,包括:

规则生成单元,获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库;

监测单元,在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;

触发单元,对SBS云应用进行自适应资源优化调整规则在线触发判断,将触发的自适应资源优化调整规则发送给动态决策单元;

动态决策单元,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;

所述动态决策单元,包括:

调整动作生成模块,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的资源调整量、计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件,并将生成的自适应资源优化调整动作发送至调整方案生成模块;

调整方案生成模块,评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;

方案执行单元,根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。

2.根据权利要求1所述的系统,其特征在于,所述规则生成单元,包括:

关键性能指标维护模块,用于获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;

调整指令维护模块,用于构建自适应资源优化调整指令数据库;

目标获取模块,用于从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并发送至触发事件抽取模块;

部署信息获取模块,用于从云环境中获取SBS云应用的部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;

触发事件抽取模块,用于从自适应资源优化调整目标中离线抽取触发事件,并发送至规则生成模块中;

模板生成模块,用于利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干自适应资源优化调整模板形成自适应资源优化调整模板集发送至规则生成模块中;

规则生成模块,用于利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板。

3.一种SBS云应用自适应资源优化调整方法,其特征在于,包括:

步骤1、获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;

利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板;

步骤2、在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;

步骤3、对SBS云应用进行自适应资源优化调整规则在线触发判断,确定触发的自适应资源优化调整规则;

步骤4、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;

所述步骤4,包括:

步骤4.1、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的资源调整量、计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件;

步骤4.2、评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;

步骤5、根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。

4.根据权利要求3所述的方法,其特征在于,所述步骤1,包括:

步骤1.1、获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;构建自适应资源优化调整指令数据库;从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标;从云环境中获取SBS云应用的部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;

步骤1.2、从自适应资源优化调整目标中离线抽取触发事件;同时利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干形成自适应资源优化调整模板集;

步骤1.3、利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库。

说明书 :

一种SBS云应用自适应资源优化调整系统及方法

技术领域

[0001] 本发明涉及云计算技术领域,具体是一种SBS云应用自适应资源优化调整系统及方法。

背景技术

[0002] 当前很多云计算平台(Amazon EC2、Microsoft Azure、rackspace、阿里云等)都为部署在上面的应用系统提供了通过资源调整进行云应用系统性能优化的能力,这种能力使得云应用系统可以更加有效地应对云环境以及用户请求的实时变化,为云应用系统的性能保障提供了更加有效地支持。
[0003] 随着基于服务的系统(Service-based System,SBS)的普遍应用,越来越多的服务提供者选择将SBS部署在云环境中,部署的方式通常会采用将具体组件服务部署到多台虚拟机(Virtual Machine,VM)上的形式(例如SBS有7个组件服务,分别部署在7台VM上)。为了保障部署在云环境下的SBS的服务质量,可以通过自适应的调整组件服务所在虚拟机的资源(CPU、内存等)来改善组件服务的服务能力,从而实现保障SBS整体性能的目的。
[0004] 但是现有的一些资源动态调整方法通常将SBS云应用系统视为一个整体,而SBS由多个部署在不同虚拟机中的组件服务构成,其整体性能是由全部或者部分组件服务的性能所决定的。现有的方法直接应用于SBS时,可能会出现以下情况:某一组件服务经过优化后性能很好,但整体系统的性能却未得到明显提升;或者对所有组件服务进行调整,虽然整体系统性能得到提升,但付出的资源成本也较大。
[0005] 另外,云环境下资源的使用状态是动态变化的,一个虚拟机能够增加多少资源(如CPU、内存等)是受其所在物理机的资源使用情况所左右的,如果在系统运行之前预定义自适应调整,很有可能会出现自适应调整无法执行、不能实现预期优化目标等情况。例如预定义的自适应调整是给组件S1增加300M内存,若S1所在物理机的剩余内存不足300M时,则该自适应调整无法执行;若S1需要增加500M内存才能使系统的响应时间满足SLA的要求,则该自适应调整不能实现预期的优化目标。所以,为了在云环境下能够更有效的对SBS云应用的性能进行自适应优化,需要基于动态的自适应决策。

发明内容

[0006] 针对现有技术存在的问题,本发明提供一种SBS云应用自适应资源优化调整系统及方法,从保障SBS云应用整体性能且最小化资源成本的角度来决定调整哪些组件服务的资源以及如何调整,在云环境下基于动态的自适应决策对分散的组件服务资源调整进行整体优化。当SBS云应用的用户并发量发生变化并导致SLA发生违例时,本发明提供的系统及方法将对组件服务所在虚拟机的资源进行动态调整,以改善组件服务的服务能力,从而实现对SBS云应用性能的自适应优化。
[0007] 本发明的技术方案如下:
[0008] 一种SBS云应用自适应资源优化调整系统,包括:
[0009] 规则生成单元,获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库;
[0010] 监测单元,在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;
[0011] 触发单元,对SBS云应用进行自适应资源优化调整规则在线触发判断,将触发的自适应资源优化调整规则发送给动态决策单元;
[0012] 动态决策单元,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;
[0013] 方案执行单元,根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。
[0014] 所述规则生成单元,包括:
[0015] 关键性能指标维护模块,用于获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;
[0016] 调整指令维护模块,用于构建自适应资源优化调整指令数据库;
[0017] 目标获取模块,用于从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并发送至触发事件抽取模块;
[0018] 部署信息获取模块,用于从云环境中获取SBS云应用的部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;
[0019] 触发事件抽取模块,用于从自适应资源优化调整目标中离线抽取触发事件,并发送至规则生成模块中;
[0020] 模板生成模块,用于利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干自适应资源优化调整模板形成自适应资源优化调整模板集发送至规则生成模块中;
[0021] 规则生成模块,用于利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板。
[0022] 所述动态决策单元,包括:
[0023] 调整动作生成模块,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的资源调整量、计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件,并将生成的自适应资源优化调整动作发送至调整方案生成模块;
[0024] 调整方案生成模块,评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案。
[0025] 本发明还提供一种SBS云应用自适应资源优化调整方法,包括:
[0026] 步骤1、获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板;
[0027] 步骤2、在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;
[0028] 步骤3、对SBS云应用进行自适应资源优化调整规则在线触发判断,确定触发的自适应资源优化调整规则;
[0029] 步骤4、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;
[0030] 步骤5、根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。
[0031] 所述步骤1,包括:
[0032] 步骤1.1、获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;构建自适应资源优化调整指令数据库;从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并发送至触发事件抽取模块;从云环境中获取SBS云应用的部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;
[0033] 步骤1.2、从自适应资源优化调整目标中离线抽取触发事件;同时利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干形成自适应资源优化调整模板集;
[0034] 步骤1.3、利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库。
[0035] 所述步骤4,包括:
[0036] 步骤4.1、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的资源调整量、计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件;
[0037] 步骤4.2、评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案。
[0038] 有益效果:
[0039] 本发明是一种SBS云应用自适应资源优化调整系统及方法,可以根据SBS云应用提供者与云环境提供者所签订的SLA,自动的调整SBS所占用的资源,克服了现有技术应用于云环境下的SBS时存在的优化效果不好或者优化代价较高等方面的不足,实现了在保障SBS性能的同时最小化资源调整的成本,具有以下优点:
[0040] (1)本发明实现了有效的自适应资源优化调整,针对现有技术应用于SBS云应用时的不足,从保障SBS云应用整体性能且最小化资源成本的角度决定调整哪些组件服务的资源以及如何调整,对分散的组件服务资源调整进行整体优化;
[0041] (2)本发明从两个方面来保证自适应优化的时效性,分别为:
[0042] (2.1)将自适应资源优化调整动作的生成分在两个阶段完成,通过在离线阶段构建与特定自适应资源优化调整目标相关的自适应资源优化调整模板集合,可以有效的减少在线运行时自适应资源优化调整决策的计算量,保证自适应资源优化调整决策的时效性;
[0043] (2.2)提出了自适应资源优化调整模板,其代表了具有同一类优化作用的自适应资源优化调整动作,使得自适应系统在在线阶段时可以快速、准确的生成自适应资源优化调整动作候选集;
[0044] (3)本发明构建了面向自适应调整组合的优化模型,并使用混合遗传算法求解自适应资源优化调整动作的组合问题,形成能够实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合。

附图说明

[0045] 图1是本发明具体实施方式中的SBS云应用自适应资源优化调整系统框图;
[0046] 图2是本发明具体实施方式中的资源划分示意图;
[0047] 图3是本发明具体实施方式中的个体编码示意图;
[0048] 图4是本发明具体实施方式中的地听服务器端业务流程图;
[0049] 图5是本发明具体实施方式中的SBS云应用自适应资源优化调整方法流程图;
[0050] 图6是本发明具体实施方式中的规则生成单元框图。

具体实施方式

[0051] 下面结合说明书附图对本发明的具体实施方式做详细说明。
[0052] 一种SBS云应用自适应资源优化调整系统,如图1所示,包括:
[0053] 规则生成单元,获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板;
[0054] 监测单元,在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;
[0055] 触发单元,对SBS云应用进行自适应资源优化调整规则在线触发判断,将触发的自适应资源优化调整规则发送给动态决策单元;
[0056] 动态决策单元,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;
[0057] 方案执行单元,根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。
[0058] 所述规则生成单元,如图6所示,包括:
[0059] 关键性能指标维护模块,用于获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;所述SBS云应用性能的关键性能指标,包括CPU利用率、内存利用率、网络利用率、存储空间利用率、用户并发量和响应时间;
[0060] 调整指令维护模块,用于构建自适应资源优化调整指令数据库;
[0061] 目标获取模块,用于从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并发送至触发事件抽取模块;所述自适应资源优化调整目标包括虚拟机资源占用率类自适应资源优化调整目标、SBS云应用响应时间类自适应资源优化调整目标和用户并发量类自适应资源优化调整目标;
[0062] 部署信息获取模块,用于从云环境中获取SBS云应用的部署信息,包括物理机部署信息、虚拟机部署信息和组件服务部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;
[0063] 触发事件抽取模块,用于从自适应资源优化调整目标中离线抽取触发事件,并发送至规则生成模块中;
[0064] 模板生成模块,用于利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干自适应资源优化调整模板形成自适应资源优化调整模板集发送至规则生成模块中;
[0065] 规则生成模块,用于利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板。
[0066] 所述动态决策单元,包括:
[0067] 调整动作生成模块,根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的资源调整量、利用R-P模型计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件,并将生成的自适应资源优化调整动作发送至调整方案生成模块;利用熵-最小描述长度原则(Ent-MDLP)对资源进行划分,然后将划分结果作为自适应资源优化调整指令的参数即资源调整量;根据已确定的自适应资源优化调整指令的参数完成自适应资源优化调整动作约束条件的确定;
[0068] 调整方案生成模块,评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案。
[0069] 一种SBS云应用自适应资源优化调整方法,如图5所示,包括:
[0070] 步骤1、获取云环境中SBS云应用性能的关键性能指标数据,从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并从中抽取触发事件;同时,利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板;利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板;
[0071] 所述步骤1,包括:
[0072] 步骤1.1、获取云环境中SBS云应用性能的关键性能指标数据,构建SBS云应用性能的关键性能指标数据库;构建自适应资源优化调整指令数据库;从SBS云应用提供者与云环境提供者所签订的SLA中获取自适应资源优化调整目标,并发送至触发事件抽取模块;从云环境中获取SBS云应用的部署信息,并将这些部署信息保存至部署信息数据库中并实时更新;
[0073] 所述SBS云应用性能的关键性能指标(Key Performance Indicator,KPI),包括CPU利用率、内存利用率、网络利用率、存储空间利用率、用户并发量和响应时间;
[0074] 所述自适应资源优化调整目标包括虚拟机资源占用率类自适应资源优化调整目标、SBS云应用响应时间类自适应资源优化调整目标和用户并发量类自适应资源优化调整目标;
[0075] 所述部署信息包括物理机部署信息、虚拟机部署信息和组件服务部署信息;
[0076] 自适应资源优化调整目标(Goal):每类自适应资源优化调整目标使用关键性能指标KPI来描述特定的自适应资源优化调整目标,并使用Above、Below和Between关键字来确定自适应资源优化调整目标可接受的指标的范围。具体形式如下:
[0077] Goal goal_name:kpi_name Above thr_lower
[0078] Goal goal_name:kpi_name Below thr_upper
[0079] Goal goal_name:kpi_name Between thr_lower thr_upper
[0080] 其中,Above表示应该使KPI的值高于所给定的阈值thr_lower,Below表示应该使KPI的值低于所给定的阈值thr_upper,between表示应该使KPI的值保持在所给定的阈值区间。
[0081] 例子如下:
[0082] Goal user_con_goal1:user_con Below 500
[0083] Goal resp_time_goal1:S1.resp_time Between 500ms 1000ms
[0084] 上述例子中,名称为user_con_goal1的自适应资源优化调整目标描述了应保持系统的并发用户数低于500;名称为resp_time_goal1的自适应资源优化调整目标描述了应保持组件服务S1的响应时间在500ms到1000ms之间。
[0085] 物理机部署信息(Physical Machine Specification):描述与SBS云应用相关的物理机的资源信息以及这些物理机上部署的虚拟机的情况,具体形式如下所示:
[0086] Physical Machine Specification PM_Name
[0087]    Deployment:(VM_name1,VM_name2,...,VM_namen)
[0088]    Resource:((Resource1,Count),(Resource2,Count),...,(Resoucen,Count))[0089] 其中,Deployment为该物理机上所部署的虚拟机的情况;Resource是该物理机的资源信息,为多个二元组的集合,每个二元组表示一类资源的名称和数量,具体的例子如下:
[0090] Physical Machine Specification PM1
[0091]        Deployment:(VM1,VM2,VM3)
[0092]        Resource:((CPU,2.5GHz*2*4),(MEM,8G),(DISK,2000G),(NET,1000Mbps))
[0093] 在上述例子中,Deployment描述了物理机PM1上所部署了3个虚拟机,分别是VM1,VM2,VM3。Resource描述了该物理机的资源信息,具体为:该物理机拥有2个2.5GHz的CPU(每个CPU为4核)、8G内存、2000G磁盘存储空间、1000M的网络带宽(上行、下行)。
[0094] 虚拟机部署信息(Virtual Machine Specification):描述与SBS云应用相关的虚拟机资源信息、部署在该虚拟机上的组件服务的情况以及虚拟机的运行状态,具体形式如下所示:
[0095] Virtual Machine Specification VM_name
[0096]        Deployment:(component1,component2,…,componentn)
[0097]        Resource:((Resource1,Count),(Resource2,Count),...,(Resoucen,Count))
[0098] Status:[RUNNING/UNUSED/UNALLOCATED]//虚拟机运行状态
[0099] 与物理机部署信息类似,Deployment和Resource分别描述了该虚拟机上部署的组件服务的情况和该虚拟机的资源信息。Status描述了虚拟机的运行状态,共有三种类型:RUNNING、UNUSED和UNALLOCATED,分别表示该虚拟机处于运行、停止和未分配状态,其中,处于UNALLOCATED状态表示未创建该虚拟机的运行实例。具体例子如下:
[0100] Virtual Machine Specification VM1
[0101]        Deployment:(S1,S2,S3)
[0102]        Resource:((CPU,1*2),(MEM,2G),(DISK,100G),(NET,10Mbps))[0103] Status:RUNNING
[0104] 在上述例子中,Deployment描述了虚拟机VM1上所部署了3个组件服务,分别是S1、S2和S3。Resource描述了该虚拟机机被分配的资源信息,具体为:该虚拟机被分配了1个CPU的2个核心、2G内存、100G磁盘存储空间和10M的网络带宽(上行、下行)。Status描述了该虚拟机处于运行(RUNNING)状态。
[0105] 组件服务部署信息(Component Specification):描述可以使用的组件服务的部署情况以及该组件所拥有的副本的情况,具体形式如下所示:
[0106] Component Specification Component_name
[0107]     Deployment:VM_name,//组件服务所在的虚拟机
[0108] Status:[USING/UNUSED]//组件服务状态
[0109] 其中,Deployment为该组件服务所在的虚拟机;Duplicate为该组件的副本信息;Status描述了该组件服务的运行状态,共有两种类型:USING和UNUSED,分别表示该组件服务处于运行和停止状态。具体例子如下:
[0110] Component Specification S1
[0111]     Deployment:VM1,//S1所在的虚拟机
[0112] Status:USING//S1的状态
[0113] 在上述例子中,Deployment描述了组件服务S1的部署情况,其部署在虚拟机VM1中,该虚拟机中还有可能部署其他的组件服务,可以通过虚拟机部署信息获得。Status描述了组件S1处于使用状态。
[0114] 步骤1.2、利用SBS云应用的部署信息和自适应资源优化调整指令生成相应的自适应资源优化调整模板,若干形成自适应资源优化调整模板集;同时从自适应资源优化调整目标中离线抽取触发事件;
[0115] 触发事件为自适应资源优化调整的触发条件,每一个触发事件关联着一个特定的自适应资源优化调整目标,并说明事件触发后自适应资源优化调整所应达到的目标趋势,触发事件具体形式如下:
[0116] Event goal_name.event_name:kpi_name[>/<]thr Target target_name
[0117] 其中,goal_name.event_name为自适应资源优化调整目标和触发事件名称的组合,描述了两者的对应关系;kpi_name[>/<]thr为判定条件,表示当关键性能指标KPI的值大于/小于阈值thr时满足触发条件;Target表示触发事件触发后自适应资源优化调整所应达到的目标趋势,包括两种类型:IMPR_PERF和DEGR_PERF,分别表示触发事件触发后应执行提升或降低组件服务性能的自适应资源优化调整。
[0118] 根据自适应资源优化调整目标抽取对应的触发事件,触发事件的判定条件可以依据自适应资源优化调整目标中的关键字(Above、Below和Between)和阈值来确定,具体的对应规则如表1所示。在确定触发事件的判定条件后,可以根据判定条件确定触发事件的目标趋势,具体为:当判定条件为“>”时,目标趋势为“IMPR_PERF”;当判定条件为“<”时,目标趋势为“DEGR_PERF”。
[0119] 表1 自适应资源优化调整目标生成触发事件规则
[0120]
[0121]
[0122] 按照以上规则,自适应资源优化调整目标user_con_goal1和resp_time_goal1,分别可以生成以下触发事件:
[0123] Event user_con_goal1.event1:concurrent>500 Target IMPR_PERF
[0124] Event resp_time_goal1.event1:S1.resp_time<500ms Target DEGR_PERF
[0125] Event resp_time_goal1.event2:S1.resp_time>1000ms Target IMPR_PERF
[0126] 上述例子中,第一个例子为自适应资源优化调整目标user_con_goal1对应的触发事件event1,当SBS云应用的并发用户数超过500时满足触发条件,所对应的自适应资源优化调整所要达到的目标应是提升性能(IMPR_PERF)以处理更多的用户并发。第二个例子、第三个例子分别为自适应资源优化调整目标resp_time_goal1对应的两个触发事件event1和event2。其中event1是当组件服务S1的响应时间小于500ms时满足触发条件,对应的自适应调整应降低性能(DEGR_PERF)以节省资源;event2是当组件服务S1的响应时间大于1000ms时满足触发条件,对应的自适应资源优化调整应提升性能(IMPR_PERF)来保证响应时间满足用户要求。
[0127] 自适应资源优化调整指令(Adaptation Primitive)是资源调整的具体执行指令,每种资源都有相对应的自适应资源优化调整动作。以CPU资源为例,其自适应资源优化调整指令为addCPU(VM,Num)和reduceCPU(VM,Num),第1个参数“VM”是调整的目标虚拟机;第2个参数“Num”是调整的资源的数量。每种资源的自适应资源优化调整指令如下表所示:
[0128] 表2 自适应资源优化调整指令列表
[0129]
[0130]
[0131] 自适应资源优化调整模板是未确定资源调整量及其作用效果的自适应资源优化调整,离线阶段生成自适应资源优化调整模板的目的是为了缩短在线阶段实时生成自适应资源优化调整的时间,其内容包括自适应资源优化调整作用的目标对象、调整方式、调整后的目标趋势及执行的约束条件。具体形式如下:
[0132]
[0133] 其中,Object是自适应资源优化调整作用的目标对象,可以直接使用虚拟机部署信息的名称(VM_name)作为其标识,如VM1、VM2等;Primitive是自适应资源优化调整指令;Target是自适应资源优化调整指令执行后所实现的目标趋势,共有两种类型:IMPR_PERF和DEGR_PERF,其中IMPR_PERF和DEGR_PERF与触发事件中的目标趋势相同;Requires为执行该自适应资源优化调整模板中的自适应资源优化调整指令时所需要的环境条件,例如作为自适应资源优化调整目标对象的虚拟机需要处于运行状态等。
[0134] 为了自动生成上述形式的自适应资源优化调整模板,首先将自适应资源优化调整作用的目标对象与不同的自适应资源优化调整指令进行组合,形成的每一种组合即是一个自适应资源优化调整模板,且组合中的目标对象和自适应资源优化调整指令对应自适应资源优化调整模板中的Object和Primitive项。然后根据已确定的Primitive项标记自适应资源优化调整模板中的Target项,标记的具体规则如下:
[0135] (1)增加资源类的自适应资源优化调整指令可以认为其能够提升SBS云应用的性能或保持性能不变,标记为IMPR_PERF;
[0136] (2)减少资源类的自适应资源优化调整指令可以认为其能够降低系统的性能或保持系统的性能不变,标记为DEGR_PERF;
[0137] 最后,为了确定自适应资源优化调整模板中的Requires项,需要按照人工设定的生成规则(如表3所示),根据自适应资源优化调整模板中的Object和Primitive选择对应的约束条件,组合后构成Requires项。假设自适应资源优化调整模板中的Object的类型为虚拟机VM1,Primitive为addCPU(VM,Num),那么Requires项的内容就有2条约束,分别为“VM1.status==RUNNING”和“VM1.CPU.count<VM1.PM.CPU.count”。
[0138] 表3 自适应资源优化调整指令对应的环境条件约束
[0139]
[0140] 根据上述原则,可以自动生成如下的自适应资源优化调整模板:
[0141]
[0142] 上述例子描述了使用自适应资源优化调整指令addCPU(VM1,Num)为虚拟机VM1增加Num个CPU,其中增加CPU的个数待定,即Num的值需要结合系统的运行状态计算得到。执行该自适应资源优化调整指令的结果会使系统的性能得到提升(IMPR_PERF),如果要执行该自适应资源优化调整指令,则需要保证VM1处于运行状态(VM1.status==RUNNING),且VM1所在的物理机的CPU个数要大于或等于VM1当前的CPU个数与Num的加和(VM1.CPU.count+Num<=VM1.PM.CPU.count)。
[0143] 步骤1.3、利用触发事件和自适应资源优化调整模板生成自适应资源优化调整规则,并形成自适应资源优化调整规则库,每条自适应资源优化调整规则都包含一个触发事件和一组自适应资源优化调整模板。
[0144] 自适应资源优化调整规则描述当SBS云应用性能需要优化时,可以执行哪些自适应资源优化调整以达到优化调整目标。每个自适应资源优化调整规则都包含一个触发事件(Event)和一组可用的自适应资源优化调整模板(Adaptation Template),具体形式如下:
[0145] When event
[0146] Adaptations:{Template1,Template2,...,Templaten}
[0147] 其中,event为触发事件,每一个触发事件都与一个自适应资源优化调整目标相对应,在线阶段时,当SBS云应用的KPI值超过设定的阈值后,触发事件就会被触发;{Template1,Template2,...,Templaten}为自适应资源优化调整模板集合,其中的每一个自适应资源优化调整模板都可以使用部署信息、自适应资源优化调整方式和自适应资源优化调整指令自动生成,当自动生成所有的自适应资源优化调整模版后,就可以根据触发事件对所有的自适应资源优化调整模板进行过滤,保留符合条件的自适应资源优化调整模板,与触发事件构成自适应资源优化调整规则。
[0148] 具体而言,在离线阶段根据触发事件过滤自适应资源优化调整模板时,由于缺少SBS云应用运行时的状态信息,不能够计算出自适应资源优化调整模板会对性能造成的影响,只能判断出其对目标影响的趋势(将会提升性能或降低性能,分别标记为IMPR_PERF和DEGR_PERF),所以根据触发事件要求的目标趋势对自适应资源优化调整模板进行过滤。例如触发事件对应的自适应资源优化调整目标是要保证响应时间不能高于指定的阈值,则触发事件要求的目标趋势为提升性能,那么可以选择拥有相同目标趋势的自适应资源优化调整模板。
[0149] 步骤2、在线实时获取SBS云应用的运行状态信息和云环境的运行状态信息;
[0150] 步骤3、对SBS云应用进行自适应资源优化调整规则在线触发判断,确定触发的自适应资源优化调整规则;
[0151] 步骤4、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案;
[0152] 自适应资源优化调整动作描述优化SBS云应用的性能所执行的具体动作以及执行后将会对性能造成的影响。在线阶段时,自适应资源优化调整是根据自适应资源优化调整模板生成的,其生成的过程是确定自适应资源优化调整模板中自适应资源优化调整指令的参数(资源调整量)和计算自适应资源优化调整指令执行后效果的过程。
[0153] 一个自适应资源优化调整模板根据自适应资源优化调整指令参数的不同可以生成多个自适应资源优化调整动作,每个自适应资源优化调整主要包括三部分内容:确定参数后的自适应资源优化调整指令、自适应资源优化调整指令执行后对目标对象产生的效果和执行约束条件,具体形式如下:
[0154] Specific Adaptation:adaptation_name
[0155] Action:primitive_name//确定参数后的自适应资源优化调整指令
[0156] Impact:(impact1,impact2,...,impactn)
[0157] Requires:(require1,require2,...,requiren)//需求条件
[0158] 其中,Action是确定参数(资源调整量)后的自适应资源优化调整指令,继承于自适应资源优化调整模板的Primitive项;Impact是自适应资源优化调整指令执行后将会对目标对象性能造成的影响;Requires是自适应资源优化调整动作执行的约束条件,继承于自适应资源优化调整模板的Requires项。
[0159] 所述步骤4,包括:
[0160] 步骤4.1、根据被触发的自适应资源优化调整规则和当前SBS云应用的运行状态信息生成一组自适应资源优化调整动作,自适应资源优化调整规则中的自适应资源优化调整模板根据自适应资源优化调整指令的资源调整量的不同生成多个自适应资源优化调整动作,每个自适应资源优化调整动作的生成包括确定自适应资源优化模板中自适应资源优化调整指令的参数即资源调整量、计算自适应资源优化调整指令执行后对SBS云应用的性能影响和确定自适应资源优化调整动作的执行约束条件,并将生成的自适应资源优化调整动作发送至调整方案生成模块;
[0161] 为了能够计算得到自适应资源优化调整指令执行后的效果,事先建立一个描述组件服务所占用资源和响应时间之间关系的模型(R-P模型)。而建立组件服务的R-P模型需要对SBS云应用中的每个组件服务进行基准测试,获得组件服务在不同负载和不同资源情况下的响应时间信息,并将这些信息作为建立模型的训练数据,进而建立每个组件服务的R-P模型。
[0162] R-P模型的输入为组件服务的负载量和当前占用的资源量。其中,组件服务的负载量可以通过监测获得,输入的资源量为资源调整后的数量,例如,某个自适应资源优化调整动作的Action项为“addCPU(VM1,4)”,且VM1当前的CPU个数为2,则输入R-P模型的CPU的资源量为6。得到上述两个参数后,就可以通过R-P模型计算得到自适应调整的Impact项,完成自适应资源优化调整动作的生成。
[0163] 采用多元回归分析的方法建立R-P模型:对每个组件服务进行基准测试,通过基准测试获得组件服务在不同资源及负载情况下所能表现出的性能信息,利用多元回归分析得出组件服务负载、所拥有的资源与性能之间的关系。对于不同的资源类型,需要建立各自的R-P模型。R-P模型公式如下所示:
[0164]
[0165] 其中,自变量x1和x2分别表示组件服务负载和组件服务所拥有的资源,因变量y表示组件服务的性能信息。
[0166] R-P模型的建立及求解过程如下:
[0167] Step 1:确定R-P模型的公式形式,即需要确定自变量的种类数目、自变量间是否存在交互作用、自变量间交互作用的种类、是否应含有高阶自变量等,如R-P模型公式中含有两类自变量,并且这两类自变量的高阶均为2,自变量间的交互作用只有一种。
[0168] Step 2:抽取R-P模型中数据矩阵X,Y、参数矩阵β以及误差矩阵ε;得到R-P模型公式的矩阵形式:Y=Xβ+ε。
[0169] Step  3:得到最小二乘方程(X′X) 其中(X′X)是最小二乘估计的系数矩阵,X′Y是等式右边的常数矩阵。
[0170] Step 4:得到最小二乘解
[0171] Step 5:将符合要求的并发用户请求量及性能目标(响应时间)带入R-P模型公式中求解,得到参数矩阵。
[0172] 对于自适应调整中自适应资源优化调整指令参数的确定,即Action项内容的确定,利用熵-最小描述长度原则(Ent-MDLP)对资源进行划分,然后将划分结果作为自适应资源优化调整指令的参数,具体为:利用Ent-MDLP分别对虚拟机(自适应资源优化调整指令作用的目标对象)所在的物理机的各类剩余资源进行划分,并将划分结果作为自适应资源优化调整指令的参数,若待划分的资源不满足Ent-MDLP划分的最小的资源分配量时,则不生成该自适应资源优化调整动作;
[0173] 采用K-均值聚类算法将组件服务在不同资源状态下的响应时间进行聚类,以簇边界作为不同区间的分割点,从而使得每个资源状态与一个响应时间的类相对应,然后利用熵-最小描述长度原则(Ent-MDLP)将各类型剩余资源划分为不同的区间。
[0174] 以CPU资源为例,假设物理机剩余9个CPU资源可以分配,根据Ent-MDLP算法可以将CPU资源离散化为4个区间:[0,3.5],[3.5,5.5),[5.5,8.5),和[8.5,+∞)。由于资源属性离散化得到的结果是区间,故无法直接据此划分资源。为此,采用求区间平均值的方法,以平均值作为可用的分配资源量。由于最后一个区间是上界为+∞的开区间,无法求平均值,为此,以待划分的资源总量作为区间上界,并求平均值,以实现对资源的充分利用,因此得到1.75、4.5、7和8.75。由于CPU的分配单位是整数。因此,对平均值四舍五入取整,得到可用资源分配量为:2、5、7、9,如图2所示。
[0175] 在自适应资源优化调整指令的参数确定后,Requires中的约束条件的参数也随之确定,例如自适应资源优化调整指令“addCPU(VM,Num)”对应的约束条件为“VM.CPU.count+Num<=VM.PM.CPU.count”,在确定自适应资源优化调整指令中的参数Num后,也就确定了约束条件中的Num。结合部署信息,就可以判断自适应资源优化调整动作是否符合约束条件,若符合则继续完成该自适应资源优化调整动作的生成,否则就抛弃该自适应资源优化调整动作。
[0176] 步骤4.2、评估自适应资源优化调整动作执行后对SBS云应用性能的贡献及自适应资源优化调整动作执行的代价,决策出实现自适应资源优化调整目标,且执行收益最大、代价最小的自适应资源优化调整动作组合,作为自适应资源优化调整方案。
[0177] 上述步骤4.1中生成的一组自适应资源优化调整动作中,由于不同的自适应资源优化调整动作的执行效果和代价都不同,需要在一组中决策出能够实现特定优化目标的自适应资源优化调整动作组合,且要求自适应资源优化调整动作组合的执行收益最大、代价最小,从而作为最终的自适应资源优化调整方案。
[0178] 此外,同一个自适应资源优化调整模板生成的自适应资源优化调整动作之间也是互相冲突的,即在自适应资源优化调整方案中,针对每种资源的自适应资源优化调整动作只能有一个。这样可以大大减少形成自适应资源优化调整动作组合时的计算量,从而缩短在线阶段动态决策的反应时间。
[0179] 为了实现上述目标,本实施方式中给出各种类型自适应资源优化调整动作的代价收益模型,在此基础上,形式化描述了自适应资源优化调整动作的组合问题,建立了其优化模型,并给出了求解自适应调整动作的组合优化模型的混合遗传算法,具体如下:
[0180] (1)自适应资源优化调整代价收益模型:用于评估具体自适应资源优化调整执行后对SBS云应用性能的贡献及执行的代价,以此作为自适应资源优化调整动作组合形成的依据。与组件服务自适应调整动作的代价/收益相关的指标主要包括:资源变化量的使用成本cΔR、组件服务的性能变化量ΔQ和自适应调资源优化调整动作执行的时间开销ct。
[0181] 其中,资源变化量的使用成本cΔR是指自适应资源优化调整动作在执行前后不同资源变化量的费用之和,即
[0182] cΔR=∑r∈(CPU,Mem,Net,Disk)Ur|m′-m|
[0183] 其中,CPU、Mem、Net和Disk分别表示处理器、内存、网络和存储等资源;Ur表示每种资源的单位价格,可通过建立资源的定价模型来确定,如市场上一条容量为4GB的DDR3内存条的价格是220元左右,则可以算出内存的单位价格为220元/4096M=0.054元/M;m、m’分别表示自适应资源优化调整动作在执行前和执行后组件服务占有的各类资源的总量。
[0184] 组件服务性能变化量ΔQ是指自适应资源优化调整动作导致的组件服务的不同性能指标(如响应时间、可靠性和吞吐量等)的变化,在本实施方式中主要是指响应时间。
[0185] 时间开销ct是指完成自适应自适应资源优化调整动作执行所需的时间,但资源调整通常是即时生效的,如调整KVM虚拟机的CPU、内存等,所以资源调整类的时间开销可以忽略不计。
[0186] 组件服务不同类型自适应资源优化调整动作的代价和收益分别由上述不同指标构成。对于资源增加类(Resource Increase)的自适应资源优化调整动作,其执行代价cra主要是所增加资源的使用成本cΔR,即:
[0187] Cri=cΔR
[0188] 在资源调整类的自适应资源优化调整动作执行后,也使组件服务的性能得到了改善,因此,其收益era主要是指组件服务的性能变化量ΔQ,即:
[0189] eri=ΔQ
[0190] 对于资源减少类(Resource Reduction)的自适应资源优化调整动作,其执行的目的是将SBS云应用占用的过量的资源释放出来供其他系统或组件服务使用,同时还能保证SBS云应用的响应时间不违反SLA约束,所以其执行代价crr为0,收益err则为减少的资源的成本cΔR和对组件服务性能进行的改善ΔQ,采用加权法可以得到:
[0191] err=γ1cΔR+γ2AQ
[0192] 其中,γ1、γ2分别表示cΔR、ΔQ的权重。
[0193] (2)面向自适应调整动作组合的优化模型
[0194] 假设SBS云应用是由p个组件服务S1,S2,...,Sp构成,其部署的云环境包含q个物理机pm1,pm2,...,pmq,各物理机上的可分配的资源量为 当触发事件被触发时,触发事件对应的自适应资源优化调整动作的集合为A(Si)={ai,j|1≤j≤ni},其中,ni表示组件服务Si所对应的自适应资源优化调整动作的数量,并设调整Si的某一种资源的自适应资源优化调整动作集合为AR(Si)={ai,j|1≤j≤ui},其中,ui表示调整组件服务Si的某一种资源的自适应资源优化调整动作的数量,且 对于每一个ai,j,其调整的
资源量为ri,j,执行后产生的代价和收益分别为ci,j和ei,j。因此,自适应资源优化调整动作的组合形成问题是指如何选择一组合适的自自适应资源优化调整动作,使得资源调整的收益最大,并在收益最大的条件下使得成本最小,同时SBS云应用的响应时间满足SLA的约束,还要求自适应资源优化调整的资源量满足当前云环境的可用资源约束,即要求需要同一台物理机提供资源的所有自适应调整,其资源调整量之和不超过该物理机的可分配资源量且自适应资源优化调整动作之间不存在冲突。
[0195] 根据上述问题定义可知,自适应资源优化调整动作的组合模型中包含三类决策变量,分别以xi,j,yi,j,k,zi,j表示:xi,j=1表示选择了自适应资源优化调整动作ai,j,否则xi,j=0;yi,j,k=1表示ai,j调整的资源需要物理机pmk进行提供,否则yi,j,k=0;zi,j=0表示ai,j为资源增加类的自适应资源优化调整动作,zi,j=1表示ai,j为资源减少类的自适应资源优化调整动作。令X=(xi,j),Y=(yi,j,k),则自适应资源优化调整动作的组合模型为:
[0196]
[0197]
[0198] RTsla_low≤RT(X)≤RTsla_up  (3)
[0199]
[0200]
[0201] xi,j,yi,j,k,zi,j∈{0,1},i=1,2,...,p,j=1,2,...,ni,k=1,2,...,q  (6)[0202]
[0203]
[0204] 公式(1)、(2)分别表示X下SBS云应用各组件服务对应的自适应资源优化调整动作的执行代价和收益;公式(3)为X下SBS云应用的响应时间约束;公式(4)表示一台物理机内的自适应资源优化调整的资源量不能超过其最大可用资源数量;公式(5)表示自适应资源优化调整动作之间冲突的约束;公式(7)、(8)分别表示不同类型的自适应资源优化调整动作的执行收益和代价。
[0205] (3)组合模型的求解算法
[0206] 求解上述自适应资源优化调整动作的组合模型可以得到最优的自适应资源优化调整动作组合,即自适应资源优化调整方案(Adaptation Scheme),但自适应资源优化调整动作组合问题等价于多维多选择背包问题,属于NP-Hard问题,无法在多项式时间内求得精确解,所以采用混合遗传算法求解该组合模型的近似最优解,其设计步骤和具体处理过程如下:
[0207] (a)个体编码
[0208] 编码的选择是影响遗传算法搜索效果和效率的重要因素,令个体编码的长度为7ni,即每7表示一个组合模型,并采用十进制整数进行编码。在每个自适应调整的7编码中,第1个基因位g1是否选中了该自适应资源优化调整动作,取值为{0,1};第2个基因位表示该自适应资源优化调整动作的类型,取值为{0,1},当取值为0时表示为资源增加类的自适应资源优化调整动作,取值为1时表示为资源减少类的自适应资源优化调整动作;第3个基因位g2的取值是与SBS云应用部署相关的物理机的索引,其范围为[1,k];第4个基因位为CPU资源的调整量;第5个基因位为内存资源的调整量;第6个基因位为网络资源的调整量;第7个基因位为存储资源的调整量,具体如图3所示。
[0209] (b)遗传算子
[0210] 选择(selection)算子采取精英保留策略,即将当前种群中适应度值最大的个体(称作精英个体elitist)直接复制到下一代,从而保证GA的全局收敛性;同时,采用随机遍历抽样法(stochastic universal sampling)选择进行交叉变异的个体。该方法是经典轮盘赌选择法(roulette wheel)的一种改进,其特点是只需一次轮盘旋转,能够在一定程度上防止早期的高适应度个体迅速占据种群,从而避免收敛到局部最优解。
[0211] 交叉(crossover)算子采用标准的两点交叉,即对于任意个体g1,根据一定的交叉概率从其他被选择出的个体中随机选择一个配对个体g2,随机选择两个不同的交叉点ol和o2(1≤o1<o2≤7ni-1),以g2中o1和o2之间的基因片段替换g1中相应位置的片段,从而形成新的个体。
[0212] 为了提高GA的局部搜索能力,类似文献[ZXT30],采用基于局部搜索的变异(mutation)算子,即对新的种群中的任意适应度值大于或等于种群平均适应度值的个体g,从其邻域N(g)中随机选择l个候选个体加入该种群。采用海明距离等于1定义领域,即对于一个个体,其领域是指所有与其具有1个不同基因位的个体构成的集合。此时,为了维持种群规模不变,假设群体规模为NP,将精英个体加入该种群,并根据适应度值从高到低对个体进行排序,选取前NP个个体作为下一代种群。
[0213] (c)适应度函数
[0214] 为了评价个体g的质量,考虑到其必须满足SLA响应时间约束、物理机剩余资源约束和自适应调整之间的冲突约束,因此在适应度函数中引入惩罚函数,以降低解空间中无对应可行解的个体的适应度,减少其遗传到下一代群体的概率,从而加快算法收敛速度。采用界限构造法定义保证取值大于0的适应度函数:
[0215]
[0216] 其中,F′(X)为与X对应的自适应调整收益归一化后的值,即:
[0217] F′(X)=(Fmax-F(X))/(Fmax-Fmin)
[0218] 其中, RTp(X)和ACp(X)分别表示X违反组合模型中约束(3)和约束(5)的惩罚函数,Rα,k(Y)表示Y违反组合模型中约束(4)时的惩罚函数,具体为:
[0219]
[0220] ACp(X)=AC(X)/(p*ni-1)
[0221] 其中,AC(X)表示在触发事件对应的自适应资源优化调整动作的集合A(Si)中,被选中的自适应资源优化调整动作之间冲突的数量。
[0222]
[0223] 其中, 且 另外,δ1、δ2、δ3(δ1,δ2,δ3∈(0,1))为惩罚因子,分别表示违反SLA响应时间约束、自适应资源优化调整冲突约束和物理机剩余资源约束的惩罚程度。
[0224] (d)算法终止条件
[0225] 对新一代种群中适应度最高的个体对SBS云应用性能产生的影响进行评估,并以此来衡量算法的收敛性,将其作为遗传迭代的终止条件之一。以X(T)表示第T次迭代后,在最优个体的作用下SBS云应用所能达到的性能指标,则对于给定阈值ε,当X(T)-X(T-1)≤ε时,终止搜索。同时,为了避免搜索时间过长,设定一个最大遗传代数NG为终止条件。当算法满足两者中的任意条件时,则终止搜索。
[0226] 该算法结合了遗传算法和局部搜索特点,因此是一种混合遗传算法(hybrid GA)。具体算法描述如下:
[0227] 面向自适应调整动作细合形成的混合遗传算法
[0228]
[0229]
[0230] 步骤5、根据自适应资源优化调整方案进行SBS云应用的自适应资源优化调整。
[0231] 本实施方式以一个景点语音导游系统(地听)为例,该系统分为服务器端和移动端两部分,其中服务器端是一套SBS系统,共由7个组件服务构成,分别是:景区定位(S1)、上传图像解析(S2)、图像特征匹配(S3)、GPS定位识别景点(S4)、当前景点语音播放列表确定(S5)、当前景点语音播放传送(S6)和后续路线推荐(S7),其中,S6为网络密集型服务,S8为计算密集型服务,整体的业务流程如图4所示。
[0232] 景点语音导游系统部署环境:部署在由6台物理机组成的云环境中,其中3台物理机为配置相同的服务器,标记为PM1~PM3,并在这3台物理机上共创建7台配置相同的虚拟机,分别标记为VM1~VM8(在PM1上创建VM1和VM2,在PM2上创建VM3~VM5,在PM3上创建VM6~VM7),然后在每台虚拟机上分别部署SBS系统的1个组件服务,如在VM1上部署S1。另外3台物理机则分别用来进行自适应决策、存储SBS系统的业务数据及运行状态的监控数据和产生访问负载及监测SBS系统的运行状态。以PM1、VM1和S1为例,相关的系统部署信息如下所示:
[0233]
[0234]
[0235] 自适应资源优化调整目标设定:在景点语音导游系统的自适应资源优化调整的过程中,自适应资源优化调整的目标是要保证系统的响应时间不能超过SLA中规定的阈值。而与该目标相关的指标,除了系统的响应时间外,还有用户的并发访问量以及虚拟机的资源利用率,如CPU和内存的占用率。对于用户并发访问量,当系统当前的用户并发访问量超过系统所能承受的上限时,则很容易导致系统的响应时间变长,所以需要设定用户并发量相关的自适应目标,以保证在出现并发用户数超过系统当前承载能力的时候可以进行及时的调优。对于虚拟机的资源利用率,若虚拟机的资源利用率一段时间内都处于较高的状态时,如CPU利用率大于80%,则说明部署在虚拟机上的组件服务已经处于较高的负载状态,很有可能会出现或已经出现过载的情况,从而导致服务响应时间违反SLA规定,所以也需要设定虚拟机资源利用率的自适应目标,使虚拟机可以保持在适当的负载状态。
[0236] 根据上述因素,设定三类自适应资源优化调整目标:响应时间类、用户并发量类和虚拟机资源利用率类。其中,响应时间类的自适应资源优化调整目标可以根据SLA中关于系统响应时间的约束进行设定,以生成系统级的自适应资源优化调整目标,还可以根据基准测试的结果或专家经验设定每个组件服务的响应时间类的自适应资源优化调整目标,即当单个组件服务的响应时间超过设定的阈值时(此时系统整体的响应时间可能还在SLA的规定范围内),就对该组件服务进行调优,从而预防系统发生SLA违例。以系统的响应时间自适应资源优化调整目标和组件服务S1的响应时间自适应资源优化调整目标为例:
[0237] Goal sys_resp_time_goal:resp_time Between 500ms 1000ms
[0238] Goal comp_resp_time_goal1:S1.resp_time Between 100ms 300ms
[0239] 与响应时间类的自适应资源优化调整目标类似,用户并发量类的自适应资源优化调整目标也可以分为系统级和组件服务级两类,每类的设定方式也与响应时间类的自适应资源优化调整目标类似。以系统的用户并发量自适应目标和组件服务S1的用户并发量自适应目标为例:
[0240] Goal sys_user_con_goal:user_con Below 300
[0241] Goal comp_user_con_goal1:S1.user_con Below 300
[0242] 对于虚拟机资源利用率的自适应目标,其设定完全是根据专家经验,例如服务器的CPU利用率应保持在20%~80%之间。此外,主要考虑CPU、内存和网络带宽利用率三种指标,结合系统部署信息,可以为每一个虚拟机设定的相应的自适应资源优化调整目标,即人工设定每类资源利用率的具体范围,所有虚拟机的资源利用率类的自适应资源优化调整目标都以该范围为标准进行设定。以虚拟机VM1为例,其资源利用率类的自适应资源优化调整目标如下:
[0243] Goal vm_cpu_usage_goal1:vm1.cpu_usage Between 20%80%
[0244] Goal vm_mem_usage_goal1:vm1.mem_usage Between 20%80%
[0245] Goal vm_net_usage_goal1:vm1.net_usage Between 20%80%
[0246] 自适应资源优化调整规则生成:以系统响应时间和组件服务S1响应时间的自适应资源优化调整目标为例,抽取的触发事件如下:
[0247] Event sys_resp_time_goal.event1:resp_time<500ms Target DEGR_PERF
[0248] Event sys_resp_time_goal.event2:resp_time>1000ms Target IMPR_PERF
[0249] Event comp_resp_time_goal1.event1:resp_time<100ms Target DEGR_PERF[0250] Event comp_resp_time_goal1.event2:resp_time>300ms Target IMPR_PERF[0251] 当在线阶段触发事件被触发时,与系统级自适应资源优化调整目标相关的触发事件将优先触发,例如:当通过监测发现系统的响应时间和组件服务S1的响应时间都不符合要求时,则优先触发系统级的触发事件(resp_time_goal1.event2),首先保证系统的整体性能。此外,为了避免由于KPI的瞬时变化所导致的不必要的优化,根据一段时间内KPI值的变化情况对触发事件进行触发,例如在1分钟内,如果有80%以上的系统响应时间监测值超过了1000ms,则触发resp_time_goal1.event2事件,开始对系统进行优化。
[0252] 由于自适应资源优化调整模板是根据自适应资源优化调整的目标对象对应不同的自适应资源优化调整指令自动生成的,所以对于地听系统,可以生成56个资源调整类的自适应资源优化调整模板(4类调整的资源——CPU、内存、网络、存储,2种调整方式——增加或减少,7个自适应调整的目标对象——部署了组件服务的虚拟机)。以调整VM1的CPU的自适应资源优化调整模板为例:
[0253]
[0254] 在生成系统所有的自适应资源优化调整模板后,按照自适应资源优化调整规则生成的方法,可以为每一个触发事件挑选合适的自适应资源优化调整模板集合,形成相应的自适应资源优化调整规则。例如:对于sys_resp_time_goal.event2触发事件,可以生成如下的自适应资源优化调整规则:
[0255]
[0256] 由于resp_time_goal1.event1触发事件是系统级的触发事件,符合其相关自适应资源优化调整目标的自适应资源优化调整模板共有28个,即所有目标趋势为IMPR_PERF的自适应资源优化调整模板都可以成为其候选自适应资源优化调整模板。若触发事件为组件服务级,例如comp_resp_time_goal1.event2,则可以只选择与该组件(S1)相关的符合目标趋势的自适应资源优化调整模板生成相应的集合,具体为:
[0257] When comp_resp_time_goal1.event2
[0258]    Adaptations:{TP_RA_Add_VM1_CPU,TP_RA_Add_VM1_MEM,
[0259]    TP_RA_Add_VM1_DISK,TP_RA_Add_VM1_NET}。