面向弹性分析流程的云资源配置优化方法与流程

文档序号:11133737阅读:442来源:国知局
面向弹性分析流程的云资源配置优化方法与制造工艺

本发明涉及云资源配置优化技术领域,具体地,涉及一种面向弹性分析流程的云资源配置优化方法。



背景技术:

近年来,云计算、和移动互联网的普及和发展,促使不同领域的海量数据的产生,例如生物信息领域,社交网络和智能交通系统等等。这些海量数据的分析和处理成为现在的研究热点。对这些数据进行有效的分析可以使得决策更加准确和快速。一般来讲,数据分析属于计算密集型的应用。对于连续到达的数据分析任务,如果想要及时处理掉所有的请求,必须分配足够多资源,即能够满足最高负载。但是,这样会导致在负载请求比较低时,造成资源闲置浪费。云计算平台通过网络实现计算资源共享,可以实现资源的按需供给。因此,越来越多的应用被部署在云平台上。

一般来讲,数据分析处理应用由多个组件构成,每个组件可以独立部署。工作流是一个用来协同这些组件的很好的工具。为了动态扩展系统,传统方式是将整个流程作为一个整体扩展,依据整个流程增加或者减少资源实例。但是流程中不同的组件具有不同的处理能力。在请求负载不断到达的情形下,一个资源实例对于某个组件是足够了,但其它组件可能会需要更多的实例,否则就会成为系统瓶颈。

随着大数据时代的到来,越来越多的数据分析应用涌现。可以用工作流来建模一些数据分析应用。这类应用的请求一般是连续不断到达的,并且对这些请求对响应时间具有严格的要求。当将这些分析流程部署在云平台上时,一个关键问题就是如何分配云资源,从而使得在满足响应时间需求的前提下,租用虚拟机数量最少。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种面向弹性分析流程的云资源配置优化方法。

根据本发明提供的面向弹性分析流程的云资源配置优化方法,包括如下步骤:

步骤1:对弹性分析流程进行性能建模,即将整个分析流程建模为开放式排队网络,流程中的每个组件对应为排队网络系统中的M/M/m子队列,一个组件的输出为另一个组件的输入;

步骤2:估计出整个开放式排队网络的平均响应时间,根据估计出的平均响应时间,对每个组件进行云资源分配,使得在满足用户需求的平均响应时间的前提下,总资源数最少。

优选地,所述步骤1中的弹性分析流程能够采用带权有向无环图G表示,G=(C,E),C为图G的节点集,代表流程中所有组件的集合,E是图G的边集,表示组件之间的依赖关系;其中,节点上的权值表示组件执行用户请求的平均服务时间;任意两个节点构成的边用于表示两个组件之间的数据流关系,令e(ci,cj)∈E,e(ci,cj)表示节点ci与cj之间具有依赖关系,代表节点ci是cj的前继节点,相应地,cj是ci的后继节点;在处理某请求时,一个组件在该组件所有前继节点未完成之前不能开始处理;具体地:

用EW表示弹性分析流程,EW=<G,f(C)>,<G,f(C)>表示对图G进行优化运算,其中f(C)表示用来决定每个组件的实例数的函数。

优选地,所述步骤2包括:

步骤2.1:在开放式排队网络中确定关键路径;

步骤2.2:对关键路径上的组件进行资源优化;

步骤2.3:对剩余组件进行资源优化,所述剩余组件即不在关键路径上的组件。

优选地,所述步骤2.1包括:每隔一个计价时长更新一次关键路径,并为关键路径上的组件分配虚拟机,其中:所述关键路径是指:有向无环图中从起始节点到终止节点的路径中所有节点权值之和最大的路径;所有节点权值之和能够体现组件的平均服务时间。

优选地,所述步骤2.2包括:对关键路径上的组件进行资源优化。

优选地,所述步骤2.3包括:在步骤2.2中求得了关键路径上所有组件的平均响应时间,并根据带权有向无环图的并行块为剩余组件分配虚拟机,且令每个并行块上的非关键路径并行分支的平均响应时间小于等于对应并行块关键路径分支组件的平均响应时间;根据平均响应时间与服务器数量的关系,计算虚拟机个数,并分配虚拟机。

与现有技术相比,本发明具有如下的有益效果:

本发明可以对于请求连续到达的分析流程进行资源分配,具体地,将整个系统以组件为单元进行独立部署,形成弹性流程;将每个组件看作排队系统,整个流程看作排队网络,利用排队论对系统的平均响应时间进行估计,比较准确的估计响应时间。本发明还能够依据排队论估计每个组件的可分配服务器解集,然后利用启发式算法得到近似最优解。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为组件性能分析模型示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

针对面向弹性分析流程,本发明采用基于排队网络理论的云资源配置优化策略。一般来讲,分析流程包含多个组件,每个组件具有独立的功能且可以独立部署,组件之间具有相互依赖关系。目前已经存在的针对工作流的云资源配置优化方法是将整个流程看作整体,对其进行云资源分配。这样,当某个组件的性能降低,不足以处理不断到达的请求时,则需要为整个应用增加资源,这样会造成其它组件的性能过高,从而造成资源浪费。换句话讲,一个分析流程中的每个组件的处理能力是不同的,需要的资源数量也是不同的,如果将整个流程作为一个整体进行资源分配,则需要依据瓶颈组件(即处理能力最低的组件)来进行资源分配,其它组件分配的资源则会过剩。本发明将每个组件进行独立的按需资源分配,这样会更节省资源和花费。但是,这样问题会比较复杂,难度会增加。因为用户关心的是每个请求处理完成的平均响应时间,而不是每个组件的处理时间,但是资源配置方案则是针对每个组件,即单个组件分配多少资源。显而易见,这是一个NP难问题。

