一种基于云计算的互联网应用调度方法

文档序号:7685859阅读:121来源:国知局
专利名称:一种基于云计算的互联网应用调度方法
技术领域
本发明属于计算机应用技术领域,涉及一种云计算资源调度方法,尤其是一种基于云计算的互联网应用调度方法。
背景技术
近年来兴起的云计算模式已经成为工业界和学术界关注的热点问题。传统的计算模式是每个用户维护自己的服务器计算资源、存储资源。而云计算是一个全新的应用模式, 云计算厂商向客户提供在线服务,使计算资源集中化管理,用户按需获取云计算资源。云计算服务质量是当前重要的研究问题之一。在云计算的模式下,云计算厂商如何为用户提供一个稳定的服务环境成为一个迫切需要解决的问题。云计算把计算资源集中化管理,进一步降低了维护服务器所带来的开销。调查显示,越来越多的企业已不再自己维护数据中心,而把自己的应用程序部署在云计算平台上, 由云计算提供商按需分配资源。计算机集群对于资源的合理使用和有效调度都提出了很高的要求,由于各类应用程序对计算资源的需求有很大不同,即使是同一类应用在不同时间的资源需求也会发生很大的变化,这就要求一个快速、高效的策略来对计算集群的CPU、内存、网络等各类资源进行整体的优化。但是在实际上,各节点之间的软硬件资源往往有差异,包括操作系统的类型、版本、补丁、函数库、应用环境等。这使得其上运行的应用程序很难在各节点之间自由的迁移。虚拟技术提供了在物理机之上的一个抽象。它有效地屏蔽掉了底层软硬件的差异而为其上的应用程序提供了一个一致的运行环境,即“虚拟平台”。云计算服务的一个突出优点是资源的灵活性用户可以根据需求随时调整自己使用的资源,而不用像以往那样投入大量的资本进行资源的购置和维护。例如亚马逊的EC2 服务,允许客户根据需求确定租用虚拟机的数目。然而,在这些服务中,具体的资源数目却仍然需要由用户自行确定。如果云服务提供方能够根据用户应用的动态需求动态地为用户调整资源的使用数量,无论对服务提供方和使用方都有很大好处。

发明内容
鉴于现有技术存在的不足,本发明提供了一种云计算环境互联网应用调度方法, 能够根据用户应用的负载变化动态调整应用实例在哪个服务器上的运行。为了实现上述目的,本发明采用的技术方案概述如下一种基于云计算的互联网应用调度方法,包括步骤1)安装于应用服务器前端的调度器监控应用服务器的配置信息,各服务器上应用的需求,以及上一时刻和当前时刻的用户请求数;各应用所有实例的运行信息;2)当监测到应用发生变化,包括应用的负载下降、应用退出系统、应用加入系统、 应用的负载上升,通过装箱算法对应用发生变化的服务器负载进行调整,并通过转发器改动每个应用的各实例间的负载分布,减少在新服务器上开启新的应用实例;3)调度器输出需要关闭的应用实例、需要新启动的应用实例,以及在哪个服务器上启动。所述步骤1)应用服务器是同构应用服务器。所述步骤1)如果应用服务器为异构应用服务器则根据同构关系将相同配置的组成同构应用服务器。所述步骤2)装箱算法为将服务器视为箱子,CPU资源的容量视为箱子的大小;应用视为一类物品,不同应用对应的物品属于不同的类别;每个应用的请求总数对应物品的数目;一个箱子的类别限制c取为物理机内存资源总数除以应用的最大内存资源需求;将物品的类别随意分成若干个集合,并保证除了至多一个集合含有的类别数目小于c外,其他的集合都包含恰好c个类别,分别处理每个单独的集合。所述步骤2、当监测到应用负载发生下降变化,收集负载下降的应用到一个列表, 判断是否能在不启动新应用实例的情况下调整负载,如果可以不启动新应用实例,直接调整各应用在服务器上的负载分配,如果必须启动新应用实例,从原负载未满的服务器上随机挑选一个应用移动一单元的负载填补已下降的负载。所述步骤2、当监测到应用负载发生上升变化,收集负载上升的应用到一个列表, 判断是否能在不启动新应用实例的情况下调整负载,如果可以调整各应用在服务器上的负载分配,如果不可以,将负载分配到原负载未满的服务器上。所述步骤幻将应用的类别随意分成若干个集合,并保证除了至多一个集合含有的应用类别数目小于c外,其他的集合都包含恰好c个应用类别,当监测到有加入的新应用,判断加入的新应用是否足以填补这些集合,足以填补,将余下的新应用使用贪心法形成新的集合,且满足最多一个集合含有的应用类别数目小于C的性质。与现有技术相比,本发明的方法具有的技术效果有根据用户应用的动态需求动态地为用户调整资源的使用数量,尽量避免启动新的应用实例,代价小,在高负载时能够保持较高请求满足率,而在低负载时能够进行绿色计算,节省能源。


图1为本发明负载上升算法流程图;图2为本发明负载下降算法流程图。图3为本发明方法处理负载上升的流程图;图4为本发明方法处理负载下降的流程图;图5为本发明方法处理新加入应用的流程图;图6为本发明方法的流程图;图7a为近似比R和c变量之间的关系;图7b为近似比R和ν变量之间的关系。
具体实施例方式以下结合附图和具体实施例对本发明的方法做详细的描述。
1)对云环境下服务器应用的调度问题进行建模传统装箱问题(bin-packing)是一个得到广泛研究的NP难问题,它要求将一系列大小在(0,1]范围内的物品装入最少个数的大小为1的箱子中。这个问题有各种变型,如在线的装箱问题,要求在不知道即将到来的物品序列的情况下进行最小箱子数目装箱;半在线(semi-online)的装箱问题,在在线的基础上,允许每次新物品到来时,调整原有物品的位置;多维装箱问题,物品和箱子的大小扩展为一个多维的向量;还有允许物品中途离开的装箱问题等等。装箱问题的另一个变种是Class Constrained Bin Packing (CCBP),在这个问题中,箱子有固定的大小v,物品大小都是单位1,每个物品会有属于一个class,而一个箱子只能放入至多c种class的物品,问题的目标是将一系列物品放入最少数目的箱子中。这个问题和本发明方法考虑的互联网应用调度问题很相近,如果本发明方法假设所有服务机是同构的,而且只考虑应用的内存和CPU两维度的负载,可以将其抽象为一个CCBP问题变种。对于本发明来说具体的建模过程是将服务器抽象成箱子,CPU资源的capacity为箱子的大小;应用视为一类物品,不同应用对应的物品属于不同的类别;每个应用的请求总数换算为CPU资源需求后看做该应用对应物品的数目;一个箱子的类别限制c取为物理机内存资源总数除以应用的最大内存资源需求。这样,当每次调度器被调用时,应用请求数目的增大或减少,可以看做对应该类物品的到达和离去。所以,只要设计一个能够处理物品新增和离去的CCBP的算法,就可以运用到调度器中,并同时满足最大化应用请求服务率和绿色计算的需求。本发明将物品的类别随意分成若干个集合,并保证除了至多一个集合含有的类别数目小于c外,其他的集合都包含恰好c个类别。之后的物品装箱过程中,都分别考虑每个单独的集合,即各集合间互不影响。由于单个集合中类别数目不超过C,所以可以用一个简单的贪心算法进行装箱将一个箱子装满后再开启另外一个箱子。算法主要要考虑的是新增物品或物品离去的情况。一个关键的问题是在不同的箱子中放入一个物品对应到实际环境中,有两种情况一是在一个新的服务器中开启一个新的应用实例;二是如果这个服务器中已经运行着该应用的实例,那只要简单的将转发器中负载的配比调高即可。这两种情况中,前者的代价很大,而后者相比之下则非常小,所以本发明方法要设法在每次装箱的过程中,尽量通过调整负载分配的方法减少第一种情况的出现。如图1所示,是当某应用负载上升时算法处理过程的示意图。云环境的互联网系统有三个服务器,三个应用(对应三种不同类别的物品),当类别Cl代表的应用负载上升时,可以抽象为有一个新的Cl类别的物品到达要求进行装箱。如果用简单的贪心算法的话,这个物品将被放置到最后一个没有满的箱子里。这样对应到实际情况就是在这个没有满的服务器上启动一个该应用的实例,代价比较大。但仔细观察,如果通过图中所示的步骤来调整物品在1^2集合中移动一个c2类别的物品到unfilled集合中,在bl集合中移动一个c3类别的物品到1^2集合中,最后将新到达的cl类别物品放在bl集合中,那么对应到实际情况中就不会有新启动应用实例的操作,所有调整都只需由转发器改动一下每个应用的各实例间的负载分布即可。
对于负载下降的情况,处理方法是类似的(如图2)。Cl代表的应用负载下降对应了该类别一个物品的离开。为了维持只有一个未满箱子的状态,在集合中移动c3类别物品到bl集合中,在unfilled集合中移动c2类别物品到M集合中,通过图2所示的调整, 系统再次达到只有一个未满箱子的状态,并且没有启动新应用实例。算法分析CCBP算法A的优劣程度可以用近似比来衡量,近似比的定义如下
权利要求
1.一种基于云计算的互联网应用调度方法,包括步骤1)安装于应用服务器前端的调度器监控应用服务器的配置信息,各服务器上应用的需求,以及上一时刻和当前时刻的用户请求数;各应用所有实例的运行信息;2)当监测到应用发生变化,包括应用的负载下降、应用退出系统、应用加入系统、应用的负载上升,通过装箱算法对应用发生变化的服务器负载进行调整,并通过转发器改动每个应用的各实例间的负载分布,减少在新服务器上开启新的应用实例;3)调度器输出需要关闭的应用实例、需要新启动的应用实例,以及在哪个服务器上启动。
2.如权利要求1所述的方法,其特征在于,所述步骤1)应用服务器是同构应用服务器。
3.如权利要求1所述的方法,其特征在于,所述步骤1)如果应用服务器为异构应用服务器则根据同构关系将相同配置的组成同构应用服务器。
4.如权利要求1所述的方法,其特征在于,所述步骤2)装箱算法为将服务器视为箱子,CPU资源的容量视为箱子的大小;应用视为一类物品,不同应用对应的物品属于不同的类别;每个应用的请求总数对应物品的数目;一个箱子的类别限制c取为物理机内存资源总数除以应用的最大内存资源需求;将物品的类别随意分成若干个集合,并保证除了至多一个集合含有的类别数目小于c 外,其他的集合都包含恰好c个类别,分别处理每个单独的集合。
5.如权利要求1所述的方法,其特征在于,所述步骤2)当监测到应用负载发生下降变化,收集负载下降的应用到一个列表,判断是否能在不启动新应用实例的情况下调整负载,如果可以不启动新应用实例,直接调整各应用在服务器上的负载分配,如果必须启动新应用实例,从原负载未满的服务器上随机挑选一个应用移动一单元的负载填补已下降的负载。
6.如权利要求1所述的方法,其特征在于,所述步骤2)当监测到应用负载发生上升变化,收集负载上升的应用到一个列表,判断是否能在不启动新应用实例的情 况下调整负载, 如果可以调整各应用在服务器上的负载分配,如果不可以,将负载分配到原负载未满的服务器上。
7.如权利要求1所述的方法,其特征在于,所述步骤幻将应用的类别随意分成若干个集合,并保证除了至多一个集合含有的应用类别数目小于c外,其他的集合都包含恰好c 个应用类别,当监测到有加入的新应用,判断加入的新应用是否足以填补这些集合,足以填补,将余下的新应用使用贪心法形成新的集合,且满足最多一个集合含有的应用类别数目小于C的性质。
全文摘要
本发明提供了一种基于云计算的互联网应用调度方法,包括步骤1)安装于应用服务器前端的调度器监控应用服务器的配置信息,各服务器上应用的需求,以及上一时刻和当前时刻的用户请求数;各应用所有实例的运行信息;2)当监测到应用发生变化,包括应用的负载下降、应用退出系统、应用加入系统、应用的负载上升,通过装箱算法对应用发生变化的服务器负载进行调整,并通过转发器改动每个应用的各实例间的负载分布,减少在新服务器上开启新的应用实例;3)调度器输出需要关闭的应用实例、需要新启动的应用实例,以及在哪个服务器上启动。本发明的方法根据用户应用的动态需求动态地为用户调整资源的使用数量,尽量避免启动新的应用实例,代价小。
文档编号H04L12/56GK102195890SQ20111014970
公开日2011年9月21日 申请日期2011年6月3日 优先权日2011年6月3日
发明者罗海鹏, 肖臻, 陈琪 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1