一种基于应用类型的集群资源调度方法及系统的制作方法

文档序号:8512499阅读:327来源:国知局
一种基于应用类型的集群资源调度方法及系统的制作方法
【技术领域】
[0001] 本发明设计集群资源调度相关技术领域,特别是一种基于应用类型的集群资源调 度方法及系统。
【背景技术】
[0002] 随着虚拟化技术的发展,越来越多的公司将自己的线上应用迀移到云平台上。近 年来基于Iinux内核的虚拟化技术(namespace及cgroups等)的轻量级虚拟化容器(如 docker等)发展迅速,受到了越来越多的重视。容器通过操作系统层的虚拟化实现资源隔 离,不需要类似虚拟机(VM)额外的操作系统开销,在资源利用率上有着比虚拟机更大的优 势。因此,通过容器虚拟化线上应用是未来云技术的一个重要发展方向,而通过容器有效管 理服务器集群的资源是基于容器的云平台投入实际工程运用所需解决的一个重大技术问 题。
[0003] 目前的资源分配方法主要针对的是单维度计算机资源,将集群中的计算机资源平 均分割成等分的槽位(slot),应用程序在申请资源时是以slot为单位的,资源分配系统不 能分配细粒度小于slot的资源。即使在分配有多维度的系统资源时,这种分配策略仍然将 不同属性的资源分成各种类型的slot进行分配,比如假设一台服务器有16核CPU,32G内 存,一种分配方式是一个CPU slot是1核cpu,一个内存slot是IGB内存。应用程序在申 请资源时必须以cpu slot和内存slot为基本单位申请。
[0004] 为了论述现有技术方案的运行原理,假设服务器配置为16核CPU,32G内存。应用 A需要3核CPU,12GB内存,应用B需要6核CPU和2GB内存。
[0005] 用向量表示这两种应用所需消耗的资源,A〈3CPU,12Mem>,B〈6CPU,2Mem>,一台物 理机拥有的资源slot为<16CPU,32Mem>。
[0006] 目前常用的资源分配方案是寻找一台服务器,如果该服务器剩余的各个类型的资 源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的总 数趋近于相同。
[0007] 由于按照slot分配资源的分配策略是将CPU、内存等资源类型独立看待的,因此 这种分配策略并不会根据实际应用的资源需求进行调整。而实际应用的类型对系统各项 资源的需求程度不一样,一些应用更加偏向于计算,对CPU的需求量比内存需求量更高;反 之,一些应用对内存的需求量更高。除了 CPU和内存,一项应用对系统资源的消耗偏好又可 能包括网络10,磁盘IO和磁盘容量等。因此,在进行有多维度的系统资源分配时,现有的根 据资源slot进行资源分配的方式会导致服务器各项资源的碎片化:比如当多个同属于CPU 消耗型的应用部署在同一台服务器时,该服务器剩余的CPU资源变小,形成碎片化。虽然该 服务器可能存在大量空闲内存未被分配使用,但由于CPU资源剩余量过小,不能部署新的 应用,导致服务器资源浪费。这种资源浪费在进行更多维度的资源分配时将会更加严重。

【发明内容】