首先用开放式排队网络理论对弹性分析流程进行性能建模。将整个分析流程建模为开放式排队网络系统,流程中的每个组件为排队网络系统中的M/M/m子队列,一个组件的输出为另一个组件的输入。然后通过排队理论估计出整个系统的平均响应时间。根据估计出的平均响应时间,提出两种启发式算法对每个组件分配云资源,使得在满足用户需求的平均响应时间的前提下,总资源数最少。

弹性分析流程模型:

典型地,分析流程可以用带权有向无环图(Directed Acyclic Graph,DAG)来表示,G=(C,E)。其中,节点表示组件,节点上的权值表示组件执行用户请求的平均服务时间;边e(ci,cj)表示组件之间的数据流关系,e(ci,cj)∈E表示顶点ci是cj的前继节点,相应地,cj是ci的后继节点。在处理某请求时,一个组件在其所有前继节点未完成之前,不能开始处理。弹性分析流程中的每个组件可以根据负载部署多个实例。

本发明中用EW表示弹性分析流程,EW=<G,f(C)>,其中f(C)表示用来决定每个组件的实例数的函数。

资源模型

云资源通常以虚拟机的形式对外提供,且包含多种规格。为了简化问题,本发明用虚拟机单元来标准化虚拟机。此外,本发明采用独占式资源提供模型,即在某一时刻,每个虚拟机只能分配给一个组件。虚拟机的计价模型是按需收费。

性能分析模型

利用排队论来建模分析流程的性能,将整个弹性分析流程建模为一个开放式排队网络,每个组件建模为M/M/m队列。根据排队理论,用λ表示整个分析流程的平均请求达到率;用μ表示每个虚拟机在组件上的平均服务率;m表示在组件上分配的虚拟机个数。定义流量强度为ρ,ρ=λ/(mμ)。每个组件的平均响应时间其中表示请求在每个组件的平均排队的概率,

本发明的资源配置优化策略分为三个步骤:第一步,确定关键路径,第二步为关键路径上的组件进行资源优化,第三步是为剩余组件进行资源优化。程序1是策略的总流程的伪代码。第一行是根据计价收费时长计算每个更新周期。因为虚拟机是按需收费,在每个计费时长内,虚拟机一旦租赁无论闲置或者忙,都需要付费,所有本发明每隔一个计价时长主动更新一次。然后在每个更新周期内,确定关键路径,调用程序2或者程序3的算法为关键路径上的组件分配虚拟机。同时根据并行块,为剩余组件分配虚拟机,策略是每个并行块上的其它并行分支的平均响应时间不大于其关键路径分支的组件的平均响应时间。

程序1(云资源分配优化算法概览)

关键路径上的组件是一个顺序流程。根据排队论,整个关键路径的平均响应时间是所有组件的响应时间之和Rpath

式中:Ri表示第i个组件的响应时间,k表示组件的个数。

关键路径上的组件的资源配置优化策略有两种优化算法:

基于分组背包的优化算法(Group Knapsack-based Algorithm,GKA)

程序2给出了基于分组背包的优化算法的伪代码。给定请求的平均到达率和组件的平均服务时间,根据组件的性能分析模型,可以计算出平均响应时间和虚拟机数量的关系。当一个组件中,分配的虚拟机数量越多时,组件的平均响应时间越小。但当虚拟机数量达到某个饱和值时,即每个新到达的请求无需排队等待,即来即服务,则组件的平均响应时间不再变化,将这个饱和状态时虚拟机数量记作m_maxi,t,相应的响应时间记作r_maxi,t。根据系统稳态条件,其中:m_mini,t表示在t时刻满足系统稳态的最少虚拟机数量,λt表示t时刻请求的平均到达率,μi,t表示在t时刻,虚拟机在组件i上的平均服务率,定义可行解集为在m_maxi,t和m_mini,t之间的所有整数。将关键路径看作一个背包,背包的容量是用户给定的约束条件:平均响应时间Rπ。每个可行解看作物品,每个物品具有两个属性:花费和平均响应时间。所有物品分为k组(即k个组件),每组内的物品能且只能选择一个。现在将物品装入背包,使得背包的花费和平均响应时间均最小。

程序2中首先计算每个组件的可行解的数量,然后利用基于动态规划的方法执行分组背包算法。

程序2(基于分组背包优化算法)

自适应启发式算法(Proportional Adaptive Heuristic Algorithm,PAHA)

程序3给出了自适应启发式算法的伪代码。这个算法的思想很简单,就是根据所有组件的服务时间按比例分配虚拟机,服务时间高的组件(即服务慢)被分配越多的虚拟机。算法第一步是计算可行解集。因为然后根据服务时间的比例将Rπ划分到每个组件之上,使得如果某组件分配的目标时间小于组件的最低配置时间,则将此组件分配最低配置时间,然后其它组件重新按比例分配,保证每个组件都可以正常服务。然后根据性能分析模型,计算每个组件在满足需求服务时间的前提下,最小虚拟机数。

程序3(自适应启发式算法)

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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