CN114090220B - 一种分级cpu和内存资源调度方法 - Google Patents

一种分级cpu和内存资源调度方法 Download PDF

Info

Publication number
CN114090220B
CN114090220B CN202210034852.7A CN202210034852A CN114090220B CN 114090220 B CN114090220 B CN 114090220B CN 202210034852 A CN202210034852 A CN 202210034852A CN 114090220 B CN114090220 B CN 114090220B
Authority
CN
China
Prior art keywords
node
deployed
resource
cpu
pod
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
Application number
CN202210034852.7A
Other languages
English (en)
Other versions
CN114090220A (zh
Inventor
秦华旺
姚海
戴跃伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202210034852.7A priority Critical patent/CN114090220B/zh
Publication of CN114090220A publication Critical patent/CN114090220A/zh
Application granted granted Critical
Publication of CN114090220B publication Critical patent/CN114090220B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种分级CPU和内存资源调度方法,涉及网络资源调度处理技术领域,本发明基于各个终端节点所构成的集群,在预设时间范围内针对集群中各个终端节点产生的资源调度请求进行响应;基于集群中所有可用资源,生成与各个资源调度请求相对应的各个pod,针对集群中产生资源调度请求的各个终端节点,将各个产生资源调度请求的终端节点作为待部署节点,基于各待部署节点产生的各个资源调度请求、以及响应各个资源调度请求所生成的各个pod,将pod部署至待部署节点中,完成资源调度。通过本发明的技术方案,避免出现资源不足、或者资源占用过高等资源分配不均的情况,同时可以提高集群的资源均衡率。

Description

一种分级CPU和内存资源调度方法
技术领域
本发明涉及网络资源调度处理技术领域,具体而言涉及一种分级CPU和内存资源调度方法。
背景技术
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
集群主要是提供应用的部署,维护,扩展机制等功能。在集群中pod是资源调度的基本单位,集群内资源调度的实质就是根据特定的算法把待调度的调度到合适的节点,实现pod和节点的绑定。
对于kubernetes集群,其默认调度方法是静态资源调度机制,静态调度算法的核心是基于应用对资源的请求量来确定调度优先级,但是整个进程中随着业务的到来和结束,应用对资源的需求量是实时变化的,静态调度无法实时更新应用的资源需求。后续提出了动态的资源调度方法,通过监控集群中节点的实时负载情况,进行计算与分析,将任务合理的调度到最优目标服务器上。
在现有的动态调度算法中,大部分算法都没有合理评估节点上的CPU和内存资源的负载情况,也没有对pod进行预先分类,仅仅通过节点的可用资源利用率对节点进行打分,通过得分的高低,让pod和节点绑定完成调度。这样也没有完全考虑到实时的应用对CPU和内存资源的消耗不均,容易导致节点对不同资源的使用不均衡,从而造成节点对某一资源的性能瓶颈。
发明内容
本发明的目的在于提供一种分级CPU和内存资源调度方法,以解决现有技术中的问题。
为实现上述目的,本发明提供如下技术方案:
一种分级CPU和内存资源调度方法,其特征在于,基于各个终端节点所构成的集群,在预设时间范围内针对集群中各个终端节点产生的资源调度请求进行响应;基于集群中所有可用资源,生成与各个资源调度请求相对应的各个pod,针对集群中产生资源调度请求的各个终端节点,将各个产生资源调度请求的终端节点作为待部署节点,基于各待部署节点产生的各个资源调度请求、以及响应各个资源调度请求所生成的各个pod,执行以下步骤:
步骤A、分别针对各个待部署节点,提取待部署节点中所含CPU资源的数据信息和内存资源的数据信息,基于CPU资源和内存资源分别所对应的数据信息,计算并获得该待部署节点中的CPU资源负载率、内存资源负载率、待部署节点资源空闲率,进一步得到该待部署节点中CPU资源权重比、内存资源权重比,随后进入步骤B;
步骤B、分别针对各个待部署节点,根据待部署节点所对应的CPU资源的数据信息和内存资源的数据信息,计算并获得该待部署节点的资源调度优先级;
步骤C、根据pod中CPU资源需求量、pod中内存资源需求量、以及pod所属资源调度请求所来自待部署节点的数据信息,将各个pod划分至资源需求调度集、CPU需求调度集、内存需求调度集,随后进入步骤D;
步骤C中,根据各个pod与其对应的待部署节点,分别针对各个pod,根据以下公式:
Figure GDA0003547177470000021
计算并获得各个pod的CPU资源需求量PACPU、各个pod的内存资源需求量PAmem,其中,PCPU为pod中CPU资源的容量,Pmem为pod中内存资源的容量;N(CPU)i为待部署节点i中CPU资源的资源容量、N(mem)i为待部署节点i中内存资源的资源容量,i的取值为1至I,I为集群中产生资源调度请求的待部署节点总数;
当PACPU=PAmem时,将pod划分至资源需求调度集中;
当PACPU>PAmem时,将pod划分至CPU需求调度集中;
当PACPU<PAmem时,将pod划分至内存需求调度集中;
步骤D、基于集群中各个待部署节点的资源调度优先级,针对资源需求调度集中的各个pod,将pod分别部署至各待部署节点中,直至资源需求调度集中pod部署完毕,获得该资源需求调度集中各个pod与其对应待部署节点的配对关系,完成节点资源的优先调度,并获得没有产生配对关系的剩余的各个待部署节点,随后进入步骤E;
步骤E、针对各个剩余的待部署节点,根据各个待部署节点中的CPU资源权重比和内存资源权重比,将待部署节点标记为重CPU节点或重内存节点,根据遗传算法从CPU需求调度集中获得各个重CPU节点分别与CPU需求调度集中各个pod所对应的各个配对关系,从内存需求调度集中获得各个重内存节点分别与内存需求调度集中各个pod所对应的各个配对关系,在各个配对关系中筛选并获得最优配对关系,根据该最优配对关系,将pod部署至待部署节点中,完成资源调度;
步骤E分别针对各个剩余的待部署节点,包括以下步骤:
步骤E1、根据各个剩余待部署节点中CPU资源权重比ω1、以及内存资源权重比ω2,当ω12时,待部署节点为重CPU节点,当ω12时,待部署节点为重内存节点;
步骤E2、分别针对各个重CPU节点,基于CPU需求调度集中的各个pod,根据遗传算法获得各个pod与该重CPU节点的各个配对关系,在各个配对关系中筛选并获得最优配对关系,将最优配对关系中所对应的pod部署至该重CPU节点中,完成该重CPU节点资源的调度;
步骤E3、分别针对各个重内存节点,基于内存需求调度集中的各个pod,根据遗传算法获得各个pod与该重内存节点的各个配对关系,在各个配对关系中筛选并获得最优配对关系,将最优配对关系中所对应的pod部署至该重内存节点中,完成该重内存节点资源的调度;
针对各个根据遗传算法获得的配对关系,根据以下目标函数获得最优配对关系:
Figure GDA0003547177470000031
其中,M1、M2、M分别为子目标函数,
Figure GDA0003547177470000032
为待部署节点对应的第j个配对关系中pod的CPU资源需求量,
Figure GDA0003547177470000033
为待部署节点对应的第j个配对关系中pod的内存资源需求量,j的取值范围为1至J,J为待部署节点对应配对关系的数量,I为集群中产生资源调度请求的待部署节点总数,Ti为待部署节点i响应资源调度的时间,λ1、λ2为子目标函数M1、M2的权重系数,Ri为待部署节点i中的待部署节点资源空闲率。
进一步地,集群中各个终端节点所含CPU资源的数据信息包括CPU资源容量和CPU资源消耗量,内存资源的数据信息包括内存资源容量和内存资源消耗量,所述步骤A分别针对各个待部署节点,具体包括以下步骤:
步骤A1、基于CPU资源的数据信息和内存资源的数据信息,计算并获得待部署节点中的CPU资源负载率和待部署节点中的内存资源负载率,根据以下公式:
Figure GDA0003547177470000041
Figure GDA0003547177470000042
获得待部署节点i的CPU资源负载率L(CPU)i、待部署节点i的内存资源负载率L(mem)i,其中,Q(CPU)i为待部署节点i中CPU资源消耗量,Q(mem)i为待部署节点i中内存资源消耗量,N(CPU)i为待部署节点i中CPU资源的资源容量、N(mem)i为待部署节点i中内存资源的资源容量,i的取值为1至I,I为集群中产生资源调度请求的待部署节点总数;
步骤A2、基于CPU资源在该待部署节点中的资源负载率和内存资源在该待部署节点中的资源负载率,根据以下公式:
Figure GDA0003547177470000043
获得该待部署节点i中的待部署节点资源空闲率Ri
步骤A3、分别获得CPU资源、内存资源在该待部署节点中的所占权重比,根据以下公式:
Figure GDA0003547177470000044
其中,ω1为待部署节点i中CPU资源权重比、ω2为待部署节点i中内存资源权重比。
进一步地,所述步骤B中,基于待部署节点的资源负载率、以及待部署节点的资源空闲率,根据以下公式:
Si=S(Bi)+S(Ri)
计算获得待部署节点i的节点得分Si,其中,S(Bi)为待部署节点i的均衡率得分,Bi=|ω12|,Ri为待部署节点i的待部署节点资源空闲率,S为得分映射函数;
根据待部署节点的节点得分,获得待部署节点的资源调度优先级,当待部署节点的资源空闲率增高,待部署节点的节点得分相应增加,资源调度优先级高,反之,待部署节点资源负载率增高,待部署节点的节点得分减小,资源调度优先级低,针对集群中各个待部署节点按照其资源调度优先级的高低进行排序。
本发明所述一种分级CPU和内存资源调度方法,采用以上技术方案与现有技术相比,具有以下技术效果:
计算并获得该待部署节点的CPU和内存资源负载率,通过计算节点中CPU资源权重比、内存资源权重比,进一步评估节点性能,确定节点的调度优先级。
通过对pod划分不同的需求类型,节约了后续pod和节点的配对时间,提高集群的资源均衡率。
通过动态分级调度策略,首先让资源需求调度集中的pod部署在调度优先级高的节点完成先行调度。再根据遗传算法从CPU需求调度集中获得各个重CPU节点分别与CPU需求调度集中各个pod所对应的各个配对关系,从内存需求调度集中获得各个重内存节点分别与内存需求调度集中各个pod所对应的各个配对关系,在各个配对关系中筛选并获得最优配对关系,根据该最优配对关系,将pod部署至待部署节点中,完成资源调度。
附图说明
图1为本发明示例性实施例的调度方法的流程图;
图2为本发明示例性实施例的分级调度的算法流程图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本发明中参照附图来描述本发明的各方面,附图中示出了许多说明性实施例。本发明的实施例不局限于附图所示。应当理解,本发明通过上面介绍的多种构思和实施例,以及下面详细描述的构思和实施方式中的任意一种来实现,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
结合图1,一种分级CPU和内存资源调度方法,在应用加载阶段,集群中节点的资源量不断累加,考虑到节点的负载量和性能,调度不可能一次完成,需要进行多轮调度。在一次调度过程中,基于各个终端节点所构成的集群,在预设时间范围内针对集群中各个终端节点产生的资源调度请求进行响应;基于集群中所有可用资源,生成与各个资源调度请求相对应的各个pod,针对集群中产生资源调度请求的各个终端节点,将各个产生资源调度请求的终端节点作为待部署节点,基于各待部署节点产生的各个资源调度请求、以及响应各个资源调度请求所生成的各个pod,执行以下步骤:
步骤A、分别针对各个待部署节点,提取待部署节点中所含CPU资源的CPU资源容量和CPU资源消耗量,提取待部署节点中所含内存资源的内存资源容量和内存资源消耗量,计算并获得该待部署节点中的CPU资源负载率、内存资源负载率、待部署节点资源空闲率,进一步得到该待部署节点中CPU资源权重比、内存资源权重比,具体执行以下步骤:
步骤A1、基于CPU资源的数据信息和内存资源的数据信息,计算并获得待部署节点中的CPU资源负载率和待部署节点中的内存资源负载率,根据以下公式:
Figure GDA0003547177470000061
Figure GDA0003547177470000062
获得待部署节点i的CPU资源负载率L(CPU)i、待部署节点i的内存资源负载率L(mem)i,其中,Q(CPU)i为待部署节点i中CPU资源消耗量,Q(mem)i为待部署节点i中内存资源消耗量,N(CPU)i为待部署节点i中CPU资源的资源容量、N(mem)i为待部署节点i中内存资源的资源容量,i的取值为1至I,I为集群中产生资源调度请求的待部署节点总数;
步骤A2、基于CPU资源在该待部署节点中的资源负载率和内存资源在该待部署节点中的资源负载率,根据以下公式:
Figure GDA0003547177470000063
获得该待部署节点i中的待部署节点资源空闲率Ri
步骤A3、分别获得CPU资源、内存资源在该待部署节点中的所占权重比,根据以下公式:
Figure GDA0003547177470000064
其中,ω1为待部署节点i中CPU资源权重比、ω2为待部署节点i中内存资源权重比,随后进入步骤B。
步骤B、分别针对各个待部署节点,建立节点的打分机制,遍历所有节点进行打分,根据得分高低确定节点的资源调度优先级,基于待部署节点的资源负载率、以及待部署节点的资源空闲率,根据以下公式:
Si=S(Bi)+S(Ri)
计算获得待部署节点i的节点得分Si,其中,S(Bi)为待部署节点i的均衡率得分,Bi=|ω12|,Ri为待部署节点i的资源空闲率,S为得分映射函数;
根据待部署节点的节点得分,获得待部署节点的资源调度优先级,当待部署节点的资源空闲率增高,待部署节点的节点得分相应增加,资源调度优先级高,反之,待部署节点资源负载率增高,待部署节点的节点得分减小,资源调度优先级低,针对集群中各个待部署节点按照其资源调度优先级的高低进行排序,随后进入步骤C。
步骤C、根据pod中CPU资源需求量、pod中内存资源需求量、以及pod所属资源调度请求所来自待部署节点的数据信息,将各个pod划分至资源需求调度集、CPU需求调度集、内存需求调度集,分别针对各个pod,根据以下公式:
Figure GDA0003547177470000071
计算并获得各个pod的CPU资源需求量PACPU、各个pod的内存资源需求量PAmem,其中,PCPU为pod中CPU资源的容量,Pmem为pod中内存资源的容量;
当PACPU=PAmem时,将pod划分至资源需求调度集中;
当PACPU>PAmem时,将pod划分至CPU需求调度集中;
当PACPU<PAmem时,将pod划分至内存需求调度集中,随后进入步骤D。
步骤D、基于集群中各个待部署节点的资源调度优先级,针对资源需求调度集中的各个pod,将pod分别部署至各待部署节点中,直至资源需求调度集中pod部署完毕,获得该资源需求调度集中各个pod与其对应待部署节点的配对关系,完成节点资源的优先调度,并获得没有产生配对关系的剩余的各个待部署节点,随后进入步骤E。
步骤E、针对各个剩余的待部署节点进行次级调度,根据各个待部署节点中的CPU资源权重比和内存资源权重比,将待部署节点标记为重CPU节点或重内存节点,根据遗传算法从CPU需求调度集中获得各个重CPU节点分别与CPU需求调度集中各个pod所对应的各个配对关系,从内存需求调度集中获得各个重内存节点分别与内存需求调度集中各个pod所对应的各个配对关系,在各个配对关系中筛选并获得最优配对关系,根据该最优配对关系,将pod部署至待部署节点中,完成资源调度,具体包括以下步骤:
步骤E1、根据各个剩余待部署节点中CPU资源权重比ω1、以及内存资源权重比ω2,当ω12时,待部署节点为重CPU节点,当ω12时,待部署节点为重内存节点;
步骤E2、分别针对各个重CPU节点,基于CPU需求调度集中的各个pod,根据遗传算法获得各个pod与该重CPU节点的各个配对关系,在各个配对关系中筛选并根据以下目标函数获得最优配对关系:
Figure GDA0003547177470000081
其中,M1、M2、M分别为子目标函数,
Figure GDA0003547177470000082
为待部署节点对应的第j个配对关系中pod的CPU资源需求量,
Figure GDA0003547177470000083
为待部署节点对应的第j个配对关系中pod的内存资源需求量,j的取值范围为1至J,J为待部署节点对应配对关系的数量,I为集群中产生资源调度请求的待部署节点总数,Ti为待部署节点i响应资源调度的时间,λ1、λ2为子目标函数M1、M2的权重系数,将最优配对关系中所对应的pod部署至该重CPU节点中,完成该重CPU节点资源的调度;
步骤E3、分别针对各个重内存节点,基于内存需求调度集中的各个pod,根据遗传算法获得各个pod与该重内存节点的各个配对关系,在各个配对关系中筛选并获得最优配对关系,将最优配对关系中所对应的pod部署至该重内存节点中,完成该重内存节点资源的调度。
在后续的多轮调度中,重复执行步骤A至步骤E中过程,通过步骤E筛选出每轮调度的最优配对关系作为整个资源加载进程最优的次级调度方案和步骤D中优先调度方案构成整个最优的分级调度方案,在后续的调度过程中,释放部署完毕的pod,或者从集群中未产生资源调度请求的节点中获取所需资源。
作为优选方案,集群中的所有节点数量为K,表示为N=(N1,N2,…,NK),其中,集群中产生资源调度请求的待部署节点总数为I,根据步骤A以及步骤B中所描述过程,分别获得产生资源调度请求的I个待部署节点的节点得分Si,其中i的取值为1至I,基于节点得分的高低和资源需求调度集中的pod实现动态绑定,完成优先调度,并且记录优先调度的节点个数为m1
针对剩余I-m1个待部署节点,通过遗传算法对其分别所对应的配对关系进行迭代处理,在迭代过程中,假设剩余的待部署节点数量为3,
Figure GDA0003547177470000084
从资源分配申请以及调度先验可选择18个pod作为初始配对关系A,可设定为:
Figure GDA0003547177470000091
初始配对关系A的排列表示为
Figure GDA0003547177470000092
对应的配对关系绑定了CPU需求调度集中的3、5、8、12、13、16号pod,
Figure GDA0003547177470000093
对应的配对关系绑定了CPU需求调度集中的2、6、7、10、14、18号pod,
Figure GDA0003547177470000094
对应的配对关系绑定了CPU需求调度集中的1、4、9、11、15、17号pod,根据目标函数获得最优配对关系,作为该轮调度的最优配对关系,随后基于各个初始配对关系,重复执行步骤A至步骤E中过程,进行多轮调度,通过步骤E筛选出每轮调度的最优配对关系作为整个资源加载进程最优的次级调度方案和步骤D中优先调度方案构成整个最优的分级调度方案,分别针对各个轮次的资源调度,在进行第v轮调度时,v的取值范围为1-V,假设配对关系A被选择的概率为
Figure GDA0003547177470000095
Mv(Aj)为配对关系A在第v轮调度时所对应的目标函数M,M=λ1M12M2,进一步计算得到全部轮次的累积概率
Figure GDA0003547177470000096
把P(A)中对应配对关系中概率最高的配对关系作为遗传算法中下一轮调度的初始值,确定最优配对结果。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (3)

1.一种分级CPU和内存资源调度方法,其特征在于,基于各个终端节点所构成的集群,在预设时间范围内针对集群中各个终端节点产生的资源调度请求进行响应;基于集群中所有可用资源,生成与各个资源调度请求相对应的各个pod,针对集群中产生资源调度请求的各个终端节点,将各个产生资源调度请求的终端节点作为待部署节点,基于各待部署节点产生的各个资源调度请求、以及响应各个资源调度请求所生成的各个pod,执行以下步骤:
步骤A、分别针对各个待部署节点,提取待部署节点中所含CPU资源的数据信息和内存资源的数据信息,基于CPU资源和内存资源分别所对应的数据信息,计算并获得该待部署节点中的CPU资源负载率、内存资源负载率、待部署节点资源空闲率,进一步得到该待部署节点中CPU资源权重比、内存资源权重比,随后进入步骤B;
步骤B、分别针对各个待部署节点,根据待部署节点所对应的CPU资源的数据信息和内存资源的数据信息,计算并获得该待部署节点的资源调度优先级;
步骤C、根据pod中CPU资源需求量、pod中内存资源需求量、以及pod所属资源调度请求所来自待部署节点的数据信息,将各个pod划分至资源需求调度集、CPU需求调度集、内存需求调度集,随后进入步骤D;
步骤C中,根据各个pod与其对应的待部署节点,分别针对各个pod,根据以下公式:
Figure FDA0003547177460000011
计算并获得各个pod的CPU资源需求量PACPU、各个pod的内存资源需求量PAmem,其中,PCPU为pod中CPU资源的容量,Pmem为pod中内存资源的容量;N(CPU)i为待部署节点i中CPU资源的资源容量、N(mem)i为待部署节点i中内存资源的资源容量,i的取值为1至I,I为集群中产生资源调度请求的待部署节点总数;
当PACPU=PAmem时,将pod划分至资源需求调度集中;
当PACPU>PAmem时,将pod划分至CPU需求调度集中;
当PACPU<PAmem时,将pod划分至内存需求调度集中;
步骤D、基于集群中各个待部署节点的资源调度优先级,针对资源需求调度集中的各个pod,将pod分别部署至各待部署节点中,直至资源需求调度集中pod部署完毕,获得该资源需求调度集中各个pod与其对应待部署节点的配对关系,完成节点资源的优先调度,并获得没有产生配对关系的剩余的各个待部署节点,随后进入步骤E;
步骤E、针对各个剩余的待部署节点,根据各个待部署节点中的CPU资源权重比和内存资源权重比,将待部署节点标记为重CPU节点或重内存节点,根据遗传算法从CPU需求调度集中获得各个重CPU节点分别与CPU需求调度集中各个pod所对应的各个配对关系,从内存需求调度集中获得各个重内存节点分别与内存需求调度集中各个pod所对应的各个配对关系,在各个配对关系中筛选并获得最优配对关系,根据该最优配对关系,将pod部署至待部署节点中,完成资源调度;
步骤E分别针对各个剩余的待部署节点,包括以下步骤:
步骤E1、根据各个剩余待部署节点中CPU资源权重比ω1、以及内存资源权重比ω2,当ω12时,待部署节点为重CPU节点,当ω12时,待部署节点为重内存节点;
步骤E2、分别针对各个重CPU节点,基于CPU需求调度集中的各个pod,根据遗传算法获得各个pod与该重CPU节点的各个配对关系,在各个配对关系中筛选并获得最优配对关系,将最优配对关系中所对应的pod部署至该重CPU节点中,完成该重CPU节点资源的调度;
步骤E3、分别针对各个重内存节点,基于内存需求调度集中的各个pod,根据遗传算法获得各个pod与该重内存节点的各个配对关系,在各个配对关系中筛选并获得最优配对关系,将最优配对关系中所对应的pod部署至该重内存节点中,完成该重内存节点资源的调度;
针对各个根据遗传算法获得的配对关系,根据以下目标函数获得最优配对关系:
Figure FDA0003547177460000021
其中,M1、M2、M分别为子目标函数,
Figure FDA0003547177460000022
为待部署节点对应的第j个配对关系中pod的CPU资源需求量,
Figure FDA0003547177460000023
为待部署节点对应的第j个配对关系中pod的内存资源需求量,j的取值范围为1至J,J为待部署节点对应配对关系的数量,I为集群中产生资源调度请求的待部署节点总数,Ti为待部署节点i响应资源调度的时间,λ1、λ2为子目标函数M1、M2的权重系数,Ri为待部署节点i中的待部署节点资源空闲率。
2.根据权利要求1所述的一种分级CPU和内存资源调度方法,其特征在于,集群中各个终端节点所含CPU资源的数据信息包括CPU资源容量和CPU资源消耗量,内存资源的数据信息包括内存资源容量和内存资源消耗量,所述步骤A分别针对各个待部署节点,具体包括以下步骤:
步骤A1、基于CPU资源的数据信息和内存资源的数据信息,计算并获得待部署节点中的CPU资源负载率和待部署节点中的内存资源负载率,根据以下公式:
Figure FDA0003547177460000031
Figure FDA0003547177460000032
获得待部署节点i的CPU资源负载率L(CPU)i、待部署节点i的内存资源负载率L(mem)i,其中,Q(CPU)i为待部署节点i中CPU资源消耗量,Q(mem)i为待部署节点i中内存资源消耗量,N(CPU)i为待部署节点i中CPU资源的资源容量、N(mem)i为待部署节点i中内存资源的资源容量,i的取值为1至I,I为集群中产生资源调度请求的待部署节点总数;
步骤A2、基于CPU资源在该待部署节点中的资源负载率和内存资源在该待部署节点中的资源负载率,根据以下公式:
Figure FDA0003547177460000033
获得该待部署节点i中的待部署节点资源空闲率Ri
步骤A3、分别获得CPU资源、内存资源在该待部署节点中的所占权重比,根据以下公式:
Figure FDA0003547177460000034
其中,ω1为待部署节点i中CPU资源权重比、ω2为待部署节点i中内存资源权重比。
3.根据权利要求2所述的一种分级CPU和内存资源调度方法,其特征在于,所述步骤B中,基于待部署节点的资源负载率、以及待部署节点的资源空闲率,根据以下公式:
Si=S(Bi)+S(Ri)
计算获得待部署节点i的节点得分Si,其中,S(Bi)为待部署节点i的均衡率得分,Bi=|ω12|,Ri为待部署节点i的待部署节点资源空闲率,S为得分映射函数;
根据待部署节点的节点得分,获得待部署节点的资源调度优先级,当待部署节点的资源空闲率增高,待部署节点的节点得分相应增加,资源调度优先级高,反之,待部署节点资源负载率增高,待部署节点的节点得分减小,资源调度优先级低,针对集群中各个待部署节点按照其资源调度优先级的高低进行排序。
CN202210034852.7A 2022-01-13 2022-01-13 一种分级cpu和内存资源调度方法 Active CN114090220B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210034852.7A CN114090220B (zh) 2022-01-13 2022-01-13 一种分级cpu和内存资源调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210034852.7A CN114090220B (zh) 2022-01-13 2022-01-13 一种分级cpu和内存资源调度方法

Publications (2)

Publication Number Publication Date
CN114090220A CN114090220A (zh) 2022-02-25
CN114090220B true CN114090220B (zh) 2022-04-29

Family

ID=80308489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210034852.7A Active CN114090220B (zh) 2022-01-13 2022-01-13 一种分级cpu和内存资源调度方法

Country Status (1)

Country Link
CN (1) CN114090220B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018100381A4 (en) * 2018-03-27 2018-05-10 Chongqing University Of Posts And Telecommunications A physical resource scheduling method in cloud cluster
CN109167835A (zh) * 2018-09-13 2019-01-08 重庆邮电大学 一种基于kubernetes的物理资源调度方法及系统
CN110300130A (zh) * 2018-03-21 2019-10-01 中移(苏州)软件技术有限公司 一种资源调度方法、装置、电子设备及存储介质
CN111090523A (zh) * 2019-12-18 2020-05-01 浪潮云信息技术有限公司 一种kubernetes环境下基于动态优先级的资源调度方法
CN112631612A (zh) * 2020-12-03 2021-04-09 杭州谐云科技有限公司 一种基于遗传算法的kubernetes云平台配置的优化方法
CN113672347A (zh) * 2021-08-09 2021-11-19 新华三大数据技术有限公司 一种容器组调度方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300130A (zh) * 2018-03-21 2019-10-01 中移(苏州)软件技术有限公司 一种资源调度方法、装置、电子设备及存储介质
AU2018100381A4 (en) * 2018-03-27 2018-05-10 Chongqing University Of Posts And Telecommunications A physical resource scheduling method in cloud cluster
CN109167835A (zh) * 2018-09-13 2019-01-08 重庆邮电大学 一种基于kubernetes的物理资源调度方法及系统
CN111090523A (zh) * 2019-12-18 2020-05-01 浪潮云信息技术有限公司 一种kubernetes环境下基于动态优先级的资源调度方法
CN112631612A (zh) * 2020-12-03 2021-04-09 杭州谐云科技有限公司 一种基于遗传算法的kubernetes云平台配置的优化方法
CN113672347A (zh) * 2021-08-09 2021-11-19 新华三大数据技术有限公司 一种容器组调度方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Capacity Aware Container Placement in Heterogeneous Clusters using Genetic Algorithm;Thakur B;《Dublin, National College of Ireland》;20201231;全文 *
基于遗传算法的Kubernetes资源调度算法;胡程鹏等;《计算机系统应用》;20210926;全文 *

Also Published As

Publication number Publication date
CN114090220A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN109561148B (zh) 边缘计算网络中基于有向无环图的分布式任务调度方法
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US7752628B2 (en) Method and apparatus for reassigning objects to processing units
CN109788046B (zh) 一种基于改进蜂群算法的多策略边缘计算资源调度方法
CN109960585A (zh) 一种基于kubernetes的资源调度方法
CN110798517B (zh) 去中心化集群负载均衡方法、系统、移动终端及存储介质
CN110795217B (zh) 一种基于资源管理平台的任务分配方法及系统
CN102281329A (zh) 一种PaaS云平台的资源调度方法和系统
CN108965014A (zh) QoS感知的服务链备份方法及系统
CN109617826A (zh) 一种基于布谷鸟搜索的storm动态负载均衡方法
CN103176849A (zh) 一种基于资源分类的虚拟机集群的部署方法
CN114153580A (zh) 一种跨多集群的工作调度方法及装置
CN103997515B (zh) 一种分布式云中计算中心选择方法及其应用
CN105975345A (zh) 一种基于分布式内存的视频帧数据动态均衡存储管理方法
CN109412838A (zh) 基于散列计算以及性能评估的服务器集群主节点选择方法
CN111124619B (zh) 一种面向二次调度的容器调度方法
CN111796933A (zh) 资源调度方法、装置、存储介质和电子设备
CN109951551B (zh) 一种容器镜像管理系统及方法
CN105872082B (zh) 基于容器集群负载均衡算法的细粒度资源响应系统
CN114090220B (zh) 一种分级cpu和内存资源调度方法
CN101834906B (zh) 一种分布式任务处理和协作的多尺度服务单元选择方法
CN105187483B (zh) 分配云计算资源的方法及装置
CN115842828A (zh) 一种网关负载均衡控制方法、装置、设备及可读存储介质
CN114978913A (zh) 一种基于切链的服务功能链跨域部署方法及系统
CN113190347A (zh) 一种边缘云系统及任务管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant