法律状态公告日
法律状态信息
法律状态
2016-06-29
授权
授权
2013-05-29
实质审查的生效 IPC(主分类):G06F9/50 申请日:20121227
实质审查的生效
2013-04-24
公开
公开
技术领域
本发明涉及一种面向多层Web应用的资源优化方法,特别是涉及一种基于SLA的 面向多层Web应用的资源优化方法。
背景技术
随着Web应用在各领域的不断发展,用于支持Web应用的基础设施资源需求越来 越大。对于基础设施提供商本身而言,需要综合考虑用以支持Web应用底层资源的成本 如,电力成本、带宽代价、存储代价等。因此,对于提供支持Web应用的基础设施提供 商而言,需要和Web应用的多个用户签订合适的服务等级协议(SLA),并以此作为约束。 一方面,保证用户接收到的Web应用的服务质量,如响应时间要求、带宽要求、吞吐量 和可用率等;另一方面,支持Web应用的基础设施提供商需要以此为依据,优化管理虚 拟资源在满足其自身效应最大化的同时满足Web用户的性能需求。
目前典型的Web应用软件均采用多层架构模式,如常见的三层架构,包括Web层(提 供显示界面)、应用层(提供业务逻辑)和数据库层(存储管理数据)。其中每一层均向其相 邻的上一层提供服务,并使用其下一层提供的功能,最后将Web应用的结果返回给用户 显示在Web页面上,以此来完成整个Web应用软件的访问过程。
在构造多层Web应用的过程中,每个用户对Web应用的性能要求各不相同,支持 多层Web应用的基础设施提供商需要与Web应用用户签订SLA协议。然而,SLA保障 的一个主要问题就是,在实际的多层Web应用服务环境中,由于Web应用的用户请求 到达率随时间而不断变化,很难对资源需求进行提前估计,而为最坏情况进行资源计划 既不可行又效率低下。
发明内容
针对以上现有技术的不足,本发明提供一种基于SLA的面向多层Web应用的资源 优化方法,以解决支持多层Web应用的基础设施资源提供商的资源优化问题。
根据本发明的一个方面,提供了混合排队网络模型,包括:为了使支持Web应用的 虚拟资源能够按照用户的应用需求进行动态地配给,基于排队理论为Web应用服务建立 性能模型,并描述具体的方法和过程;为了给Web应用基础设施提供商带来效应,建立 一个非线性的效应函数。
根据本发明的另一方面,提供了基于SLA的多层Web应用的资源优化方法,包括, 多层应用各层虚拟资源的优化配置方法,根据给定的负载、用户对应用的响应时间需求 和基础设施提供商的实际处理能力,对模型进行优化求解,并得到当前虚拟资源配置的 初始最优解;以及给出基于SLA的虚拟资源动态分配策略,根据虚拟资源配置最优初始 解,进一步采用混合禁忌搜索优化算法,确保基础设施提供商的全局效应最大化。
根据本发明的上述方面,针对目前典型的Web应用软件多层架构模式的特点,基于 给定的SLA约束基础上,使得Web应用基础设施提供商的效应润最大化。需要说明的 是本发明仅以一个典型Web应用为例来进行说明,同样可以应用到其它的Web应用中。
本发明的目的通过以下技术方案来实现:
一种基于SLA的面向多层Web应用的资源优化方法,该方法包括如下步骤:
1)根据虚拟资源和用户应用的需求建立面向多层Web应用的混合队列模型,获取 Web应用服务执行环境中各个层的行为;
2)对所述Web应用服务执行环境中各个层的行为建立全局效应函数,得到产生最 优资源优化配置的参数关系;
3)根据多层Web应用的混合队列模型和效应函数关系,建立基于SLA的多层Web 应用虚拟资源优化模型,得到当前虚拟资源配置的初始最优解;
4)在2)和3)的基础上,为了解决基础设施提供商的效应最大化问题,给出一种 基于SLA的资源优化分配算法,获取Web应用服务执行环境(VASE)i的最优资源配置。
进一步,所述Web应用服务执行环境中各层的行为包括基础设施提供商对用户请求 的响应时间。
进一步,所述多层Web应用的混合队列模型包括M/M/c系统模型和M/G/1的性能 解析模型。
进一步,所述M/M/c系统模型为由按需分配器(ODD)(j=0)构建成,即:
其中,
viii)Ri,k,0为在VASE i的情况下ODD(j=0)的端到端的平均响应时间;
ix)ρi,k,0=λi,k,0/a(ci0)<1为在VASE i的情况下ODD中VMs调度器的利用率;
x)λi,k,0表示VASE i的情况下ODD中请求类k的总请求到达率;
xi)
xii)p0为在VASE i的情况下ODD的VMs调度器处于空闲状态的概率;
xiii)ps为在VASE i的情况下ODD的VMs调度器中存在s个请求的概率;
xiv)ci,0为在VASE i的情况下ODD的VMs数量。
进一步,M/G/1的性能解析模型由多层Web应用服务执行环境的每一层建立多个 M/G/1的性能解析模型,即
其中,
vii)Ri,k,j,w为在VASE i的情况下请求类k在第j层的VMs w的端到端的平均响应时 间;
viii)μi,k,j,w为在VASE i的情况下请求类k在第j层的VMs w的利用率;
ix)λi,k,j,w为在VASE i的情况下请求类k在第j层的VMs w的请求到达率;
x)pi,k,j-1表示请求类k完成第j-1层请求并返回到VASE i的初始位置重新处理的请 求的概率;
xi)表示VASE i中请求类k完成第j-1层请求并以特定的概率到达j层;
xii)ci,j为在VASE i的情况下在第j层的VMs数量。
进一步,所述全局效应函数为:
其中,
viii)Λi,k是VASE i中请求类k的总到达率;
ix)Ri,k是VASE i中请求类k的端到端响应时间记为下式:
x)-mi,k表明效用函数ui,k的斜率;
xi)这里的x相当于Ri,k,bestVal为0,worstVal为
xii)对于请求类k用xi,k表示导致惩罚的被拒绝的请求数量;
xiii)-VASE i中请求类k在层j中活动的VM w的单位费用;
xiv)-VASE i中请求类k在层j中备用的VM w的单位费用。
进一步,所述Web应用虚拟资源优化模型为:
min{Cg,i=f(ci,0,ci,1,ci,2,...,ci,M)}
其中,
iii)Ri,k,j为在VASE i的情况下第j层的端到端的平均响应时间;
iv)为在VASE i中请求类k期望的SLA目标响应时间。
进一步,所述获取Web应用服务执行环境的最优资源配置具体方法为:设定禁忌搜 索的最外层循环次数,在里面的每一次循环中,设计一个内部循环,首先计算当前配置 的梯度,确定步长,从而生成新的配置方案,依次循环直到生成一个固定的解配置方案, 至此结束该内部循环,接着比较内部循环生成的固定解与当前解的效应差值,如果固定 解产生的效应值较高,则接受该解为新的当前解,并记为当前最优解;否者,如果该固 定解不在禁忌表中,则接受该解为新的当前解,但不记为当前最优解。以此循环,直到 达到最外层循环次数,即得到当前最优解。
本发明的优点在于:
1.该方法能够帮助基础设施提供商优化管理虚拟资源,在满足Web应用不同用户 的性能要求的同时,确保Web应用基础设施提供商的全局效应最大化。
2.在实际的多层Web应用服务环境中,能够随着Web应用用户需求的变化进行动 态地为多个多层Web应用分配虚拟资源,从而在保证SLA性能要求的同时,提高基础 设施的整体资源利用率。
附图说明
图1一种基于SLA的面向多层Web应用的资源优化方法组成示意图;
图2多层Web应用服务资源动态配给模型图;
图3一般的效应函数图。
具体实施方式
下面将参照附图来描述根据本发明实施例的基于SLA的面向多层应用的资源优化 方法的具体步骤。
第一步提出了一种面向多层Web应用的混合队列模型
为了使虚拟资源能够按照用户的应用需求进行动态地配给,图2给出了基于混合排 队网络的虚拟机动态配给模型示意图。这里主要针对在线型应用服务,因此将响应时间 作为主要的性能指标来衡量基础设施提供商的服务质量,并采用请求到达率来表示负载 密度。
在云环境下,大量的应用用户请求访问基础设施服务中的资源,在请求离开系统之 前将会经历多个步骤,要么在某一层处于排队等待的状态,要么正在某一层接受处理。 此外,一部分用户可能会访问完某一层服务资源后就会离开系统(例如,用户访问某在线 商店的Web页面后就离开),或者访问完某一层服务资源后又返回到系统初始状态重新 访问(例如,用户访问某在线商店网站正要进行付款时发现还需要购买一件商品,于是用 户又返回到该网站的Web初始页面进行商品选购活动)。因此,本发明采用混合(开环和 闭环)排队网络来为系统建立性能解析模型,该模型能够捕捉Web应用服务环境中各个 层的行为,例如HTTP、J2EE和数据库层。队列采用FCFS(First Come First Served,先 来先服务)的服务原则,即用户请求按照其到达的顺序被处理。用户以请求类k的方式到 达并访问Web应用服务执行环境(VASE)i中的服务,其请求速率为λi,k。根据实际的网 络商业站点的轨迹分析已经表明网络工作负载符合一个泊松分布,因此假设外在的请求 到达流是泊松到达过程,到达的时间间隔符合指数分布。Λi,k表示VASE i中请求类k 的总请求到达率,使得Λi,k=λi,k,0。其中,pi,k,j表示请求类k完成第j层请求并返回到VASE i的初始位置重新处理的请求的概率;表示VASE i中请求类k完成第j层请求并以 特定的概率到达j+1层,同时VASE i中第j层也可能会有概率的用户完成请求 类k的处理并返回;λi,k表示在VASE i中请求类k的正在到达的请求率。
具体地,首先由图2可知下式(1)
λi,k,0=λi,k+λi,k,1pi,k,1+λi,k,2pi,k,2+…+λi,k,Mpi,k,M (1)
令Mi,k=M且j=0,则有
然后,可以计算得到下式(2)
在这里,为按需分配器(ODD)(j=0)建模成一个M/M/c系统模型,即第一个M描述 了用户泊松到达的过程,到达的时间间隔服从负指数分布;第二个M描述了服务时间, 具有负指数分布的服务时间,负指数分布具有马尔可夫特性;ODD中共有c个VMs调 度器,各个VMs调度器的时间具有不同服务率的负指数分布,且在ODD中的用户请求 数没有限制。基于原始的排队系统为基础,假设存在多个空闲可用的VMs调度器的情 况下,ODD总是将请求分配给处理最快的VMs调度器,并确保ODD的有效利用率在 60%~80%。为了建立近似模型,首先按照服务速率将各个异构VMs调度器按照从大到 小的顺序进行排序,记为根据马尔可夫状态生灭关系平衡方程, 可以得到在VASE i的情况下ODD的VMs调度器中存在s个请求的概率为下式(3):
其中,
于是,根据Little’s定律,可以计算出在VASE i的情况下ODD的端到端的平均响 应时间为下式(5):
其中,j=0,ρi,k,0=λi,k,0a(ci0)<1为在VASE i的情况下ODD中VMs调度器的利 用率。
接下来,为多层Web应用服务执行环境的每一层建立多个M/G/1的性能解析模型, 即第一个M描述了用户按泊松流到达,相邻到达的时间间隔序列独立,同负指数分布; 第二个G描述了用户所需的服务时间序列独立,具有的服务时间服从一般分布,一般分 布需要用嵌入马尔可夫链的方法来解决;在多层VASE i中需要将进入的请求流按照一 定的原则划分成多份分别发送到某层不同的虚拟机上处理,本发明采用的原则是保证无 论将下一个请求分配到该层的哪个虚拟机上,在该层所期望达到的平均响应时间都相 等。假设被调度的用户请求以λi,k,j,w(1≤w≤ci,j)的速率到达虚拟机w,于是可以计算得到 下式(6):
从(6)中可以很容易的计算出VASE i中各个层的平均响应时间的值,其中1≤j≤M 且
第二步建立一个非线性的全局效应函数
每个VASE i具有其局部的效应函数定义,这里记为下式(7):
Pi=f(λi,ci,0,ci,1,...,ci,M,SLAi) (7)
全局效应值Pg是每个VASE的局部效应值的函数,因此整个优化问题可以形式化为 问题(P1),如下式(8):
max{Pg=g(P1,P2,...,PN)} (8)
下面给出本发明中使用的具体效应函数。这里,针对于Web应用服务环境中包含多 种在线业务类型的多层Web应用服务进行分析,VASE i中请求类k在层j中的请求到 达率用λi,k,j来表示,将响应时间Ri,k作为性能指标。假设在系统运行前基础设施服务提 供商和用户之间已经达成协议并签订了SLA契约,其中在SLA契约中指定的各项性能 需求和收费模型定义如下:
1)-VASE i中请求类k期望的SLA目标响应时间。如果在目标响应时间内服务 完一个请求则为基础设施服务提供商贡献正向收益,即如果则SLAi为收益型; 否则,超过目标响应时间完成则会给基础设施服务提供商带来惩罚,即如果 则SLAi为惩罚型。
2)Ci-在整个基础设施服务中VASE i的最大VM数量。如果那么拒 绝一个用户请求将导致di,k的惩罚;如果那么基础设施服务提供商只需负 责提供Ci个VMs即可。也就是说,当实际的VM数量超过协定的上限值时,拒绝的用 户请求将不计入惩罚之内。这使得用户必须仔细的估测应用服务的实际需求,并在应用 服务部署之前进行适当的开销规划。
3)-VASE i中请求类k在层j中活动的VM w的单位费用。
4)-VASE i中请求类k在层j中备用的VM w的单位费用。
本发明的目标是最大化基础设施服务提供商的效应值,使得来自SLA契约中的收益 和惩罚,与VMs开销在调度器交互期间的差值最大,其效应函数可以表示为下式(9):
Pg(E)=Revenue+(E)-Cost(E) (9)
其中,
1)基础设施服务的正向收益函数可表示为下式(10):
说明,如之前在SLA契约中所签定的,被服务的请求在不大于时间内完成时, 基础设施提供商贡献正向收益;否则其将受到惩罚。如果那么拒绝一个用 户请求将导致di,k的惩罚。
2)基础设施服务的收费模型可表示为下式(11):
说明,VASE i中每一层由ni,j个完全相同的虚拟资源构成一个集群。为了处理即将 到达的请求负载,ci,j个虚拟资源是负载均衡的活动状态;为了处理请求负载增加的情况, ni,j-ci,j个虚拟资源是空闲的在备用的状态中,并随时启动虚拟资源来满足请求负载增加 的需求,从而确保基础设施服务的可用性。
每个VASE i的局部效应函数由收入、惩罚和损失以及虚拟资源的总开销决定。于 是本发明中考虑的全局效应函数可计算为下式(12):
其中,
1)Λi,k是VASE i中请求类k的总到达率。
2)Ri,k是VASE i中请求类k的端到端响应时间记为下式(13):
3)-mi,k表明效用函数ui,k的斜率。
4)这里的x相当于Ri,k,bestVal为0,worstVal为 如图3所示。
5)对于请求类k用xi,k表示导致惩罚的被拒绝的请求数量。
第三步建立基于SLA的多层Web应用虚拟资源优化的模型
在第一步给出的面向多层应用混合队列模型的基础上,建立多层Web应用系统的资 源优化模型。为了能够随着负载变化的过程动态的为多个VASE分配虚拟资源,面临的 首要问题就是在基础设施服务中找到一个高质量的虚拟机初始配置(ConfigMA T0)。活动 的VMs数量是问题的主要变量,因为它们影响性能和费用函数(Cost function)。另一方 面,λi,k,j,w和μi,k,j,w只影响性能并且被认为是微调变量,而在高级的层面,基础设施服务 的性能主要依赖于被采用的VMs的数量。因此,为了找到一个合适的虚拟机初始配置, 来满足基础设施服务提供商和用户签订的SLA契约的同时保证虚拟资源的利用最少,本 发明采用给定的负载、响应时间和特定的虚拟机容量作为输入参数,然后对模型进行优 化求解,并得到当前虚拟资源配置的初始解ConfigMA T0。
假设VASE i中同一层的VMs是同构的,不同层的VMs是异构的,则VASE i的第 j层中存在ci,j个活动的VMs,其性能解析函数为下式(14):
每个VASE i的全局活动的VMs数量为Cg,i,因此优化问题可以形式化为问题(P2),如下式(15):
min{Cg,i=f(ci,0,ci,1,ci,2,...,ci,M)} (15)
同样,给定每个VASE的请求到达率、服务率和端到端的响应时间,可以得到基础 设施服务中整个VASE的虚拟资源配置即得到当前虚拟资源配置的初始 解ConfigMA T0。在问题(P1)中,目标是决定在各个层中分配多少的VMs来满足VASE i 中即将到达的请求在给定的响应时间范围内。该模型输出的是VASE i中最少的VMs 数量,标记为Cg,i。约束式(16)限制了每层响应时间的总和不能够超过有限的响应时间 是在基础设施服务提供商和用户签订的SLA契约中给定的。约束式(17)限制了 同一层上的请求到达率不能超过或等于该层的可用虚拟资源容量的总和。
第四步给出基于SLA的虚拟资源动态分配策略
在第二、三步的基础上,为了解决基础设施提供商的效应最大化问题,给出一种基 于SLA的资源优化分配算法,得到最优的资源配置方案。该算法结合禁忌搜索和梯度下 降法,产生具有最大效应值的当前资源配置,进而确保基础设施提供商的全局效应最大 化。
根据输入信息包括初始配置方案,禁忌表和SLA中指定的目标效应值,输出具有最 高效应值的资源配置方案。设定禁忌搜索的最外层循环次数,在里面的每一次循环中, 设计一个内部循环,首先计算当前配置的梯度,确定步长,从而生成新的配置方案,依 次循环知道生成一个固定的解配置方案,至此结束该内部循环,接着比较内部循环生成 的固定解与当前解的效应差值,如果固定解产生的效应值较高,则接受该解为新的当前 解,并记为当前最优解,否者,如果该固定解不在禁忌表中,则接受该解为新的当前解, 但不记为当前最优解。以此循环,直到达到最外层循环次数,即可得到当前最优解。
本发明对上面提出的基于SLA的面向多层Web应用的资源优化方法的效率进行性 能评估。实验结果表明,在细粒度的虚拟资源分配下,本发明所提出的方法能够在尽可 能减少允许开销的情况下保障多个Web应用服务的等级,从而使得基础设施提供商的效 应最大化。
以RUBiS在线拍卖应用为例来进行说明。RUBiS是由美国Rice大学实现的一个基 于EJB的在线拍卖网站,类似于eBay。网站的部署基于典型的三层服务模式:前端运 行Apache Web server2.0.64(Web层),中间层运行Tomcat5.5J2EE应用服务器(App层), 后端运行MySQL5.0.41数据库服务器(DB层),且在所有的服务器里运行内嵌的VMs。 因此,一个RUBiS实例由3个VMs构成。所有的VMs共享处理器并且依赖于工作负载, 根据工作负载的变化其对CPU、内存、硬盘和网络资源都有不同的需求(比如,如果CPU 的利用率超过一个特定的阈值(>85%),则它触发一个VM迁移来保持SLAs的需求)。本 发明使用的终端用户请求轨迹来产生工作负载给VMs:请求轨迹从1998年世界杯网站 公开的Web负载记录(来源于6月29日第20天的纪录)生成给RUBiS应用服务。表1 和表2给出了各种不同的参数值来刻画RUBiS应用服务。
表1参数设置给RUBiS
表2SLA参数设置给RUBiS
表1和2中呈现了变化的参数值,并通过多层模型来使用给多层Web应用服务。因 此这些参数值基于在线的测量Web和App层每15分钟被更新一次,或者基于离线测量 DB层在超过15分钟周期上来记录每一个参数值。本发明给出了Web应用服务的SLA 协议指标,包括目标响应时间、最大吞吐率、可用性、单位收益和惩罚等。上述参数在 实验中都保持不变。假设Web应用服务需要签定一个SLA声明与用户,其中用户具有 三种不同级别,即Level1、Level2和Level3,且这三种用户级别98%的响应时间(即 98%的请求都在这个时间内得到响应)分别不超过0.2秒、0.4秒和0.5秒。每层的平均响 应时间目标分别设置为总目标响应时间的10%、50%和40%(比如,在Level1中Web层、 App层和DB层的平均响应时间分别为20msec、100msec和80msec)。这里假设用户将 收费模型建立在服务质量需求的基础上,例如,在上述RUBiS应用服务的参数设定里, Level1对响应时间的约束最紧,同时也是付费最多和惩罚最多的。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而 非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记 载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
机译: 基于Web应用程序层次结构多层评估的合格Web应用程序安全性
机译: 一种基于多元资源度量的时差调整方法,一种基于多元资源度量和存储介质值调整时差的装置,一种基于多元度量值存储时差的程序
机译: 在本地安装资源和基于云的资源之间动态选择的Web应用程序系统和方法