CN116932198A - 资源调度方法、装置、电子设备及可读存储介质 - Google Patents
资源调度方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116932198A CN116932198A CN202211472248.9A CN202211472248A CN116932198A CN 116932198 A CN116932198 A CN 116932198A CN 202211472248 A CN202211472248 A CN 202211472248A CN 116932198 A CN116932198 A CN 116932198A
- Authority
- CN
- China
- Prior art keywords
- resource
- computing
- node
- computing node
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004364 calculation method Methods 0.000 claims abstract description 53
- 230000002787 reinforcement Effects 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 36
- 238000011156 evaluation Methods 0.000 claims description 84
- 230000009471 action Effects 0.000 claims description 58
- 239000011159 matrix material Substances 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 11
- 230000006399 behavior Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000523 sample Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013433 optimization analysis Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种资源调度方法、装置、电子设备及可读存储介质,该资源调度方法包括:获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。本发明可以实现多计算任务抢占资源的情况下,资源的优化调度,提高节点集群整体的资源利用率。
Description
技术领域
本发明实施例涉及人工智能技术领域,尤其涉及一种资源调度方法、装置、电子设备及可读存储介质。
背景技术
近几年,随着云计算技术的发展,在云上部署应用服务有利于降低成本和提高效率,但却引出了资源利用率低、部署和重启应用服务等待时间长等问题,而Docker(一种应用容器引擎)作为容器技术的代表,为应用程序提供了更加轻量级和易于部署的解决方案,如今已是云计算领域的热点。
Kubernetes(一种用于管理云平台中多个主机上的容器化的应用)资源调度是Docker的核心模块,不合理的资源调度策略会造成云平台整体资源利用率低,用户的部署请求得不到快速响应,服务质量下降,同时也提高服务商的软硬件设施成本。Kubernetes调度策略首先根据用户提交的Pod(Kubernetes创建或部署的最小/最简单的基本单位)应用的最小资源需求过滤掉不符合要求的节点,其次以节点剩余CPU(Central ProcessingUnit,中央处理器)和内存的资源利用率为评分指标,对候选节点评分,选择得分最高的节点进行部署。
但是Kubernetes资源调度方法仅适用于资源充足情况下,按顺序调度的应用。如果存在同一个调度周期有多个应用申请资源,Kubernetes依据当前资源空闲情况,分别计算不同应用的调度分数,如果两个以上应用调度到同一个资源较为紧张,仅允许一个应用执行时,另一个应用则由于资源不足导致无法执行。严重情况下,两个应用发生抢占资源都无法执行。
发明内容
本发明实施例提供一种资源调度方法、装置、电子设备及可读存储介质,用于解决多应用抢占容器资源时,Kubernetes无法有效完成调度的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种资源调度方法,包括:
获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
可选的,所述得到资源调度结果之后,还包括:
通过API接口将所述资源调度结果发送给Kubernetes调度器,由Kubernetes调度器根据所述资源调度结果将所述计算任务调度到所述目标计算节点执行。
可选的,采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,包括:
根据所述各计算节点的资源信息和所述各计算任务的资源需求信息,构建当前时刻的状态;
根据所述当前时刻的状态选择动作,所述动作表示从所述计算任务等待队列中选出计算任务,为选出的计算任务选择计算节点,并将选出的计算任务放入选择的计算节点中预定执行的行为;
执行所述动作,得到奖励系数,其中,所述执行所述动作表示将选出的计算任务放入选择的计算节点中执行的行为;
根据所述奖励系数和评价函数,计算所述动作的评价值,直至所述动作的评价值不再增加或者达到最大迭代次数或者达到最大迭代时间;
选取评价值最大的动作对应的计算节点作为所述目标计算节点。
可选的,所述当前时刻的状态对应至少一个动作,每个动作对应一个所述计算任务。
可选的,所述目标输入信息还包括:各计算任务的排队时长以及各计算任务的QoS等级对应的加权系数;
所述奖励系数采用如下公式计算:
其中,r为所述奖励系数,为第i个计算任务的QoS等级对应的加权系数,Ti为第i个任务的排队时长,m为当前状态下的动作对应的计算任务的数量。
可选的,根据所述当前时刻的状态选择动作,包括:
基于TOPSIS算法为选出的计算任务选择计算节点。
可选的,基于TOPSIS算法为选出的计算任务选择计算节点,包括:
针对每个计算节点的每个资源,执行以下步骤:计算所述计算节点的所述资源的空闲率以及所述节点集群的所述资源的负载均值;计算所述计算节点的所述资源的集群均衡性,所述集群均衡性根据所述资源的利用率和所述负载均值得到;根据所述计算节点的所述资源的空闲率和所述集群均衡性,计算所述计算节点的所述资源的评价指标;
根据各计算节点的各资源的评价指标,构成判断矩阵;
根据所述判断矩阵,计算各计算节点的各资源的评价指标的权重;
根据所述权重和所述判断矩阵,得到各计算节点的各资源的评价指标的加权决策项,所有所述加权决策项构成加权决策矩阵;
将所有计算节点上每种评价指标的最大值作为加权决策矩阵的正理想解,将所有计算节点上每种评价指标的最小值作为加权决策矩阵的负理想解;
计算各计算节点的每种评价指标到所述正理想解和负理想解的欧式距离;
根据所述欧式距离,为选出的计算任务选择计算节点。
可选的,所述资源的空闲率采用如下公式计算:
(REmax-REmea)/REmax,其中,REmax表示所述资源的利用率上线,REmea表示当前测量到的所述资源的利用率值;
和/或
所述资源的负载均值采用如下公式计算:其中,REavg表示所述资源的负载均值,n表示所述计算节点的数量,REk表示当前测量到的第k个计算节点的所述资源的利用率值;
和/或
所述资源的集群均衡性采用如下公式计算:(REavg-REmea)/REavg;
和/或
所述资源的评价指标采用如下公式计算:xi 0=λQoST/Tmax(REmax-REmea)/REmax+(REavg-REmea)/REavg,其中,为所述资源的评价指标,λQoS表示当前计算任务的QoS等级,T表示当前计算任务的排队时长,Tmax表示当前计算任务的最大排队时长;
和/或
所述权重采用如下公式计算:其中,dj为第i个计算节点的第j个资源的评价指标的差异系数,dj=1-ej,ej为第i个计算节点的第j个资源的熵值,k=1/ln(n)>0,Uij为第i个计算节点的第j个资源的评价指标在所述判断矩阵中所占的比重,/>为第i个计算节点的第j个资源的评价指标,i=1,2,…,n;j=1,2,…,p;n为所述计算节点的数量,p为所述资源的种类数量;
和/或
所述加权决策矩阵中的采用如下公式计算:
其中,为第i个计算节点的第j个资源的评价指标的加权决策项。
第二方面,本发明实施例提供了一种资源调度***,包括:
获取模块,用于获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
强化学习模块,用于采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
第三方面,本发明实施例提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上述第一方面所述的资源调度方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的资源调度方法的步骤。
在本发明实施例中,采用基于强化学习的资源调度算法模型,对节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息进行强化学习,可以实现多计算任务抢占资源的情况下,资源的优化调度,提高节点集群整体的资源利用率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的资源调度***的整体框架示意图;
图2为本发明实施例的资源调度方法的流程示意图;
图3为本发明实施例的资源调度算法模型的工作过程示意图;
图4为本发明实施例的资源调度***的结构示意图;
图5为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例中的资源调度***的整体框架进行说明。
通常Kubernetes集群节点分为两种角色:Master节点和Node节点。Master节点是整个集群的管理中心,负责集群管理、容器调度、状态存储等;Node节点是实际上的工作节点(即计算节点),负责运行具体的容器。Kubernetes调度器代码采用可插拔的插件化设计思路,包括核心部分和可插拔部分。其中扩展调度器(包括资源调度算法)属于可插拔部分。这种插件化设计允许Kubernetes调度器一些功能通过插件的方式实现,方便代码修改和功能扩展,同时保持Kubernetes调度器核心代码简单可维护。本发明实施例中,基于插件特性,引入扩展调度器。在扩展调度器中,基于Prometheus(是一个服务监控***和时间序列数据库)采集各Node节点的资源信息,资源信息例如包括以下至少一项:CPU信息、内存信息、硬盘存储信息、硬盘IO(读/写)信息、网络信息、文件数信息等,然后基于资源调度算法完成资源调度,通过API(Application Programming Interface,应用程序编程接口)接口,将资源调度结果(例如计算节点的分数结果等)发送给Kubernetes调度器,实现容器资源调度。
图1中,Node-exporter位于Node节点上,用于采集node节点(物理机、虚拟机或云主机等)的资源信息。
Kubernetes调度器是kubernetes***的核心组件之一,主要负责整个集群资源的调度功能,根据特定的资源调度算法,将Pod调度到最优的Node节点上面去,从而更加合理、更加充分的利用集群的资源。
请参考图2,本发明实施例提供一种资源调度方法,包括:
步骤21:获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
本发明实施例中,所述资源调度方法由Kubernetes集群***中的Master节点执行。
本发明实施例中,可选的,所述计算节点可以为虚拟机、物理机或云主机等。
本发明实施例中,可选的,所述资源为容器资源,可以包括以下至少一项:CPU信息、内存信息、硬盘存储信息、硬盘IO(读/写)信息、网络信息、文件数信息等。
本发明实施例中,可选的,所述计算任务为至少一个。
步骤22:采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
在本发明实施例中,采用基于强化学习的资源调度算法模型,对节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息进行强化学习,可以实现多计算任务抢占资源的情况下,资源的优化调度,提高节点集群整体的资源利用率。
本发明实施例中,可选的,所述得到资源调度结果之后,还包括:
通过API接口将所述资源调度结果发送给Kubernetes调度器,由Kubernetes调度器根据所述资源调度结果将所述计算任务调度到所述目标计算节点执行。
下面对基于强化学习的资源调度算法模型的原理进行说明。
通常一个应用(即计算任务)在一个Pod容器中运行,当多个应用同时启动时将出现资源抢占情况,且多应用抢占资源执行组合多种多样,在计算节点资源利用率约束条件下,实现多应用计算任务执行时间最短的全局最优过程,属于NP(NondeterministicPolynomially,非确定性多项式)问题。因此选择强化学习方法进行优化,即通过多次迭代,快速寻找接近最优的次优解,而不是直接求解最优值。
基于强化学习的资源调度算法模型,需要对其四元组<S,A,r,f>进行定义,分别是状态空间S、动作空间A、奖励系数r和状态转移函数f,状态转移函数f由强化学习中的深度神经网络实现。实际资源调度优化分析环境可以认为计算任务环境和计算节点的资源环境两者的组合。其中状态空间由计算任务等待队列中各计算节点的资源需求信息和各计算节点的资源信息构成。
请参考图3,以计算节点为虚拟机,资源为虚拟机的CPU和内存为例,对本发明实施例的资源调度算法模型的工作过程举例进行说明。
图3中,虚线左边是一个虚拟机的CPU和内存资源的示意图,右边是计算任务等待队列中的计算任务的资源需求信息示意图,其中横坐标表示虚拟机的资源数量,纵坐标表示时间,假设有m个计算任务,以CPU资源为例,左边的块状图宽度(资源方向的宽度)是5,代表虚拟机共有5个CPU,块状图的长度(时间方向的长度)是5,表示在5个单位时间,虚拟机的资源分配给计算任务的使用情况。如果当前时刻出现虚拟机资源无法满足计算任务需求的情况,则将该计算任务延后执行(满足哪些计算任务就先执行哪些,不满足的延后执行)。当虚拟机在新单位时间有足够空闲资源时,执行处于等待状态的计算任务。计算任务等待队列根据历史执行信息,预估每个计算任务的CPU和内存资源需求。上述是一个虚拟机的资源的状态空间的构建方法,多个虚拟机的资源的状态空间,也采用同样方法构建。
在本发明实施例中,动作代表在当前节点集群运行状态下,强化学习的智能体从计算任务等待队列中选出任意数量的计算任务,并将之放入节点集群预定执行的行为。假设计算任务等待队列中已存在m个等待的计算任务,智能体的可选范围就是m 个计算任务的任何子集,这就需要大小为2m个动作空间,这使得动作的设计变得非常困难。为降低动作空间大小,本发明实施例中,允许智能体同一单位时间进行多次动作,每次动作只能选取一个计算任务。这样就可以通过多次动作在同一单位时间选择多个等待任务,降低动作空间。具体设计如下:动作空间不妨设置为其中1到m表示计算任务等待队列的1到m号计算任务,表示强化学习的智能体选择这个计算任务放入节点集群执行;/>表示空集,智能体如果选择此值,表示不选择新的计算任务,将之前安排的计算任务作为当前时间单位的行动策略。
奖励函数设计奖励是环境提供给智能体的一个可以量化的反馈信号,它的主要用途是评价智能体在当前状态执行当前动作的好坏。为减少峰值期间所有计算任务的等待时间,采用各计算任务的加权排队时长作为奖励函数。同时考虑不同计算任务的QoS(Qualityof Service,服务质量)QoS等级,每个计算任务排队时长增加相应加权系数。总体奖励系数r可以表示如下: 其中,/>表示第i个计算任务的QoS等级对应的加权系数,Ti表示第i个计算任务的排队时长,m为当前状态下的动作对应的计算任务的数量。
本发明实施例中,可选的,采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,包括:
步骤221:根据所述各计算节点的资源信息和所述各计算任务的资源需求信息,构建当前时刻的状态;
步骤222:根据所述当前时刻的状态选择动作,所述动作表示从所述计算任务等待队列中选出计算任务,为选出的计算任务选择计算节点,并将选出的计算任务放入选择的计算节点中预定执行的行为;
本发明实施例中,为了减少动作空间大小,可选的,当前时刻的动作为一个或多个,每个动作对应一个计算任务。
步骤223:执行所述动作,得到奖励系数,其中,所述执行所述动作表示将选出的计算任务放入选择的计算节点中执行的行为;
本发明实施例中,可选的,所述目标输入信息还包括:各计算任务的排队时长以及各计算任务的QoS等级对应的加权系数;
所述奖励系数采用如下公式计算:
其中,r为所述奖励系数,为第i个计算任务的QoS等级对应的加权系数,Ti为第i个任务的排队时长,m为当前状态下的动作对应的计算任务的数量。
步骤224:根据所述奖励系数和评价函数,计算所述动作的评价值,直至所述动作的评价值不再增加或者达到最大迭代次数或者达到最大迭代时间;
步骤225:选取评价值最大的动作对应的计算节点作为所述目标计算节点。
本发明实施例中,可选的,所述方法还包括:
根据所述最大的评价值对所述资源调度算法模型的模型参数进行更新。
下面举例对本发明实施例的基于强化学习的资源调度算法模型的工作过程进行详细说明。
在强化学习中,可以通过actor-critic(A3C)进行策略π(At|st|;θ)和估计状态的价值函数V(st;θv)同步计算,有利于加快收敛速度,提高优化效果,其中,策略π(At|st|;θ)是指在状态st选择动作At的概率,At是t时刻的动作空间,st是t时刻的状态空间,θ是资源调度算法模型的参数,θv是参数向量。
具体计算过程如下:
资源调度算法模型输入的目标输入信息包括:
A3C神经网络的参数θ和w,其中,θ是表演者(Actor)的策略权重,w是评价者(Critic)的值的权重;
环境变量:各计算任务的排队时长、计算节点的数量、CPU利用率、内存利用率、硬盘存储利用率、硬盘IO利用率等。
1.更新时间序列t=1;
2.重置Actor和Critic的梯度更新量:dθ←0,dw←0dθ←0,dw←0;
3.从公共部分的A3C神经网络同步参数到本线程(每个动作一个线程)的神经网络:θ′=θ,w′=w;
4.tstart=t,初始化状态st;
5.基于策略π(At|st|;θ)选择动作At;
6.执行动作At得到奖励rt和新状态st+1;
7.t←t+1,T←T+1,T是计算任务的排队时长,t是时间序列;
8.如果st是终止状态,或t-tstart==ttotal(即当前时间等于总的迭代时间),则进入步骤9,否则回到步骤5;st是终止状态是指Q值不在增加,或者达到最大迭代次数;Q值是在状态st时选择动作At的Q(s,a)值,代表预期未来累积奖励;
9.计算最后一个时间序列位置st的Q(S,t)):
Q(S,t)=0(如果st是终止状态);
Q(S,t)=V(St,w′)如果st不是终止状态。
10.针对每个时刻i,i∈(t-1,t-2,..tstart):
1)计算每个时刻的Q(S,i):Q(S,i)=ri+γQ(S,i+1);γ是加权系数;本发明实施例中,可以根据TOPSIS算法得到的结果计算Q’值,如果Q’>Q,则选择TOPSIS算法结果,Q=Q’,进入下一步迭代过程;
2)累计Actor的本地梯度更新: 其中H表示熵,其中,c为加权系数;
3)累计Critic的本地梯度更新:
11.更新全局神经网络的模型参数:θ=θ-αdθ,w=w-βdw;α和β表示权重;
12.如果T>Tmax,则算法结束,输出公共部分的A3C神经网络参数θ和我w,否则进入步骤3。
由于强化学习是全局最优渐近迭代优化算法,收敛速度慢。为加快收敛速度,本发明实施例中,可以对强化学习的迭代过程进行优化,可选的,可以基于TOPSIS算法优化强化学习的迭代过程,进行局部最优求解,提高计算效率。
可选的,根据所述当前时刻的状态选择动作,包括:基于TOPSIS算法为选出的计算任务选择计算节点。
可选的,基于TOPSIS算法为选出的计算任务选择计算节点包括:
步骤1:针对每个计算节点的每个资源,执行以下步骤:计算所述计算节点的所述资源的空闲率以及所述节点集群的所述资源的负载均值;计算所述计算节点的所述资源的集群均衡性,所述集群均衡性根据所述资源的利用率和所述负载均值得到;根据所述计算节点的所述资源的空闲率和所述集群均衡性,计算所述计算节点的所述资源的评价指标;
本发明实施例中,可选的,所述资源的空闲率采用如下公式计算:
(REmax-REmea)/REmax,其中,REmax表示所述资源的利用率上线,REmea表示当前测量到的所述资源的利用率值。
本发明实施例中,可选的,所述资源的负载均值采用如下公式计算:其中,REavg表示所述资源的负载均值,n表示所述计算节点的数量,REk表示当前测量到的第k个计算节点的所述资源的利用率值;
本发明实施例中,可选的,所述资源的集群均衡性采用如下公式计算:(REavg-REmea)/REavg;
本发明实施例中,可选的,所述资源的评价指标采用如下公式计算:其中,/>为所述资源的评价指标,λQoS表示当前计算任务的QoS等级,T表示当前计算任务的排队时长,Tmax表示当前计算任务的最大排队时长;
步骤2:根据各计算节点的各资源的评价指标,构成判断矩阵;
步骤3:根据所述判断矩阵,计算各计算节点的各资源的评价指标的权重;
本发明实施例,可选的,所述权重采用如下公式计算:其中,dj为第i个计算节点的第j个资源的评价指标的差异系数,dj=1-ej,ej为第i个计算节点的第j个资源的熵值,/>k=1/ln(n)>0,Uij为第i个计算节点的第j个资源的评价指标在所述判断矩阵中所占的比重,/>为第i个计算节点的第j个资源的评价指标,i=1,2,…,n;j=1,2,…,p;n为所述计算节点的数量,p为所述资源的种类数量;
步骤4:根据所述权重和所述判断矩阵,得到各计算节点的各资源的评价指标的加权决策项,所有所述加权决策项构成加权决策矩阵;
本发明实施例中,可选的,所述加权决策矩阵中的采用如下公式计算:
其中,为第i个计算节点的第j个资源的评价指标的加权决策项。
步骤5:将所有计算节点上每种评价指标的最大值作为加权决策矩阵的正理想解,将所有计算节点上每种评价指标的最小值作为加权决策矩阵的负理想解;
步骤6:计算各计算节点的每种评价指标到所述正理想解和负理想解的欧式距离;
步骤7:根据所述欧式距离,为选出的计算任务选择计算节点。
下面举例对上述基于TOPSIS算法优化强化学习的迭代过程进行说明。
步骤1:首先计算各计算节点的资源空闲率(CPU,内存,网络带宽,硬盘,硬盘IO等)以及节点集群的负载均值,即所有计算节点的各项资源取平均值。
假设表示第i个计算节点的第0个资源,假如第0个资源是CPU利用率,则:
CPU资源空闲率可以表示为:(CPUmax-CPUmea)/CPUmax,其中CPUmax表示CPU的利用率上限,CPUmea表示当前测量得到的利用率值。
节点集群CPU的负载均值为:其中n表示节点集群中计算节点数量。
则当前计算节点的资源的集群均衡性表示为:(CPUavg-CPUmea)/CPUavg;综合考虑CPU的资源空闲率和集群均衡性得到评价指标为:
其中,λQos表示当前计算任务的QoS等级,T表示当前计算任务的排队时长,Tmax表示最大排队时长。排队时长越大,则空闲资源在评价指标中占比越高。以此类推,采用同样方法计算内存、网络带宽、硬盘存储和硬盘IO等p个资源的评价指标。
以上述评价指标构成n个计算节点的资源的判断矩阵:
步骤2:然后计算第i个计算节点的第j个资源的评价指标的值在该判断矩阵中所占的比重其中i=1,2,…,n;j=1,2,…,p。
步骤3:计算第j个评价指标的熵值:其中k=1/ln(n)>0,满足ej>=0。
步骤4:计算评价指标的差异系数dj=1-ej。
步骤5:计算各指标权重
由于不同的Pod应用对计算节点评价指标的需求敏感程度不同,可以分为内存倾向型、CPU倾向型、IO速率倾向型,带宽倾向型。因此有必要分别为计算节点的资源的评价指标设置不同的权重。
步骤6:根据所述权重和所述判断矩阵,得到各计算节点的各资源的评价指标的加权决策项,所有所述加权决策项构成加权决策矩阵;
本发明实施例中,可选的,所述加权决策矩阵中的采用如下公式计算:
其中,为第i个计算节点的第j个资源的评价指标的加权决策项。
步骤7:计算正负理想解,其中,将所有计算节点上每种评价指标的最大值作为加权决策矩阵的正理想解,将所有计算节点上每种评价指标的最小值作为加权决策矩阵的负理想解,即:
其中Z+表示加权决策矩阵的正理想解,由所有候选计算节点上每种评价指标参数的最大值构成;Z-表示加权决策矩阵的负理想解,由所有候选计算节点上每种评价指标参数的最小值构成。
步骤8:计算每个候选计算节点到正、负理想解的距离:
其中,D+和D-分别代表各候选计算节点到正负理想解的欧式距离。
步骤9:计算每个候选计算节点与最优候选计算节点的相对贴合度
步骤10:根据贴合度Si最大值,为当前计算任务选择相应的计算节点。
请参考图4,本发明实施例还提供一种资源调度***40,包括:
获取模块41,用于获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
强化学习模块42,用于采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
可选的,所述资源调度***还包括:
发送模块,用于通过API接口将所述资源调度结果发送给Kubernetes调度器,由Kubernetes调度器根据所述资源调度结果将所述计算任务调度到所述目标计算节点执行。
可选的,所述强化学习模块42,用于根据所述各计算节点的资源信息和所述各计算任务的资源需求信息,构建当前时刻的状态;根据所述当前时刻的状态选择动作,所述动作表示从所述计算任务等待队列中选出计算任务,为选出的计算任务选择计算节点,并将选出的计算任务放入选择的计算节点中预定执行的行为;执行所述动作,得到奖励系数,其中,所述执行所述动作表示将选出的计算任务放入选择的计算节点中执行的行为;根据所述奖励系数和评价函数,计算所述动作的评价值,直至所述动作的评价值不再增加或者达到最大迭代次数或者达到最大迭代时间;选取评价值最大的动作对应的计算节点作为所述目标计算节点。
可选的,所述当前时刻的状态对应至少一个动作,每个动作对应一个所述计算任务。
可选的,所述目标输入信息还包括:各计算任务的排队时长以及各计算任务的QoS等级对应的加权系数;
所述奖励系数采用如下公式计算:
其中,r为所述奖励系数,为第i个计算任务的QoS等级对应的加权系数,Ti为第i个任务的排队时长,m为当前状态下的动作对应的计算任务的数量。
可选的,所述强化学习模块42,还用于基于TOPSIS算法为选出的计算任务选择计算节点。
可选的,所述强化学习模块42,还用于针对每个计算节点的每个资源,执行以下步骤:计算所述计算节点的所述资源的空闲率以及所述节点集群的所述资源的负载均值;计算所述计算节点的所述资源的集群均衡性,所述集群均衡性根据所述资源的利用率和所述负载均值得到;根据所述计算节点的所述资源的空闲率和所述集群均衡性,计算所述计算节点的所述资源的评价指标;根据各计算节点的各资源的评价指标,构成判断矩阵;根据所述判断矩阵,计算各计算节点的各资源的评价指标的权重;根据所述权重和所述判断矩阵,得到各计算节点的各资源的评价指标的加权决策项,所有所述加权决策项构成加权决策矩阵;将所有计算节点上每种评价指标的最大值作为加权决策矩阵的正理想解,将所有计算节点上每种评价指标的最小值作为加权决策矩阵的负理想解;计算各计算节点的每种评价指标到所述正理想解和负理想解的欧式距离;根据所述欧式距离,为选出的计算任务选择计算节点。
可选的,所述资源的空闲率采用如下公式计算:
(REmax-REmea)/REmax,其中,REmax表示所述资源的利用率上线,REmea表示当前测量到的所述资源的利用率值;
和/或
所述资源的负载均值采用如下公式计算:其中,REavg表示所述资源的负载均值,n表示所述计算节点的数量,REk表示当前测量到的第k个计算节点的所述资源的利用率值;
和/或
所述资源的集群均衡性采用如下公式计算:(REavg-REmea)/REavg;
和/或
所述资源的评价指标采用如下公式计算: 其中,/>为所述资源的评价指标,λQoS表示当前计算任务的QoS等级,T表示当前计算任务的排队时长,Tmax表示当前计算任务的最大排队时长;
和/或
所述权重采用如下公式计算:其中,dj为第i个计算节点的第j个资源的评价指标的差异系数,dj=1-ej,ej为第i个计算节点的第j个资源的熵值,k=1/ln(n)>0,Uij为第i个计算节点的第j个资源的评价指标在所述判断矩阵中所占的比重,/>为第i个计算节点的第j个资源的评价指标,i=1,2,…,n;j=1,2,…,p;n为所述计算节点的数量,p为所述资源的种类数量;
和/或
所述加权决策矩阵中的采用如下公式计算:
其中,为第i个计算节点的第j个资源的评价指标的加权决策项。
请参考图5,本发明实施例还提供一种电子设备50,包括处理器51,存储器52,存储在存储器52上并可在所述处理器51上运行的计算机程序,该计算机程序被处理器51执行时实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (11)
1.一种资源调度方法,其特征在于,包括:
获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
2.根据权利要求1所述的方法,其特征在于,所述得到资源调度结果之后,还包括:
通过API接口将所述资源调度结果发送给Kubernetes调度器,由Kubernetes调度器根据所述资源调度结果将所述计算任务调度到所述目标计算节点执行。
3.根据权利要求1所述的方法,其特征在于,采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,包括:
根据所述各计算节点的资源信息和所述各计算任务的资源需求信息,构建当前时刻的状态;
根据所述当前时刻的状态选择动作,所述动作表示从所述计算任务等待队列中选出计算任务,为选出的计算任务选择计算节点,并将选出的计算任务放入选择的计算节点中预定执行的行为;
执行所述动作,得到奖励系数,其中,所述执行所述动作表示将选出的计算任务放入选择的计算节点中执行的行为;
根据所述奖励系数和评价函数,计算所述动作的评价值,直至所述动作的评价值不再增加或者达到最大迭代次数或者达到最大迭代时间;
选取评价值最大的动作对应的计算节点作为所述目标计算节点。
4.根据权利要求3所述的方法,其特征在于,所述当前时刻的状态对应至少一个动作,每个动作对应一个所述计算任务。
5.根据权利要求3所述的方法,其特征在于,所述目标输入信息还包括:各计算任务的排队时长以及各计算任务的QoS等级对应的加权系数;
所述奖励系数采用如下公式计算:
其中,r为所述奖励系数,为第i个计算任务的QoS等级对应的加权系数,Ti为第i个任务的排队时长,m为当前状态下的动作对应的计算任务的数量。
6.根据权利要求3所述的方法,其特征在于,根据所述当前时刻的状态选择动作,包括:
基于TOPSIS算法为选出的计算任务选择计算节点。
7.根据权利要求6所述的方法,其特征在于,基于TOPSIS算法为选出的计算任务选择计算节点选择动作,包括:
针对每个计算节点的每个资源,执行以下步骤:计算所述计算节点的所述资源的空闲率以及所述节点集群的所述资源的负载均值;计算所述计算节点的所述资源的集群均衡性,所述集群均衡性根据所述资源的利用率和所述负载均值得到;根据所述计算节点的所述资源的空闲率和所述集群均衡性,计算所述计算节点的所述资源的评价指标;
根据各计算节点的各资源的评价指标,构成判断矩阵;
根据所述判断矩阵,计算各计算节点的各资源的评价指标的权重;
根据所述权重和所述判断矩阵,得到各计算节点的各资源的评价指标的加权决策项,所有所述加权决策项构成加权决策矩阵;
将所有计算节点上每种评价指标的最大值作为加权决策矩阵的正理想解,将所有计算节点上每种评价指标的最小值作为加权决策矩阵的负理想解;
计算各计算节点的每种评价指标到所述正理想解和负理想解的欧式距离;
根据所述欧式距离,为选出的计算任务选择计算节点。
8.根据权利要求7所述的方法,其特征在于,
所述资源的空闲率采用如下公式计算:
(REmax-REmea)/REmax,其中,REmax表示所述资源的利用率上线,REmea表示当前测量到的所述资源的利用率值;
和/或
所述资源的负载均值采用如下公式计算:其中,REavg表示所述资源的负载均值,n表示所述计算节点的数量,REk表示当前测量到的第k个计算节点的所述资源的利用率值;
和/或
所述资源的集群均衡性采用如下公式计算:(REavg-REmea)/REavg;
和/或
所述资源的评价指标采用如下公式计算: 其中,/>为所述资源的评价指标,λQoS表示当前计算任务的QoS等级,T表示当前计算任务的排队时长,Tmax表示当前计算任务的最大排队时长;
和/或
所述权重采用如下公式计算:其中,dj为第i个计算节点的第j个资源的评价指标的差异系数,dj=1-ej,ej为第i个计算节点的第j个资源的熵值,k=1/ln(n)>0,Uij为第i个计算节点的第j个资源的评价指标在所述判断矩阵中所占的比重,/> 为第i个计算节点的第j个资源的评价指标,i=1,2,…,n;j=1,2,…,p;n为所述计算节点的数量,p为所述资源的种类数量;
和/或
所述加权决策矩阵中的采用如下公式计算:
其中,为第i个计算节点的第j个资源的评价指标的加权决策项。
9.一种资源调度***,其特征在于,包括:
获取模块,用于获取目标输入信息,所述目标输入信息包括:节点集群中各计算节点的资源信息和计算任务等待队列中各计算任务的资源需求信息;
强化学习模块,用于采用基于强化学习的资源调度算法模型,对所述目标输入信息进行强化学习,得到资源调度结果,所述资源调度结果用于指示需要调度的目标计算节点以及所述目标计算节点对应的需要调度的资源信息。
10.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至8中任一项所述的资源调度方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的资源调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211472248.9A CN116932198A (zh) | 2022-11-23 | 2022-11-23 | 资源调度方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211472248.9A CN116932198A (zh) | 2022-11-23 | 2022-11-23 | 资源调度方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932198A true CN116932198A (zh) | 2023-10-24 |
Family
ID=88383302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211472248.9A Pending CN116932198A (zh) | 2022-11-23 | 2022-11-23 | 资源调度方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932198A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971505A (zh) * | 2024-03-29 | 2024-05-03 | 苏州元脑智能科技有限公司 | 部署容器应用的方法及装置 |
-
2022
- 2022-11-23 CN CN202211472248.9A patent/CN116932198A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971505A (zh) * | 2024-03-29 | 2024-05-03 | 苏州元脑智能科技有限公司 | 部署容器应用的方法及装置 |
CN117971505B (zh) * | 2024-03-29 | 2024-06-07 | 苏州元脑智能科技有限公司 | 部署容器应用的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN115237581B (zh) | 一种面向异构算力的多策略智能调度方法和装置 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN111966484A (zh) | 一种基于深度强化学习的集群资源管理和任务调度方法及*** | |
CN115408136B (zh) | 一种基于遗传算法的rpa流程调度方法 | |
CN113485826B (zh) | 一种边缘服务器负载均衡方法、*** | |
CN114546608B (zh) | 一种基于边缘计算的任务调度方法 | |
CN115168027B (zh) | 一种基于深度强化学习的算力资源度量方法 | |
CN110119399B (zh) | 基于机器学习的业务流程优化方法 | |
CN105744006A (zh) | 一种面向多类型服务的粒子群优化用户请求调度方法 | |
CN113806018A (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN112306658A (zh) | 一种多能源***数字孪生应用管理调度方法 | |
Ye et al. | A new approach for resource scheduling with deep reinforcement learning | |
CN114638167A (zh) | 基于多智能体强化学***分配方法 | |
CN116932198A (zh) | 资源调度方法、装置、电子设备及可读存储介质 | |
CN110191015B (zh) | 基于cpi指标的云服务性能智能预测方法和装置 | |
CN111061565A (zh) | 一种Spark环境下的两段式流水线任务调度方法及*** | |
CN113608855B (zh) | 一种边缘计算中服务功能链放置的强化学习方法 | |
CN113190342B (zh) | 用于云-边协同网络的多应用细粒度卸载的方法与***架构 | |
CN112632615B (zh) | 基于混合云环境的科学工作流数据布局方法 | |
CN114090239A (zh) | 一种基于模型的强化学习的边缘资源调度方法和装置 | |
CN112698911B (zh) | 一种基于深度强化学习的云作业调度方法 | |
CN115454585A (zh) | 一种面向边缘设备深度学习模型推理的自适应批处理和并行调度*** | |
Prado et al. | On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers | |
CN111324444A (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 |