[0008] 基于此,有必要针对现有技术的集群资源分配方案容易造成物理机资源碎片化, 碎片化的资源难以被应用有效利用,造成不必要的资源浪费的技术问题,提供一种基于应 用类型的集群资源调度方法及系统。
[0009] 一种基于应用类型的集群资源调度方法,包括:
[0010] 服务器组划分步骤,包括:将集群里的所有服务器划分为至少一个服务器组,所述 服务器组包括至少一个服务器;
[0011] 应用资源值获取步骤,包括:获取当前应用所需的应用资源值,所述应用资源值为 多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与 该维度所对应资源的资源占用百分比;
[0012] 应用部署步骤,包括:获取服务器上当前的资源占用非均衡度作为当前资源占用 非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务 器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资 源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署 当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计 算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中 与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均 衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为 部署服务器,在所述部署服务器上部署当前应用。
[0013] 一种基于应用类型的集群资源调度系统,包括:
[0014] 服务器组划分模块,用于:将集群里的所有服务器划分为至少一个服务器组,所述 服务器组包括至少一个服务器;
[0015] 应用资源值获取模块,用于:获取当前应用所需的应用资源值,所述应用资源值为 多维向量值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与 该维度所对应资源的资源占用百分比;
[0016] 应用部署模块,用于:获取服务器上当前的资源占用非均衡度作为当前资源占用 非均衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务 器假设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资 源占用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署 当前应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计 算得到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中 与该维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均 衡度之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为 部署服务器,在所述部署服务器上部署当前应用。
[0017] 本发明对现有的集群资源分配方案进行改进,对部署应用队列进行资源分析,根 据应用申请的资源偏好将应用划分为不同类型的资源耗费型应用,使得进行资源分配时能 按照应用的资源耗费类型进行策略调整,避免相同资源耗费型的应用被分配到同一台服务 器上形成资源碎片。
【附图说明】
[0018] 图1为本发明一种基于应用类型的集群资源调度方法的工作流程图;
[0019] 图2为本发明最佳实施例的结构示意图;
[0020] 图3为本发明最佳实施例的工作流程图;
[0021] 图4为本发明一种基于应用类型的集群资源调度系统的结构模块图。
【具体实施方式】
[0022] 下面结合附图和具体实施例对本发明做进一步详细的说明。
[0023] 如图1所示为本发明一种基于应用类型的集群资源调度方法的工作流程图,包 括:
[0024] 步骤S101,包括:将集群里的所有服务器划分为至少一个服务器组,所述服务器 组包括至少一个服务器;
[0025] 步骤S102,包括:获取当前应用所需的应用资源值,所述应用资源值为多维向量 值,每一维度与一种资源相关联,每一维度值表示当前应用向服务器所申请的与该维度所 对应资源的资源占用百分比;
[0026] 步骤S103,包括:获取服务器上当前的资源占用非均衡度作为当前资源占用非均 衡度,所述当前资源占用非均衡度根据服务器当前的消耗资源值计算得到,获取服务器假 设部署当前应用后预估的资源占用非均衡度作为预估资源占用非均衡度,所述预估资源占 用非均衡度根据服务器假设部署当前应用后的消耗资源值计算得到,服务器假设部署当前 应用后的消耗资源值根据服务器当前的消耗资源值与当前应用所需的应用资源值计算得 到,消耗资源值为多维向量值,每一维度与一种资源相关联,每一维度值表示服务器中与该 维度所对应资源的资源占用百分比,计算预估资源占用非均衡度与当前资源占用非均衡度 之差作为均衡度受益值,从一个服务器组中选择具有最大均衡度受益值的服务器作为部署 服务器,在所述部署服务器上部署当前应用。
[0027] 步骤SlOl和步骤S102的位置可以相互交换而不会影响本发明的实现。步骤S102 中的应用资源值和步骤S103中服务器的消耗资源值具有相同的维度数量,且每个维度所 关联的资源相同。资源占用百分比指的是该被占用资源与该资源总量的百分比。在此引用 一个概率:χ型应用,X指代一种资源类型。作为一个例子,将一个应用申请的系统资源分 为5个维度〈CPU,内存(下述用Mem表示),网络带宽,磁盘IO带宽,磁盘大小〉。X型应用 表示该应用对X型资源的需求量最大。不同资源耗费大小的比较是通过该资源申请量与服 务器所拥有的总量的比值决定的。为了论述方便,按照上文中举的例子:应用A占用资源 〈3CPU,12Mem>,应用B占用资源〈6CPU,2Mem>,一台物理机拥有的资源为〈16CPU,32Mem>。计 算得到应用A的应用资源值为〈
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1