CN104834569B - 一种基于应用类型的集群资源调度方法及*** - Google Patents
一种基于应用类型的集群资源调度方法及*** Download PDFInfo
- Publication number
- CN104834569B CN104834569B CN201510235884.3A CN201510235884A CN104834569B CN 104834569 B CN104834569 B CN 104834569B CN 201510235884 A CN201510235884 A CN 201510235884A CN 104834569 B CN104834569 B CN 104834569B
- Authority
- CN
- China
- Prior art keywords
- resource
- server
- application
- current
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开一种基于应用类型的集群资源调度方法及***,方法包括:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联;获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,消耗资源值为多维向量值,每一维度与一种资源相关联,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器部署当前应用。本发明进行资源分配时按照应用的资源耗费类型进行策略调整,避免相同资源耗费型的应用被分配到同一台服务器上形成资源碎片。
Description
技术领域
本发明涉及集群资源调度相关技术领域,特别是一种基于应用类型的集群资源调度方法及***。
背景技术
随着虚拟化技术的发展,越来越多的公司将自己的线上应用迁移到云平台上。近年来基于linux内核的虚拟化技术(namespace及cgroups等)的轻量级虚拟化容器(如docker等)发展迅速,受到了越来越多的重视。容器通过操作***层的虚拟化实现资源隔离,不需要类似虚拟机(VM)额外的操作***开销,在资源利用率上有着比虚拟机更大的优势。因此,通过容器虚拟化线上应用是未来云技术的一个重要发展方向,而通过容器有效管理服务器集群的资源是基于容器的云平台投入实际工程运用所需解决的一个重大技术问题。
目前的资源分配方法主要针对的是单维度计算机资源,将集群中的计算机资源平均分割成等分的槽位(slot),应用程序在申请资源时是以slot为单位的,资源分配***不能分配细粒度小于slot的资源。即使在分配有多维度的***资源时,这种分配策略仍然将不同属性的资源分成各种类型的slot进行分配,比如假设一台服务器有16核CPU,32G内存,一种分配方式是一个CPU slot是1核cpu,一个内存slot是1GB内存。应用程序在申请资源时必须以cpu slot和内存slot为基本单位申请。
为了论述现有技术方案的运行原理,假设服务器配置为16核CPU,32G内存。应用A需要3核CPU,12GB内存,应用B需要6核CPU和2GB内存。
用向量表示这两种应用所需消耗的资源,A<3CPU,12Mem>,B<6CPU,2Mem>,一台物理机拥有的资源slot为<16CPU,32Mem>。
目前常用的资源分配方案是寻找一台服务器,如果该服务器剩余的各个类型的资源slot满足当前应用需求,那么这台服务器为可部署该应用的服务器。一般来说在一个服务器集群里有多台服务器满足一个即将上线应用的资源需求,因此将有多台服务器作为该应用部署的候选服务器。应用最终部署到哪一台候选服务器又有不同的调度策略,常见的策略主要有:first-fit(首度匹配),ramdom-fit(随机匹配)。简单的说first-fit是应用直接部署在第一台满足应用资源需求的服务器上;ramdom-fit是应用随机分配到多台候选服务器中的一台。假设应用部署的顺序是A->A->B->A->B,那么按照first-fit的部署策略,服务器1将部署2个应用A,0个应用B,消耗的资源为<6CPU,24Mem>,服务器2将部署1个应用A和2个应用B,消耗资源为<15CPU,16Mem>。服务器1利用率为<37%CPU,75%Mem>,服务器2利用率为<93%CPU,50%Mem>。由于服务器1和服务器2剩余的资源无法再部署应用A和应用B,因此这两台服务器剩余的资源将无法继续被利用。如果采用radom-fit的策略,假设集群足够大,那么理想情况下每一台服务器的应用A和应用B的总数趋近于相同。
由于按照slot分配资源的分配策略是将CPU、内存等资源类型独立看待的,因此这种分配策略并不会根据实际应用的资源需求进行调整。而实际应用的类型对***各项资源的需求程度不一样,一些应用更加偏向于计算,对CPU的需求量比内存需求量更高;反之,一些应用对内存的需求量更高。除了CPU和内存,一项应用对***资源的消耗偏好又可能包括网络IO,磁盘IO和磁盘容量等。因此,在进行有多维度的***资源分配时,现有的根据资源slot进行资源分配的方式会导致服务器各项资源的碎片化:比如当多个同属于CPU消耗型的应用部署在同一台服务器时,该服务器剩余的CPU资源变小,形成碎片化。虽然该服务器可能存在大量空闲内存未被分配使用,但由于CPU资源剩余量过小,不能部署新的应用,导致服务器资源浪费。这种资源浪费在进行更多维度的资源分配时将会更加严重。
发明内容
基于此,有必要针对现有技术的集群资源分配方案容易造成物理机资源碎片化,碎片化的资源难以被应用有效利用,造成不必要的资源浪费的技术问题,提供一种基于应用类型的集群资源调度方法及***。
一种基于应用类型的集群资源调度方法,包括:
服务器组划分步骤,包括:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
应用资源值获取步骤,包括:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
应用部署步骤,包括:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
一种基于应用类型的集群资源调度***,包括:
服务器组划分模块,用于:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
应用资源值获取模块,用于:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
应用部署模块,用于:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
本发明对现有的集群资源分配方案进行改进,对部署应用队列进行资源分析,根据应用申请的资源偏好将应用划分为不同类型的资源耗费型应用,使得进行资源分配时能按照应用的资源耗费类型进行策略调整,避免相同资源耗费型的应用被分配到同一台服务器上形成资源碎片。
附图说明
图1为本发明一种基于应用类型的集群资源调度方法的工作流程图;
图2为本发明最佳实施例的结构示意图;
图3为本发明最佳实施例的工作流程图;
图4为本发明一种基于应用类型的集群资源调度***的结构模块图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1所示为本发明一种基于应用类型的集群资源调度方法的工作流程图,包括:
步骤S101,包括:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
步骤S102,包括:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
步骤S103,包括:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
步骤S101和步骤S102的位置可以相互交换而不会影响本发明的实现。步骤S102中的应用资源值和步骤S103中服务器的消耗资源值具有相同的维度数量,且每个维度所关联的资源相同。资源占用百分比指的是该被占用资源与该资源总量的百分比。在此引用一个概率:X型应用,X指代一种资源类型。作为一个例子,将一个应用申请的***资源分为5个维度<CPU,内存(下述用Mem表示),网络带宽,磁盘IO带宽,磁盘大小>。X型应用表示该应用对X型资源的需求量最大。不同资源耗费大小的比较是通过该资源申请量与服务器所拥有的总量的比值决定的。为了论述方便,按照上文中举的例子:应用A占用资源<3CPU,12Mem>,应用B占用资源<6CPU,2Mem>,一台物理机拥有的资源为<16CPU,32Mem>。计算得到应用A的应用资源值为<18%,37.5%>,应用B的应用资源值为<37.5%,6.25%>。从而可以推断出应用A为内存型应用,应用B为CPU型应用。同理适用于网络IO型应用、磁盘IO型应用、磁盘容量型应用等。
本发明对现有的集群资源分配方案进行改进,对部署应用队列进行资源分析,采用多维向量值表示应用的应用资源值以及服务器上的消耗资源值,使得资源分析时能够根据应用申请的资源偏好将应用划分为不同类型的资源耗费型应用,使得进行资源分配时能按照应用的资源耗费类型进行策略调整,避免相同资源耗费型的应用被分配到同一台服务器上形成资源碎片。
在其中一个实施例中:
所述资源占用非均衡度RD采用如下方式计算:其中,xi为第i个资源占用百分比,αi为计算资源占用非均衡度时对应xi的权重系数,avg为服务器的资源占用平均值,其中ki为计算资源占用平均值时对应xi的权重系数,n为资源总数;
服务器假设部署当前应用后的消耗资源值采用如下方式计算:服务器假设部署当前应用后的消耗资源值的第i个维度值=服务器当前的消耗资源值的第i个维度值与当前应用的应用资源值的第i个维度值之和。
本实施例,通过调整权重防止avg被总量丰富的资源(如磁盘容量)过分拉低。资源占用非均衡度(Resource Disequilibrium)用来量化一台服务器目前消耗的资源的均衡度。从该公式可以看出,在理想情况下,一台服务器的cpu、内存、网络和IO等资源占用率相同,该服务器的资源占用非均衡度将为0。当一种资源的占用率远大于其他类型资源的占用率时服务器的资源占用非均衡度将迅速变大。权重系数a1~an用来设置各种资源均衡度的重要性。比如,一般情况下***紧缺的资源为CPU和内存,而硬盘容量资源相对丰富。这种情况下可以设置CPU和内存的权重系数大于其他系数,这样当CPU和内存的使用率偏离平均值时,服务器的资源占用非均衡度将迅速变大,有利于资源调度***做出反映,减低集群中CPU和内存的资源的碎片。
在其中一个实施例中,所述步骤S103,具体包括:
服务器组分组子步骤,包括:计算每个服务器的资源占用平均值,将所有服务器根据资源占用平均值从小到大进行排列后分为具有优先级的多个服务器组,服务器组的优先级顺序与该服务器组所包括的服务器的资源占用平均值顺序相反,选择优先级最高的服务器组作为当前服务器组;
部署服务器确定子步骤,包括:
对当前服务器组中的每一个服务器执行如下运算:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,如果该服务器无法部署当前应用,则该服务器的均衡度受益值设置为无法部署标识,否则计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值;
如果当前服务器组中所有的服务器的均衡度受益值均设置为无法部署标识,则执行服务器组选择子步骤,否则在当前服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在部署服务器上部署当前应用;
服务器组选择子步骤,包括:选择下一优先级的服务器组作为当前服务器组,执行部署服务器确定子步骤。
本实施例,将集群中的服务器按照资源占用平均值排序后分为多个服务器组。资源占用平均值体现当前服务器的资源使用情况。为了防止一些服务器过于繁忙,而另一些服务器过于空闲,应该优先将应用部署于平均利用率较低的一组服务器上。通过将服务器的平均资源占用率从小到大排列,将集群中的服务器分为若干组,比如分为(very idle,idle,busy,very busy)四组,分配的优先级从高到低。只有当高优先级的一组服务器无法部署应用时,***资源分配才会考虑低一级的服务器组。
优选地,无法部署标识设置为负无穷,则部署服务器确定子步骤只需要计算当前服务器组的最大均衡度受益值,如果最大均衡度受益值为负无穷,则表示当前服务器组中所有的服务器均不能部署当前应用,从而简化计算。
在其中一个实施例中,每个服务器中安装有容器运行环境,每个服务器将应用安装在容器中。
碎片整理***的一个前提是应用可以无副作用,或者以很低的副作用代价迁移到其他服务器中。本实施例解决应用运行时的依赖问题。
在其中一个实施例中,所述方法还包括:
优化步骤,包括:当集群运行预设时间段后,确定待迁移应用,在缓冲服务器上运行所述待迁移应用,从集群里将所述待迁移应用删除,将每个待迁移应用作为所述当前应用执行步骤S102和步骤S103后在所述缓冲服务器上删除所述待迁移应用。
由于资源分配算法无法预测未来长时间部署的应用类型,只能根据以往以及当前的应用类型确定部署在均衡度受益值最大的服务器上,而无法全局分析未来需要部署的应用类型。因此在容器云平台运行一段时间后整体的部署方案并不是最优的。
对资源调度算法进行一些改进可以优化最终结果。比如将应用队列加长,资源分配***全局分析队列中的应用类型,再选出拥有最大均衡度受益值的应用部署。但这种改良方案并不能阻止资源碎片化随着时间的增加而不断加剧的趋势。因此本实施例采用定时进程碎片整理的方案解决这个问题。实际上需要优化的并不是应用,而是整个服务器集群的资源碎片。虽然本发明前述算法能有效减低运行过程中的资源碎片,但所作的策略都是根据[0,t0]时间区间内的应用类型所作出的,其中t0是指当前时间。当***运行一段时间后(假设为t1,t1>t0),综合来看前面所作的策略并不是最优的,因此需要进行一次资源碎片整理(类似于磁盘碎片整理),这时候可能要迁移应用,这个需要迁移的应用就是这里的待迁移应用。并不是所有的应用都适合迁移的(比如有的应用只能在固定几台服务器上),待迁移应用的确定可以采用人工标定的办法,具体实践中是在运行应用时在应用类型上标定“可迁移”。
在集群中选择一个或多个服务器作为缓冲服务器,所述步骤S101~步骤S103不统计缓冲服务器的资源,即服务器组划分步骤、应用资源值获取步骤和应用部署步骤不统计缓冲服务器的资源。缓冲服务器和普通的服务器用处不一样。缓冲服务器只临时部署需要迁移的应用,作为应用迁移的跳板使用。比如需要迁移应用A,它原先部署在服务器M,则首先在缓冲服务器启动一例应用A,这时候应用A在服务器M和缓冲服务器同时运行。然后再停止服务器M的应用A,这时候相当于已经在集群中删除了应用A的一个例子(前述资源调度算法不统计缓冲服务器的资源),同时对外来说应用A仍然正常服务。然后再根据算法重新部署应用A,比如这时候应用A需要部署到服务器N,则接下的步骤是将应用A部署到服务器N,然后删除缓冲服务器上的应用A。这个过程就是集群的资源碎片整理过程。
资源碎片整理操作是一个相对危险的操作,因此迁移的应用、碎片整理的时间都需要谨慎确定。比如可以选择在***负载比较小的时间进行碎片整理,需要谨慎标定可迁移的应用。
如图2所示为本发明最佳实施例的结构示意图,包括:资源分配器21、应用队列22、多台服务器23。其中,应用队列22应用队列是即将上线部署的应用,它们被存储在一个队列里等待资源分配器分配资源,资源分配器21执行本发明的基于应用类型的集群资源调度方法,最终选定一个服务器23部署由应用队列22所提供的应用。
如图3所示为本发明最佳实施例的工作流程图,包括:
步骤S301,获取当前应用所需的应用资源值;
步骤S302,计算集群里各服务器的平均资源利用率;
步骤S303,根据服务器的平均资源利用率分组;
步骤S304,选择平均资源利用率最低的一组服务器作为当前服务器组;
步骤S305,计算当前服务器组内各服务器的资源占用非均衡度;
步骤S306,对当前服务器组的每个服务器进行判断:
如果服务器有足够的资源部署当前应用,则计算该服务器的均衡度受益值,否则,设置该服务器的均衡度受益值为负无穷;
步骤S307,获取当前服务器组的最大均衡度受益值,如果为负无穷,则执行步骤S308,否则执行步骤S309;
步骤S308,选择下一组服务器组,执行步骤S305;
步骤S309,在具有最大均衡度受益值的服务器上部署当前应用,结束。
为了验证本发明论述的策略有效,仍然以前面的例子为例:应用A占用资源<3CPU,12Mem>,应用B占用资源<6CPU,2Mem>,一台物理机拥有的资源为<16CPU,32Mem>。假设服务器1已经部署1例应用A,服务器2已经部署1例子应用B。服务器1,2同属于一个服务器组。首先根据公式(2)分别计算服务器1和服务器2的资源非均衡度。这里只取cpu和内存两个维度,并且设置权重系数α1=α2=1。服务器的平均利用率同样设置k1=k2=1,n=2。应用A占用资源比例<18%,37.5%>,应用B占用资源比例<37.5%,6.25%>。
计算服务器1的平均资源使用率avg1=27.75%,服务器2的平均资源使用率为avg2=21.875%。服务器1的资源非均衡度为RD1=190,服务器2的资源非均衡度为RD2=488。假设有一例新的应用A要进行部署,计算当部署应用A后2台服务器的非均衡度,服务器1的非均衡度为RD1A=760.5,均衡度受益值为B1=RD1-RD1A=-570.5;服务器2的非均衡度为RD2A=69。均衡度受益值为B2=RD2-RD2A=419。通过上面的计算,可以很快的确定出应用A部署在服务器2的均衡度受益值大于部署在服务器1的均衡度受益值,因此,应该将应用A部署在服务器2。在前面的分析中知道应用A是内存型应用,应用B是CPU型应用,应该尽量避免将应用A和应用B部署在一台服务器上,上述算法可以很方便做到这点。
如图4所示为本发明一种基于应用类型的集群资源调度***的结构模块图,包括:
服务器组划分模块401,用于:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
应用资源值获取模块402,用于:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
应用部署模块403,用于:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
在其中一个实施例中:
所述资源占用非均衡度RD采用如下方式计算:其中,xi为第i个资源占用百分比,αi为计算资源占用非均衡度时对应xi的权重系数,avg为服务器的资源占用平均值,其中ki为计算资源占用平均值时对应xi的权重系数,n为资源总数;
服务器假设部署当前应用后的消耗资源值采用如下方式计算:服务器假设部署当前应用后的消耗资源值的第i个维度值=服务器当前的消耗资源值的第i个维度值与当前应用的应用资源值的第i个维度值之和。
在其中一个实施例中,所述应用部署模块,具体包括:
服务器组分组子模块,用于:计算每个服务器的资源占用平均值,将所有服务器根据资源占用平均值从小到大进行排列后分为具有优先级的多个服务器组,服务器组的优先级顺序与该服务器组所包括的服务器的资源占用平均值顺序相反,选择优先级最高的服务器组作为当前服务器组;
部署服务器确定子模块,用于:
对当前服务器组中的每一个服务器执行如下运算:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,如果该服务器无法部署当前应用,则该服务器的均衡度受益值设置为无法部署标识,否则计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值;
如果当前服务器组中所有的服务器的均衡度受益值均设置为无法部署标识,则执行服务器组选择子模块,否则在当前服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在部署服务器上部署当前应用;
服务器组选择子模块,用于:选择下一优先级的服务器组作为当前服务器组,执行部署服务器确定子模块。
在其中一个实施例中,每个服务器中安装有容器运行环境,每个服务器将应用安装在容器中。
在其中一个实施例中,所述***还包括:
优化模块,用于:当集群运行预设时间段后,确定待迁移应用,在缓冲服务器上运行所述待迁移应用,从集群里将所述待迁移应用删除,将每个待迁移应用作为所述当前应用执行应用资源值获取模块和应用部署模块后在所述缓冲服务器上删除所述待迁移应用。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于应用类型的集群资源调度方法,其特征在于,包括:
服务器组划分步骤,包括:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
应用资源值获取步骤,包括:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
应用部署步骤,包括:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
2.根据权利要求1所述的基于应用类型的集群资源调度方法,其特征在于:
所述资源占用非均衡度RD采用如下方式计算:其中,xi为第i个资源占用百分比,αi为计算资源占用非均衡度时对应xi的权重系数,avg为服务器的资源占用平均值,其中ki为计算资源占用平均值时对应xi的权重系数,n为资源总数;
服务器假设部署当前应用后的消耗资源值采用如下方式计算:服务器假设部署当前应用后的消耗资源值的第i个维度值=服务器当前的消耗资源值的第i个维度值与当前应用的应用资源值的第i个维度值之和。
3.根据权利要求1所述的基于应用类型的集群资源调度方法,其特征在于,所述应用部署步骤,具体包括:
服务器组分组子步骤,包括:计算每个服务器的资源占用平均值,将所有服务器根据资源占用平均值从小到大进行排列后分为具有优先级的多个服务器组,服务器组的优先级顺序与该服务器组所包括的服务器的资源占用平均值顺序相反,选择优先级最高的服务器组作为当前服务器组;
部署服务器确定子步骤,包括:
对当前服务器组中的每一个服务器执行如下运算:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,如果该服务器无法部署当前应用,则该服务器的均衡度受益值设置为无法部署标识,否则计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值;
如果当前服务器组中所有的服务器的均衡度受益值均设置为无法部署标识,则执行服务器组选择子步骤,否则在当前服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在部署服务器上部署当前应用;
服务器组选择子步骤,包括:选择下一优先级的服务器组作为当前服务器组,执行部署服务器确定子步骤。
4.根据权利要求1所述的基于应用类型的集群资源调度方法,其特征在于,每个服务器中安装有容器运行环境,每个服务器将应用安装在容器中。
5.根据权利要求4所述的基于应用类型的集群资源调度方法,其特征在于,所述方法还包括:
优化步骤,包括:当集群运行预设时间段后,确定待迁移应用,在缓冲服务器上运行所述待迁移应用,从集群里将所述待迁移应用删除,将每个待迁移应用作为所述当前应用执行应用资源值获取步骤和应用部署步骤后在所述缓冲服务器上删除所述待迁移应用。
6.一种基于应用类型的集群资源调度***,其特征在于,包括:
服务器组划分模块,用于:将集群里的所有服务器划分为至少一个服务器组,所述服务器组包括至少一个服务器;
应用资源值获取模块,用于:获取当前应用所需的应用资源值,所述应用资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所对应资源的资源占用百分比;
应用部署模块,用于:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在所述部署服务器上部署当前应用。
7.根据权利要求6所述的基于应用类型的集群资源调度***,其特征在于:
所述资源占用非均衡度RD采用如下方式计算:其中,xi为第i个资源占用百分比,αi为计算资源占用非均衡度时对应xi的权重系数,avg为服务器的资源占用平均值,其中ki为计算资源占用平均值时对应xi的权重系数,n为资源总数;
服务器假设部署当前应用后的消耗资源值采用如下方式计算:服务器假设部署当前应用后的消耗资源值的第i个维度值=服务器当前的消耗资源值的第i个维度值与当前应用的应用资源值的第i个维度值之和。
8.根据权利要求6所述的基于应用类型的集群资源调度***,其特征在于,所述应用部署模块,具体包括:
服务器组分组子模块,用于:计算每个服务器的资源占用平均值,将所有服务器根据资源占用平均值从小到大进行排列后分为具有优先级的多个服务器组,服务器组的优先级顺序与该服务器组所包括的服务器的资源占用平均值顺序相反,选择优先级最高的服务器组作为当前服务器组;
部署服务器确定子模块,用于:
对当前服务器组中的每一个服务器执行如下运算:获取服务器上当前的资源占用非均衡度作为当前资源占用非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该维度所对应资源的资源占用百分比,如果该服务器无法部署当前应用,则该服务器的均衡度受益值设置为无法部署标识,否则计算预估资源占用非均衡度与当前资源占用非均衡度之差作为均衡度受益值;
如果当前服务器组中所有的服务器的均衡度受益值均设置为无法部署标识,则执行服务器组选择子模块,否则在当前服务器组中选择具有最大均衡度受益值的服务器作为部署服务器,在部署服务器上部署当前应用;
服务器组选择子模块,用于:选择下一优先级的服务器组作为当前服务器组,执行部署服务器确定子模块。
9.根据权利要求6所述的基于应用类型的集群资源调度***,其特征在于,每个服务器中安装有容器运行环境,每个服务器将应用安装在容器中。
10.根据权利要求9所述的基于应用类型的集群资源调度***,其特征在于,所述***还包括:
优化模块,用于:当集群运行预设时间段后,确定待迁移应用,在缓冲服务器上运行所述待迁移应用,从集群里将所述待迁移应用删除,将每个待迁移应用作为所述当前应用执行应用资源值获取模块和应用部署模块后在所述缓冲服务器上删除所述待迁移应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510235884.3A CN104834569B (zh) | 2015-05-11 | 2015-05-11 | 一种基于应用类型的集群资源调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510235884.3A CN104834569B (zh) | 2015-05-11 | 2015-05-11 | 一种基于应用类型的集群资源调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834569A CN104834569A (zh) | 2015-08-12 |
CN104834569B true CN104834569B (zh) | 2018-01-16 |
Family
ID=53812477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510235884.3A Active CN104834569B (zh) | 2015-05-11 | 2015-05-11 | 一种基于应用类型的集群资源调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834569B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159995A (zh) * | 2015-09-06 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种对数据库备份数据进行有效性验证的方法及装置 |
CN105893010A (zh) * | 2015-11-17 | 2016-08-24 | 乐视云计算有限公司 | 用于容器部署的主机调度方法及*** |
CN106959894B (zh) * | 2016-01-11 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 资源分配方法和装置 |
CN106502740B (zh) * | 2016-10-31 | 2019-08-06 | 北京小米移动软件有限公司 | 应用安装方法和装置 |
CN108009016B (zh) | 2016-10-31 | 2021-10-22 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
CN106911772A (zh) * | 2017-02-20 | 2017-06-30 | 联想(北京)有限公司 | 服务器分配方法、服务器分配装置以及电子设备 |
CN107205028A (zh) * | 2017-05-25 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种服务分类方法及装置 |
CN108845874B (zh) * | 2018-06-25 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 资源的动态分配方法及服务器 |
CN110704175B (zh) * | 2018-07-10 | 2022-08-02 | 中国电信股份有限公司 | 容器部署方法和装置 |
CN109165045A (zh) * | 2018-08-09 | 2019-01-08 | 网宿科技股份有限公司 | 一种调整服务器的硬件配置的方法和装置 |
CN109582461B (zh) * | 2018-11-14 | 2021-03-09 | 中国科学院计算技术研究所 | 一种针对Linux容器的资源部署方法及*** |
CN113168344A (zh) * | 2018-11-20 | 2021-07-23 | 华为技术有限公司 | 通过提高集群多样性实现的分布式资源管理 |
CN109976907B (zh) * | 2019-03-11 | 2021-08-31 | 百度在线网络技术(北京)有限公司 | 任务分配方法和***、电子设备、计算机可读介质 |
CN110022270B (zh) * | 2019-03-27 | 2020-07-10 | 阿里巴巴集团控股有限公司 | 具有多种资源类型的资源分配方法和装置 |
CN109995871A (zh) * | 2019-04-09 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种Pod调度方法及装置 |
CN110888715B (zh) * | 2019-12-12 | 2021-02-02 | 深圳齐杉科技有限公司 | 一种虚拟化计算方法 |
CN111309476B (zh) * | 2020-01-22 | 2023-11-03 | 福建天泉教育科技有限公司 | 推送***自动调整资源的方法、存储介质 |
CN111556135A (zh) * | 2020-04-26 | 2020-08-18 | 北京奇艺世纪科技有限公司 | 一种请求调度方法、***、装置及电子设备 |
CN112019628A (zh) * | 2020-09-01 | 2020-12-01 | 江西凌峰售电有限公司 | 一种基于物联网的低延迟低能耗的智慧平台*** |
CN115150402B (zh) * | 2022-08-30 | 2022-11-18 | 京华信息科技股份有限公司 | 一种云资源分配方法及*** |
CN115665157B (zh) * | 2022-11-14 | 2023-03-14 | 杭州谐云科技有限公司 | 一种基于应用资源类型的均衡调度方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164283A (zh) * | 2012-05-10 | 2013-06-19 | 上海兆民云计算科技有限公司 | 一种虚拟桌面***中虚拟化资源动态调度管理方法及*** |
CN103248659A (zh) * | 2012-02-13 | 2013-08-14 | 北京华胜天成科技股份有限公司 | 一种云计算资源调度方法和*** |
CN104008002A (zh) * | 2014-06-17 | 2014-08-27 | 电子科技大学 | 云平台环境下虚拟机部署的目标主机选择方法 |
CN104038540A (zh) * | 2014-06-03 | 2014-09-10 | 山东乾云启创信息科技有限公司 | 一种应用代理服务器自动选择方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185729A1 (en) * | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
-
2015
- 2015-05-11 CN CN201510235884.3A patent/CN104834569B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248659A (zh) * | 2012-02-13 | 2013-08-14 | 北京华胜天成科技股份有限公司 | 一种云计算资源调度方法和*** |
CN103164283A (zh) * | 2012-05-10 | 2013-06-19 | 上海兆民云计算科技有限公司 | 一种虚拟桌面***中虚拟化资源动态调度管理方法及*** |
CN104038540A (zh) * | 2014-06-03 | 2014-09-10 | 山东乾云启创信息科技有限公司 | 一种应用代理服务器自动选择方法及*** |
CN104008002A (zh) * | 2014-06-17 | 2014-08-27 | 电子科技大学 | 云平台环境下虚拟机部署的目标主机选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104834569A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834569B (zh) | 一种基于应用类型的集群资源调度方法及*** | |
US10089140B2 (en) | Dynamically adaptive, resource aware system and method for scheduling | |
CN107491341B (zh) | 一种基于粒子群优化的虚拟机分配方法 | |
CN106776005B (zh) | 一种面向容器化应用的资源管理***及方法 | |
CN103793272B (zh) | 一种周期性任务调度方法及*** | |
CN102662763B (zh) | 基于服务质量的虚拟机资源调度方法 | |
CN102780759B (zh) | 基于调度目标空间的云计算资源调度方法 | |
CN104572307B (zh) | 一种对虚拟资源进行弹性调度的方法 | |
CN103838621B (zh) | 用于调度例行作业的方法和***、调度节点 | |
CN103713956B (zh) | 应用于云计算虚拟化管理环境中的智能加权负载均衡方法 | |
US20160316003A1 (en) | Balancing resources in distributed computing environments | |
CN102253857B (zh) | 一种多核环境下的Xen虚拟机调度控制方法 | |
CN106502792A (zh) | 一种面向不同类型负载的多租户资源优化调度方法 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN102708003A (zh) | 一种云平台下的资源分配方法 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN103297499A (zh) | 一种基于云平台的调度方法及*** | |
CN103503412B (zh) | 用于调度资源的方法及装置 | |
CN105491150A (zh) | 基于时间序列的负载均衡处理方法及*** | |
CN114356543A (zh) | 一种基于Kubernetes的多租户机器学习任务资源调度方法 | |
CN104537682A (zh) | 一种医学影像的分割与调度方法 | |
CN104917839A (zh) | 一种用于云计算环境下的负载均衡方法 | |
CN105487927B (zh) | 一种资源管理方法及装置 | |
Yang et al. | Multi-policy-aware MapReduce resource allocation and scheduling for smart computing cluster | |
CN111083189A (zh) | 用于在运行时处理数据倾斜的***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |