一种基于IaaS层应用感知的Web多层应用动态资源调整方法

文档序号:6551831阅读:362来源:国知局
一种基于IaaS层应用感知的Web多层应用动态资源调整方法
【专利摘要】本发明属于云计算和网络【技术领域】,具体为一种基于IaaS层应用感知的Web多层应用动态资源调整方法。其步骤包括:IaaS云平台对Web多层应用架构的感知,即在传统的IaaS管理的基础上,增加对应用的管理及信息维护,以感知到Iaas层之上的Web多层应用的状态;在感知基础上进行动态资源需求量化评估,即首先对其进行建模,进而提出Web多层应用的动态资源需求的量化分析方法及算法;基于应用负载感知的资源动态调整,即在Web多层应用负载发生变化时,及时检测到资源需求并量化,然后做出响应,以动态调整资源分配。本发明在不影响应用性能的情况下优化调整虚拟机的资源分配,避免潜在的资源浪费,提高了数据中心整体的资源利用率。
【专利说明】-种基于I aaS层应用感知的Web多层应用动态资源调整方 法

【技术领域】
[0001] 本发明属于云计算和新型网络【技术领域】,具体涉及一种Web多层应用动态资源调 整方法。

【背景技术】
[0002] 近年来,云计算因其动态分配、弹性扩展、资源共享、按需使用按需付费等特点,吸 引了越来越多的关注。云计算的出现不仅改变了当今IT基础设施的架构模式,也改变了云 服务使用者获取IT资源、以及云服务提供者管理和提供软件、技术和解决方案的方式。
[0003] 云计算在为企业和用户带来便利的同时,也对云平台管理者提出了许多挑战。对 于IaaS云而言,云平台的首要任务是要满足用户的资源需求,除此之外,如何从数据中心 的层面更加合理的分配和使用资源、保证应用性能和可扩展性、优化整体的资源利用情况、 并降低运维和管理成本,都是云管理者所面临的挑战,也是亟待解决问题。
[0004] 本发明关注IaaS私有云的运行时资源动态调整技术,在IaaS私有云的云环境下, 云管理者通常具备更高的自主权和对云资源和其上应用的控制权,也即存在更广的优化空 间。为解决资源合理分配的问题,本设计首先量化评估云环境中Web多层应用负载的动态 变化,在此基础上进一步提出了优化的Web多层应用动态资源调整方案,主要的设计侧重 于评估何时需要进行资源调整以及如何调整两方面。
[0005] 基于此,本发明利用业界主流的基准Web多层应用,通过实验验证了所设计的应 用负载感知的的Web多层应用动态资源调整方法的正确性和有效性。
[0006] 经对现有技术的文献检索发现,以亚马逊EC2为代表的、采用虚拟机组、性能监控 与用户配置策略相结合的自动伸缩服务解决方案,在业界具有一定的代表性。一方面,它能 够在某种程度上满足资源随用户需求变化而动态的改变;另一方面,这样的方式降低了云 服务提供商对云资源管理的复杂程度,也具备一定的通用性。然而,其仍存在以下一些不容 忽视的局限性:
[0007] 1.以虚拟机作为资源伸缩的单位。这样固定大小、粗粒度的解决方式,仍将造成资 源的浪费。
[0008] 2.基于用户定义阈值的资源动态伸缩的触发条件不具有智能。用户其实很难自 行、准确的描述资源供给与应用性能表现之间的关系,所以定义恰当的触发条件并不现实。
[0009] 3.应用无感知。当前的研究大多只考虑虚拟机本身的运行情况,而忽略了其中的 应用特性,也忽略了相同应用中虚拟机之间的相互关系。
[0010] 针对以上问题,目前,虚拟资源动态伸缩模型的研究重点在于更加细粒度的资源 调整方式,以及时、快速的响应应用负载的变化情况。另外,其负载自适应能力不仅需要依 靠当前的负载情况,还希望能够预测出未来一段时间的工作负载变化,以更准确的、有前瞻 性的调整虚拟资源大小。
[0011] 近期,一些关注于更精细的动态虚拟资源伸缩模式的学术研究开始涌现,但是,其 出发点及所用方法大多仍相对简单、处于研究初期。文献[Daniel A.Menasc^ e,Mohamed N. Autonomic Virtualized Environments[C]. International Conference on Autonomic and Autonomous Systems, 2006 ;Weiming Zhao,Zhenlin Wang,Yingwei Luo. Dynamic memory balancing for virtual machines[J]. ACM SIGOPS Operating Systems Review,2009.]仅考虑了单一资源的分配方式。其中,前者关注于计算资源的分配,它提 出了一种随虚拟机工作负载变化而根据CPU优先级或CPU份额动态调整计算资源分配 的方法;后者则通过预估每台虚拟机的内存使用量、并据此自动的调整内存分配大小,来 提高内存资源的使用率?文献[Wenyu Zhou,Shoubao Yang,Jun Fang,et al.VMCTune:A Load Balancing Scheme for Virtual Machine Cluster based on Dynamic Resource Allocation[C]. International Conference Grid and Cooperative Computing, 2010 ; Timothy Wood, Prashant Shenoy, Arun Venkataramani, et al.Sandpiper: Bleak-box and gray-box resource management for virtual machines[J]. Computer Networks, 2009.] 则多方面考虑了 CPU、内存和网络带宽三种资源的综合优化分配方式。其中,前者提出了一 种应用无关的负载均衡机制,通过实时监控物理机及虚拟机的各项资源使用情况,及时调 整资源分配;后者则提出了一个自治系统,利用自动资源监测及热点检测,确定物理资源到 虚拟资源的重新分配。
[0012] 近期的研究开始关注面向应用的虚拟资源动态调整方案,旨在通过对应用 性能进行分析,来帮助应用程序所有者做出资源调整的决策。其中,云中的多层应用 (Multi-tier Application)开始成为关注的重点。文献[B.Urgaonkar,P. Shenoy,A. Chandra,Dynamic provisioning of multi-lier Internet Application[C]. Second International Conference on Autonomic Computing,ICAC,2005 ;Urgaonkar,P. Shenoy,A. Chandra, Dynamic provisioning of multi-lier Internet Application ACM Transactions on Autonomous and Adaptive Systems,3, 2008·]提出了针对多层 Web 应 用的动态的容量配置模型,确定为应用的每层分配多少资源,以及通过预测和被动响应相 结合的方式决定何时分配。类似的,文献[W. Iqbal,Μ. N. Dailey,D. Carrera,P. Janecek. Adaptive resource provisioning for read intensive multi-tier applications in the cloud[J]· Future Generation Computer Systems27, 2011·]为两层Web应用提出了基 于被动响应的动态扩展以及基于预测的收缩的资源调整方法。文献[D.A.Bacigalupo, J. van Hemert, X. Chen,et al. Managing dynamic enterprise and urgent workloads on clouds using layered queuing and historical performance models, Simulation Modelling Practice and Theoryl9, 2011.]利用排队论的思想将应用建模为三个层次, 即程序、数据库和数据库磁盘层,然后对每一层分析平均响应时间、吞吐量和服务器资源利 用率用以调整资源分配。文献[R Han,MM Ghanem,L Guo,Y et al· Enabling cost-aware and adaptive elasticity of multi-tier cloud application[J]. Future Generation Computer Systems,June2012.]在进行以虚拟机为粒度的资源动态调整时,还兼顾考虑的 了不同虚拟机的部署成本。但是它们多采用了较简单的队列模型,存在较多的扩展空间。 因此,本发明提出一种基于IaaS层应用感知的Web多层应用动态资源调整方法。


【发明内容】

[0013] 本发明的目的在于提出一种基于IaaS层应用感知的Web多层应用动态资源调整 方法。
[0014] 本发明提出的基于IaaS层应用感知的Web多层应用动态资源调整方法,具体步骤 为:
[0015] 第一步:IaaS云平台对Web多层应用架构的感知
[0016] IaaS云平台所管理的对象是多台虚拟机,其理论上是无法感知用户应用的。为了 更好的为云中的应用提供性能保证,本发明在传统的IaaS管理的基础上,增加对Web多层 应用的管理及信息维护,以便能够感知其上部署的应用及其状态,这也将为后续的动态资 源调整提供支持。
[0017] 在用户向云平台申请资源时,与当前以虚拟机为粒度的部署方式不同,本发明采 用面向应用的构建方式。用户可以申请m个虚拟机集群{Sp S2, ...,Sm},其按序对应Web 多层应用的m个层次。对于每一个集群Sp用户可以选择部署一台或多台虚拟机作为初始 配置;为了简化设计,规定它们使用相同的资源配置和镜像文件。另外,用户还可以为每个 集群配置未来进行资源调整的范围,也即设定最少使用的虚拟机台数以及最多使用的虚拟 机台数,分别标记为mini和11^1 1。其中,当某一集群的mini都设为1时,贝U认为该 应用层次不能通过增加虚拟机来动态扩展。
[0018] 由此,除了获得了传统IaaS云中用户期望的虚拟机资源配置信息外,也同时得到 了用户应用的架构信息。将其应用信息总体标记为App = {Sp S2, ...,Sm},其中|App|体 现了应用的层数,而集合的每个元素 Sjd录了当前的虚拟机配置数量I Si I以及min和max。 云平台根据这些信息部署应用后,可以进一步追踪到每个层次每台虚拟机的放置位置,也 即全面了解到该用户的应用在云中的部署情况。
[0019] 第二步:Web多层应用的动态资源需求量化评估
[0020] (l)Web多层应用模型构建
[0021] 首先,从Web多层应用的用户请求、服务能力、服务方式等几个方面分析Web多层 应用的特征:
[0022] 1.应用的用户请求
[0023] Web多层应用的负载通常被认为是基于会话(Session)机制的用户请求,并且一 个用户会话根据访问形式的不同,可能包括一系列请求。同一时刻,应用可以接受并处理众 多并发用户请求。
[0024] 由于应用的用户请求是随机的,可以认为,两个连续到达的用户请求相隔的时间 间隔相互独立,其到达情况服从泊松分布(Poisson Distribution)
[0025]

【权利要求】
1. 一种基于IaaS层应用感知的Web多层应用动态资源调整方法,其特征在于具体步骤 为: 第一步:IaaS云平台对Web多层应用架构的感知 在传统的IaaS管理的基础上,增加对Web多层应用的管理及信息维护,以便能够感知 其上部署的Web多层应用及其状态; 在用户向云平台申请资源时,与当前以虚拟机为粒度的部署方式不同,采用面向应用 的构建方式;设用户可以申请m个虚拟机集群{&,S2,. . .,SJ,其按序对应Web多层应用的 m个层次;对于每一个集群51,用户可以选择部署一台或多台虚拟机作为初始配置; 另外,设用户可以为每个集群配置未来进行资源调整的范围,即设定最少使用的虚拟 机台数以及最多使用的虚拟机台数,分别标记为mini和maxi ;其中,当某一集群的mini和 maXi都设为1时,则认为该应用层次不能通过增加虚拟机来动态扩展; 由此,除了获得传统IaaS云中用户期望的虚拟机资源配置信息外,同时得到用户应用 的架构信息;将其应用信息总体标记为App = {Sp S2, . . .,Sm},其中|App|体现应用的层 数,而集合的每个元素 Si记录当前的虚拟机配置数量I Si I以及min和max;云平台根据这 些信息部署应用后,可以进一步追踪到每个层次每台虚拟机的放置位置,也即全面了解到 该用户的应用在云中的部署情况; 第二步:Web多层应用的动态资源需求的量化评估 (1) Web多层应用模型构建 首先,从Web多层应用的用户请求、服务能力、服务方式几个方面分析Web多层应用的 特征: (a) 应用的用户请求 Web多层应用的负载通常被认为是基于会话机制的用户请求,并且一个用户会话根据 访问形式的不同,可能包括一系列请求;同一时刻,应用可以接受并处理众多并发用户请 求; 由于应用的用户请求是随机的,设两个连续到达的用户请求相隔的时间间隔相互独 立,其到达情况服从泊松分布:
(1) 其中,λ表示请求到达的平均速度; (b) 应用的服务能力 一个应用程序通常能够对用户提供多种不同的服务;对于不同的服务类型,其响应时 间也即服务时间,依赖于其所调用的应用程序和服务的实时状态;设所有服务类型的服务 时间具有相同的概率分布,此外,它们之间的间隔时间也是相互独立的,服从负指数分布; 对于Web多层应用的每一层而言,其容器是一台虚拟机,或者是由几台虚拟机组成的 集群; (c) 应用的服务方式 应用处理用户请求的顺序采用先来先服务模式; 采用排队论的思想对Web多层应用进行建模;典型的排队系统表示为X/Y/Z/A/B/C的 形式,其中X表示顾客到达间隔时间分布,Y表示服务台服务时间分布,Z表示服务台个数, A表示系统容量限制,B表示顾客源总体数目,C表示服务规则; 结合考虑Web多层应用的特征,对于其每个层次,其用户请求到达时间服从泊松分布, 同一层次的各台虚拟机的响应时间即服务时间服从负指数分布,其虚拟机数量为一台或多 台,整个系统没有容量限制及用户通体数目限制,服务规则为先来先服务;所以,将其每个 层次建模为一个M/M/c/……/ FCFS型排队模型,也即m/m/c型; (2) Web多层应用的资源需求量化评估方法 基于以上Web多层应用的队列模型,进一步提出量化评估应用每一层次的资源需求 的方法,并通过增加新的虚拟机或关闭不必要的虚拟机来满足Web多层应用的最佳资源配 置; 已知一个应用共有|App|个层次,每层的虚拟机数目为|Sj (i = 1,2,…,|App|);对 于应用的每个层次,将其建模为M/M/c型排队模型;首先,逐一考虑用户请求的到达率、应 用的服务速率、应用的分层及总体的响应时间;其中,用户请求的到达率为每秒到达的用户 请求数,应用的服务速率为应用每秒能够处理的用户请求数; 用户请求的到达率 Web多层应用的第一层作为整个服务的入口,负责接收用户请求;应用的总请求到达 率λ可以通过监控获得,其等于应用第一层的用户请求到达率,也即λ = λ1; 设一个用户请求离开应用第i层后直接进入第j层的概率为Ρυ;特殊的,ΡΜ表示用户 请求直接从外部进入i层的概率;所有用户请求都从同一个入口即第一层进入应用,故Pcu =1,Pm = 0(i = 2,3, . . .,|App|);另外,pi(l表示用户请求从i层直接离开应用的概率; 对于应用的第i层,到达的用户请求在完成本层处理后,前往其他层次或离开系统的 概率总和为1 :
(2) 相似的,应用第i层的用户请求可能来自于从其他任意层次离开的请求,且每层的用 户请求离开率等于其到达率,故该层总的请求率λ i为它们的总和,其中七表示第j层的用 户请求离开率:
以上概率通过运行时或离线监控评估取得; 应用的服务速率与服务强度 设定Web多层应用的同一层次的虚拟机采用相同的资源配置,都采用优化的贴近其应 用特征的资源分配;用表示应用第i层每一台虚拟机的服务速率; 对于Web多层应用的第i层整体而言,其平均服务速率为ISjX μ i,其中| Si |为该层 的虚拟机数目,则该层系统的服务强度P i为:
应用每层的响应时间 根据M/M/c型排队模型,应用第i层用户请求的响应时间等于该请求在队列中的等待 时间和平均服务时间的总和:
其中,Wqi表示该请求在队列中的等待时间,计算方式如下式:
PQi表不第i层的系统稳态概率,即:
将(6) (7)带入(5),即可获得Web多层应用第i层的响应时间; 应用的总体端到端响应时间 对于一个有|App|个层次的Web多层应用而言,可以计算出其总体的端到端响应时间 等于各个层次响应时间的总和,这里用r标记:
将应用在SLA中期望的端到端响应时间标识为rsla,为了保证应用的SLA,算法的目标 即是对应用的每一层找到最小的I Si |,使得r彡rsla ; 考虑比较严格的SLA保证方式,将其总体时间按照一定比例划分到每个层次,在具体 计算时,如果某个层次的处理能力不匹配该层次的risla,则对其进行资源调整; (3) Web多层应用的资源需求量化评估算法步骤: 首先,在应用持续运行期间,每隔几分钟监控一次应用的请求到达率,即λ ; 然后,以已知的一系列应用信息,包括当前应用的全局信息Αρρ、各层次的服务速率、请 求跳转概率等作为参数,对Web多层应用的每个层次的资源需求进行量化评估;由此,计算 出为满足SLA中该层应用的响应时间,其所需要的最低虚拟机数量,设为numi ; 最后,把该结果与当前已部署的虚拟机数量I Si |做对比:如果nunii > | Si |,且小于该层 次可部署的最多节点数量maxp则为其新开启ηιιηι「| Si |台虚拟机;如果ηιιηι「| Si |,且高于 该层次的最少部署节点数量mirv则关闭| Si |-numi台虚拟机;否则,对该应用在当前的负 载情况下,已无法做出更优的资源调整; 第三步:应用负载感知的资源动态调整 根据第二步算法,在Web多层应用负载发生变化时,及时检测到资源需求并做出响应, 以动态调整资源分配;如果当前的资源配置不足以满足应用负载,则需要进行动态扩展、开 启新的虚拟机;而当负载下降时,则可以采取动态收缩、关闭不必要的虚拟机,以减少资源 浪费;基于相似性考量,设定对Web多层应用的同一层次的集群中的所有虚拟机采用相同 的资源分配,也即都采用根据其历史负载分析优化后的资源配置; 应用负载感知的资源动态调整算法,在添加或减少虚拟机时,利用负载互补的思想促 进资源共享、避免资源竞争; (1) 资源动态扩展 当对一个Web多层应用的某个层次的集群进行扩展时,也即需要开启新的虚拟机以增 加其服务能力时,该集群中已有的虚拟机在过去一段时间的负载表现能够体现出该应用层 次的特征及趋势,故用于为新的虚拟机的放置选择提供参考; 对于新增加的虚拟机,希望选择一台物理机,尽量使得新来的负载与该物理机上原有 的负载错峰,从而提高潜在的资源共享能力;将互补的或相关性不强的负载放置在一起,通 过填补未使用的资源而平衡整体负载的波动性,并且有效的提高资源利用率; 在统计学中,皮尔逊相关系数用于度量两个变量X和Y之间的相关程度,其值介于-1 到1之间,其计算方式如下式所示:
借助以上公式,评估虚拟机负载时间序列与物理机负载时间序列的相关性,得到的结 果越大,则说明二者相关性越强,应避免放置到一起;反之,则是比较优的候选对象; 根据第二步(3)中算法的需求,即ScaleUpGi,nunii-ISil)函数,假设需要为应用的Si 层开启台新虚拟机,这些虚拟机具有相同的资源配置需求,都采用优化后的虚拟 机模板;对于物理机集群,首先对其根据剩余资源情况进行筛选,获得足够容纳待放置虚 拟机的物理机列表list ;这里,需要考虑多个资源维度,只有全部满足才能放置;由于应用 每个层次之前具有一个请求分派器,使得用户请求按照一定的模式均衡的分配给各台服务 器,所以,应用同一层次的多台虚拟机的历史负载波动情况非常类似;取该层次已有负载在 过去一段时间的平均僅
作为虚拟机的潜在负载;将此负载与list中的各台 物理机的历史负载计算rxy,选择值最小的将虚拟机部署在其上;当需要继续开启新的虚拟 机时,更新该台物理机的可用资源,重新开始下一轮循环; (2) 资源动态收缩 相似的,当需要减少应用某一层次的虚拟机数量时,希望选择关闭其负载与承载它的 物理机负载相关性最强的,从而平缓该物理机的资源消耗; 根据第二步中⑶算法的需求,即ScaleDown^,ISil-nunii)函数,假设需要为应用的 Si层关闭| Si l-nunii台虚拟机;此时,在IaaS云中,对于该层次Si的每台虚拟机vmk,可以获 知承载它的物理机pm k ;通过监控功能分别取得vmk和pmk在过去一段时间的历史负载,利 用公式(8)计算该虚拟机与物理机历史负载的相关性,结果记为r xy ;在选择关闭对象时,根 据rxy对各台虚拟机进行降序排列,选择值最高的、也就是相关性最强的一台关闭;如果这 一轮循环还需要继续关闭虚拟机,则需要对物理机的历史负载进行处理,从中减去已关闭 的虚拟机的负载值。
【文档编号】G06F9/455GK104123189SQ201410309032
【公开日】2014年10月29日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】吕智慧, 王晶, 吴杰 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1