CN110362391B - 资源调度方法、装置、电子设备及存储介质 - Google Patents
资源调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110362391B CN110362391B CN201910507390.4A CN201910507390A CN110362391B CN 110362391 B CN110362391 B CN 110362391B CN 201910507390 A CN201910507390 A CN 201910507390A CN 110362391 B CN110362391 B CN 110362391B
- Authority
- CN
- China
- Prior art keywords
- queue
- resource
- amount
- app
- distributed cluster
- 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
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Abstract
本公开关于一种资源调度方法、装置、电子设备及存储介质,该方法包括:根据分布式集群的空闲资源量、分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。可见,本公开实施例中,在将分布式集群节点池中节点分配给该分布式集群中各队列之前,预先计算为分布式集群中的每个队列分配多少资源,确保每个队列分配到的资源量比较均衡,之后按照计算结果,并发地从节点池中获取一批节点为每个队列进行实际的资源分配,从而提高整个集群的资源调度性能。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种资源调度方法、装置、电子设备及存储介质。
背景技术
近年来,随着互联网技术的发展,更多、更广的数据不断产生,基于Hadoop生态的分布式集群为各类大数据应用落地提供着有力支撑。Hadoop是一种开源的分布式系统框架,在分布式存储、分布式计算以及分布式调度领域有非常广泛的应用。相关技术中,Hadoop 2.0将调度功能从JobTracker抽离成单独的调度模块yarn,通过yarn对分布式集群中的资源进行调度。但是随着集群规模的变大,yarn的调度功能逐渐成为瓶颈,导致整个集群的资源调度性能较低。
发明内容
本公开提供一种资源调度方法、装置、电子设备及存储介质,以至少解决相关技术中存在的资源调度性能较低的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种资源调度方法,所述方法包括:
根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。
可选地,作为一个实施例,所述基础配置信息包括:队列的资源量阈值;
所述根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量的步骤,包括:
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
可选地,作为一个实施例,所述基础配置信息还包括:队列的资源分配权重系数;
所述方法还包括:
如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
可选地,作为一个实施例,所述根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列的步骤,包括:
根据所述各队列的资源分配量和所述各队列中应用程序APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
可选地,作为一个实施例,所述根据所述各队列的资源分配量和所述各队列中应用程序APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP的步骤,包括:
针对所述分布式集群中的每个队列均进行以下处理:
从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述方法还包括:
如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述方法还包括:
如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
可选地,作为一个实施例,所述根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表的步骤,包括:
根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
可选地,作为一个实施例,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
根据本公开实施例的第二方面,提供一种资源调度装置,所述装置包括:
计算单元,被配置为根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
调度单元,被配置为根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。
可选地,作为一个实施例,所述基础配置信息包括:队列的资源量阈值;
所述计算单元包括:
第一分配子单元,被配置为如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
可选地,作为一个实施例,所述基础配置信息还包括:队列的资源分配权重系数;
所述计算单元还包括:
第二分配子单元,被配置为如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
第三分配子单元,被配置为如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
可选地,作为一个实施例,所述调度单元包括:
资源调度子单元,被配置为根据所述各队列的资源分配量和所述各队列中APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
可选地,作为一个实施例,所述资源调度子单元包括:
第一资源调度模块,被配置为针对所述分布式集群中的每个队列均进行以下处理:从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述资源调度子单元还包括:
第二资源调度模块,被配置为如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述资源调度子单元还包括:
更新模块,被配置为如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
可选地,作为一个实施例,所述第一资源调度模块包括:
排序子模块,被配置为根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
可选地,作为一个实施例,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的资源调度方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的资源调度方法。
根据本申请的第五方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的资源调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例中,在将分布式集群节点池中节点分配给该分布式集群中各队列之前,预先计算为分布式集群中的每个队列分配多少资源,确保每个队列分配到的资源量比较均衡,之后按照计算结果,并发地从节点池中获取一批节点为每个队列进行实际的资源分配,从而提高整个集群的资源调度性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种资源调度方法的流程图;
图2是根据一示例性实施例示出的一种资源调度方法的应用场景图;
图3是根据一示例性实施例示出的另一种资源调度方法的流程图;
图4是根据一示例性实施例示出的步骤302的一种实施方式的流程图;
图5是根据一示例性实施例示出的一种资源调度装置的框图;
图6是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
随着互联网技术的发展,需要存储和计算的数据量越来越大,如何维护分布式集群、快速调度任务到分布式集群的节点上显得非常重要。Hadoop目前作为大数据生态的工业标准,在分布式存储、分布式计算以及分布式调度领域有非常广泛的应用。相关技术中,Hadoop 2.0将调度功能从JobTracker抽离成单独的调度模块yarn,二级调度体系极大的提升了分布式集群的稳定性和扩展性。
但是,随着集群规模的变大,yarn的调度功能逐渐成为系统瓶颈,具体的,yarn提供单独调度线程调度资源的方案,调度一个container会首先会从所有父队列中选择要调度的队列,再从父队列的子队列中选择出要调度的子队列,再从子队列中选出要调度的APP(Application,应用程序),最终会为这个APP调度一个container。
由于yarn调度container需要对队列和APP进行多次排序,排序开销大,占用大量的CPU(Central Processing Unit,中央处理器)资源,并且每次只能调度一个container。随着集群规模变大,队列和APP数目也会线性增长,例如,当集群规模达到1万台,队列和APP数目上千时,调度一个container开销在十毫秒级别,调度过程中需要锁来保证数据的一致性,只能单线程调度,导致整个集群的调度性能下降很快。
为了解决上述技术问题,本公开提供了一种资源调度方法、装置、电子设备及存储介质。
下面首先对本公开提供的一种资源调度方法进行介绍。
图1是根据一示例性实施例示出的一种资源调度方法的流程图,该方法应用于分布式集群中的调度器,如图1所示,该方法可以包括以下步骤:步骤101和步骤102,其中,
在步骤101中,根据分布式集群的空闲资源量、分布式集群中各队列的当前资源占用量和各队列的基础配置信息,计算各队列的资源分配量;其中,基础配置信息用于确保将空闲资源量均衡地分配给分布式集群中的各队列。
本公开实施例中,“空闲资源量”、“资源占用量”和“资源分配量”均是指资源的大小,而不是具体的资源。其中,分布式集群的空闲资源量指的是分布式集群中空闲资源的大小,队列的当前资源占用量指的是队列当前占用的资源大小,队列的资源分配量指的是从分布式集群的空闲资源中分得的资源大小。
本公开实施例中,可以根据分布式集群的空闲资源量、分布式集群中各队列的当前资源占用量和各队列的基础配置信息,按照公平的原则计算各队列的资源分配量。
本公开实施例中,基础配置信息可以包括:队列的资源量阈值,也可以包括:队列的资源量阈值和队列的资源分配权重系数。
在本公开提供的一个实施方式中,基础配置信息包括队列的资源量阈值,此时,上述步骤101具体可以包括以下步骤:
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将分布式集群的空闲资源量依次分配给分布式集群中的各队列,得到各队列的资源分配量。
在一个例子中,分布式集群中包括3个队列,分别为队列1、队列2和队列3,分布式集群的空闲资源量为10G,队列1的当前资源占用量为2G、队列2的当前资源占用量为3G、队列3的当前资源占用量为4G,队列1、队列2和队列3的资源量阈值均为6G。由于队列1、队列2和队列3的当前资源占用量均小于资源量阈值6G,因此按照队列的当前资源占用量由小到大的顺序,将分布式集群的空闲资源量10G,依次分配给队列1、队列2和队列3。例如,资源量分配的粒度为2G,首先为队列1分配2G,此时队列1的资源量为2G+2G=4G,之后为队列2分配2G,此时队列2的资源量为3G+2G=5G,最后为队列3分配2G,此时队列3的资源量为4G+2G=6G。
在本公开提供的另一个实施方式中,基础配置信息包括队列的资源分配权重系数和队列的资源分配权重系数,此时,上述步骤101具体可以包括以下步骤:
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将分布式集群的空闲资源量依次分配给分布式集群中的各队列,得到各队列的资源分配量;
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将空闲资源量分配给分布式集群中的各队列,得到各队列的资源分配量;
在一个例子中,分布式集群中包括3个队列,分别为队列1、队列2和队列3,分布式集群的空闲资源量为10G,队列1的当前资源占用量为6G、队列2的当前资源占用量为7G、队列3的当前资源占用量为8G,队列1、队列2和队列3的资源量阈值均为6G,队列1的资源分配权重系数为0.2、队列2的资源分配权重系数为0.3,队列3的资源分配权重系数为0.5。由于队列1、队列2和队列3的当前资源占用量均大于或等于资源量阈值6G,因此按照队列的资源分配权重系数,将分布式集群的空闲资源量10G,分配给队列1、队列2和队列3,为队列1分配10G*0.2=2G,此时队列1的资源量为6G+2G=8G,为队列2分配10G*0.3=3G,此时队列2的资源量为7G+3G=10G,最后为队列3分配10G*0.5=5G,此时队列3的资源量为8G+5G=13G。
如果分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将空闲资源量依次分配给部分队列中的各队列直至该部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给分布式集群中的各队列。
在一个例子中,分布式集群中包括3个队列,分别为队列1、队列2和队列3,分布式集群的空闲资源量为10G,队列1的当前资源占用量为3G、队列2的当前资源占用量为4G、队列3的当前资源占用量为5G,队列1、队列2和队列3的资源量阈值均为5G,队列1的资源分配权重系数为0.2、队列2的资源分配权重系数为0.3,队列3的资源分配权重系数为0.5。
由于队列1和队列2的当前资源占用量均小于资源量阈值5G,因此首先按照队列的资源分配权重系数,将分布式集群的空闲资源量10G,分配给队列1和队列2,例如,资源量分配的粒度为2G,首先为队列1分配2G,此时队列1的资源量为3G+2G=5G,之后为队列2分配2G,此时队列2的资源量为4G+2G=6G,此时,分布式集群的空闲资源量剩余10G-2G-2G=6G。
由于队列1和队列2各分得2G资源量后均达到对应的资源量阈值5G、并且空闲资源量仍有剩余,因此按照队列的资源分配权重系数,将分布式集群的剩余空闲资源量6G,分配给队列1、队列2和队列3,为队列1分配6G*0.2=1.2G,此时队列1的资源量为5G+1.2G=6.2G,为队列2分配6G*0.3=1.8G,此时队列2的资源量为6G+1.8G=7.8G,最后为队列3分配6G*0.5=3G,此时队列3的资源量为5G+3G=8G。
可见,本公开实施例中,可以通过队列的资源分配权重系数和队列的资源分配权重系数,将分布式集群的空闲资源量均衡地分配给各队列,以保证每个队列均能够正常地工作。
在步骤102中,根据各队列的资源分配量,将分布式集群节点池中的节点分配给各队列。
本公开实施例中,在计算得到每个队列的资源分配量后,并发地从节点池中选择一批节点进行实际的资源分配。
为了便于理解,结合图2所示的应用场景图进行描述,如图2所示,分布式集群中包括N个队列,分别为队列1、队列2,…,队列N,首先计算为队列1至队列N中每个队列分配多少资源量,之后根据计算结果并行地从节点池中为每个队列选择一批节点,在选择的节点上为每个队列中的APP分配container;其中,container为封装内存、CPU、磁盘和网络等资源的容器。
由上述实施例可见,该实施例中,在将分布式集群节点池中节点分配给该分布式集群中各队列之前,预先计算为分布式集群中的每个队列分配多少资源,确保每个队列分配到的资源量比较均衡,之后按照计算结果,并发地从节点池中获取一批节点为每个队列进行实际的资源分配,从而提高整个集群的资源调度性能。
此外,相关技术中,yarn在进行资源调度时,会首先选择一个节点,再选择一个APP,在调度APP过程中不能看到全部的节点信息,很难做调度决策。例如,如果一个APP想调度一个container到CPU比较空闲的节点上,由于在调度时只能看到当前节点,不能看到全部节点的CPU信息,因此很难做调度决策。为了解决上述技术问题,本公开还提供了另一种资源调度方法。
图3是根据一示例性实施例示出的另一种资源调度方法的流程图,本公开实施例中,可以在图1所示实施例的基础上,为队列中的APP配置对应的调度策略,根据调度策略为队列中的APP分配资源,以提高资源分配的合理性,此时,如图3所示,该方法可以包括以下步骤:步骤301和步骤302,其中,
在步骤301中,根据分布式集群的空闲资源量、分布式集群中各队列的当前资源占用量和各队列的基础配置信息,计算各队列的资源分配量;其中,基础配置信息用于确保将空闲资源量均衡地分配给分布式集群中的各队列。
本公开实施例中的步骤301与图1所示实施例中的步骤101类似,在此不再赘述,详细内容请见图1所示实施例中步骤101的内容。
在步骤302中,根据各队列的资源分配量和各队列中APP对应的调度策略,将分布式集群节点池中的节点分配给各队列中的APP;其中,调度策略用于对节点池中的节点进行打分排序。
本公开实施例中,调度策略可以包括下述任一种:中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
本公开实施例中,在进行实际资源分配时,可以针对分布式集群中的每个队列均进行以下处理:从队列中选择一个APP,并获取该APP对应的调度策略;根据调度策略对分布式集群节点池中的节点进行打分排序,得到排序列表;根据排序列表,从节点池中选出分数最高的节点,并在分数最高的节点上为APP分配container;如果在分数最高的节点上分配container成功,则确定为APP分配的资源量是否达到APP所需的资源量,如果达到APP所需的资源量,则从队列中选择下一APP进行资源分配直至为队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到APP所需的资源量,则继续从节点池中选出调度策略对应的分数最高的节点,并为APP分配container直至为APP分配的资源量达到该APP所需的资源量。如果在分数最高的节点上分配container失败,则继续从节点池中选出调度策略对应的分数最高的节点,并为APP分配container直至为该APP分配的资源量达到该APP所需的资源量。
具体的,在本公开提供的一个实施方式中,如图4所示,上述步骤302具体可以包括以下步骤:针对分布式集群中的每个队列均进行以下步骤401~步骤408的处理,其中,
在步骤401中,确定为队列中APP分配资源量的总和是否达到该队列的资源分配量;如果是,则执行步骤408,否则执行步骤402。
本公开实施例中,根据队列的资源分配量为队列分配节点资源,本质上是为队列中的APP分配节点资源。如果为队列中APP分配节点资源的资源量之和达到了该队列的资源分配量,则表明为该队列分配节点资源的资源量达到了该队列的资源分配量,此时停止为该队列进行分配节点资源。如果为队列中APP分配节点资源的资源量之和未达到该队列的资源分配量,则表明为该队列分配节点资源的资源量未达到该队列的资源分配量,此时继续为该队列中的APP分配节点资源。
在步骤402中,从队列中选择一个APP,并获取该APP对应的调度策略。
本公开实施例中,在为队列中的APP分配节点资源时,首先从队列中选择一个APP,获取该APP对应的调度策略;其中,该调度策略用于为该APP选择合适的节点。
在步骤403中,根据调度策略对分布式集群节点池中的节点进行打分排序,得到排序列表。
本公开实施例中,排序列表中记录有各节点的分数和排列顺序信息。
在一个例子中,一个APP想调度一个container到CPU比较空闲的节点上,调度排序时可以按照节点CPU空闲情况进行打分,CPU越空闲的节点分数越高。
本公开实施例中,为了降低节点排序开销,可以从节点池中选出一批节点而不是选出全部节点,进行打分排序,此时,上述步骤403具体可以包括以下步骤:根据调度策略对分布式集群节点池中的部分节点进行打分排序,得到排序列表。
在步骤404中,根据排序列表从节点池中选出分数最高的节点,并在分数最高的节点上为APP分配container。
接步骤403中的实例,从节点池中选出CPU最空闲的节点(即分数最高的节点),并在CPU最空闲的节点上为APP分配container。
在步骤405中,确定分配container是否成功;如果是,则执行步骤406,否则执行步骤403。
本公开实施例中,如果分配container成功,则确定为APP分配的资源量是否达到该APP所需的资源量;如果分配container失败,则重复执行步骤403至步骤405的操作。
在步骤406中,确定为APP分配的资源量是否达到该APP所需的资源量;如果是,则执行步骤407,否则执行步骤403。
本公开实施例中,如果为APP分配的资源量达到该APP所需的资源量,则选择下一APP进行资源分配,其中,下一APP的资源分配过程与步骤402至步骤406的过程类似。
本公开实施例中,如果为APP分配的资源量未达到该APP所需的资源量,则继续为该APP进行资源分配,其中,资源分配过程与步骤402至步骤406的过程类似。
在步骤407中,选择下一APP进行资源分配。
在步骤408中,结束该队列的资源分配。
可见,本公开实施例中,可以为队列中的APP配置对应的调度策略,根据调度策略的为队列中的APP分配资源,以提高资源分配合理性。
本公开实施例中,如果在分数最高的节点上分配container成功,则可以重新计算分数最高的节点的分数,并根据重新计算的结果,对排序列表进行更新,而不必每次对大量节点进行排序,降低节点排序开销。
本公开实施例中,在进行实际节点资源分配之前,可以对分布式集群的状态进行记录得到初始状态信息,在实际节点资源分配之后,将节点资源分配信息融合到初始状态信息中,得到最新的状态信息,以降低频繁更新分布式集群状态信息所导致的锁竞争问题。
由上述实施例可见,该实施例中,在将分布式集群节点池中节点分配给该分布式集群中各队列之前,预先计算为分布式集群中的每个队列分配多少资源,确保每个队列分配到的资源量比较均衡,之后按照计算结果,并发地从节点池中获取一批节点为每个队列进行实际的资源分配,从而提高整个集群的资源调度性能。此外,还可以为队列中的APP配置对应的调度策略,根据调度策略为队列中的APP分配节点资源,从而提高资源分配的合理性。
图5是根据一示例性实施例示出的一种资源调度装置的框图,如图5所示,资源调度装置500,可以包括:计算单元501和调度单元502,其中,
计算单元501,被配置为根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
调度单元502,被配置为根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。
由上述实施例可见,该实施例中,在将分布式集群节点池中节点分配给该分布式集群中各队列之前,预先计算为分布式集群中的每个队列分配多少资源,确保每个队列分配到的资源量比较均衡,之后按照计算结果,并发地从节点池中获取一批节点为每个队列进行实际的资源分配,从而提高整个集群的资源调度性能。
可选地,作为一个实施例,所述基础配置信息包括:队列的资源量阈值;
所述计算单元501,可以包括:
第一分配子单元,被配置为如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
可选地,作为一个实施例,所述基础配置信息还包括:队列的资源分配权重系数;
所述计算单元501,还可以包括:
第二分配子单元,被配置为如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
第三分配子单元,被配置为如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
可选地,作为一个实施例,所述调度单元502,可以包括:
资源调度子单元,被配置为根据所述各队列的资源分配量和所述各队列中APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
可选地,作为一个实施例,所述资源调度子单元,可以包括:
第一资源调度模块,被配置为针对所述分布式集群中的每个队列均进行以下处理:从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述资源调度子单元,还可以包括:
第二资源调度模块,被配置为如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
可选地,作为一个实施例,所述资源调度子单元,还可以包括:
更新模块,被配置为如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
可选地,作为一个实施例,所述第一资源调度模块,可以包括:
排序子模块,被配置为根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
可选地,作为一个实施例,所述调度策略,可以包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明,相关之处参见方法实施例的部分说明即可。
图6是根据一示例性实施例示出的一种电子设备的结构示意图。例如,电子设备可以被提供为一服务器。
如图6所示,电子设备600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述方法。
电子设备600还可以包括一个电源组件626被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(I/O)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
根据本公开的一个实施例,本公开还提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述任一方法实施例所述的资源调度方法。
根据本公开的一个实施例,本公开还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述任一方法实施例所述的资源调度方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
根据本公开的一个实施例,本公开还提供了一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述任一方法实施例所述的资源调度方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
A1、一种资源调度方法,所述方法包括:
根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。
A2、根据A1所述的方法,所述基础配置信息包括:队列的资源量阈值;
所述根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量的步骤,包括:
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
A3、根据A2所述的方法,所述基础配置信息还包括:队列的资源分配权重系数;
所述方法还包括:
如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
A4、根据A1所述的方法,所述根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列的步骤,包括:
根据所述各队列的资源分配量和所述各队列中应用程序APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
A5、根据A4所述的方法,所述根据所述各队列的资源分配量和所述各队列中应用程序APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP的步骤,包括:
针对所述分布式集群中的每个队列均进行以下处理:
从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
A6、根据A5所述的方法,所述方法还包括:
如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
A7、根据A5所述的方法,所述方法还包括:
如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
A8、根据A5所述的方法,所述根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表的步骤,包括:
根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
A9、根据A4至A8任一项所述的方法,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
A10、一种资源调度装置,所述装置包括:
计算单元,被配置为根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
调度单元,被配置为根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列。
A11、根据A10所述的装置,所述基础配置信息包括:队列的资源量阈值;
所述计算单元包括:
第一分配子单元,被配置为如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
A12、根据A11所述的装置,所述基础配置信息还包括:队列的资源分配权重系数;
所述计算单元还包括:
第二分配子单元,被配置为如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
第三分配子单元,被配置为如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
A13、根据A10所述的装置,所述调度单元包括:
资源调度子单元,被配置为根据所述各队列的资源分配量和所述各队列中APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
A14、根据A13所述的装置,所述资源调度子单元包括:
第一资源调度模块,被配置为针对所述分布式集群中的每个队列均进行以下处理:从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
A15、根据A14所述的装置,所述资源调度子单元还包括:
第二资源调度模块,被配置为如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
A16、根据A14所述的装置,所述资源调度子单元还包括:
更新模块,被配置为如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
A17、根据A14所述的装置,所述第一资源调度模块包括:
排序子模块,被配置为根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
A18、根据A13至A17任一项所述的装置,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
Claims (16)
1.一种资源调度方法,其特征在于,所述方法包括:
根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
针对所述分布式集群中的每个队列均进行以下处理:
从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量;其中,所述调度策略用于对所述节点池中的节点进行打分排序。
2.根据权利要求1所述的方法,其特征在于,所述基础配置信息包括:队列的资源量阈值;
所述根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量的步骤,包括:
如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
3.根据权利要求2所述的方法,其特征在于,所述基础配置信息还包括:队列的资源分配权重系数;
所述方法还包括:
如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
6.根据权利要求1所述的方法,其特征在于,所述根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表的步骤,包括:
根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
8.一种资源调度装置,其特征在于,所述装置包括:
计算单元,被配置为根据分布式集群的空闲资源量、所述分布式集群中各队列的当前资源占用量和所述各队列的基础配置信息,计算所述各队列的资源分配量,其中,所述基础配置信息用于确保将所述空闲资源量均衡地分配给所述各队列;
调度单元,被配置为根据所述各队列的资源分配量,将所述分布式集群节点池中的节点分配给所述各队列;
所述调度单元包括:
资源调度子单元,被配置为根据所述各队列的资源分配量和所述各队列中APP对应的调度策略,将所述分布式集群节点池中的节点分配给所述各队列中的APP;其中,所述调度策略用于对所述节点池中的节点进行打分排序;
所述资源调度子单元包括:
第一资源调度模块,被配置为针对所述分布式集群中的每个队列均进行以下处理:从队列中选择一个APP,并获取所述APP对应的调度策略;
根据所述调度策略对所述分布式集群节点池中的节点进行打分排序,得到排序列表;
根据所述排序列表,从所述节点池中选出分数最高的节点,并在所述分数最高的节点上为所述APP分配container;
如果在所述分数最高的节点上分配container成功,则确定为所述APP分配的资源量是否达到所述APP所需的资源量,如果达到所述APP所需的资源量,则从队列中选择下一APP进行资源分配直至为所述队列中APP分配资源量的总和达到该队列的资源分配量;如果未达到所述APP所需的资源量,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
9.根据权利要求8所述的装置,其特征在于,所述基础配置信息包括:队列的资源量阈值;
所述计算单元包括:
第一分配子单元,被配置为如果分布式集群中所有队列均满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述分布式集群的空闲资源量依次分配给所述分布式集群中的各队列,得到所述各队列的资源分配量。
10.根据权利要求9所述的装置,其特征在于,所述基础配置信息还包括:队列的资源分配权重系数;
所述计算单元还包括:
第二分配子单元,被配置为如果所述分布式集群中所有队列均满足以下条件:队列的当前资源占用量大于或等于该队列的资源量阈值,则按照队列的资源分配权重系数,将所述空闲资源量分配给所述分布式集群中的各队列,得到所述各队列的资源分配量;
第三分配子单元,被配置为如果所述分布式集群中部分队列满足以下条件:队列的当前资源占用量小于该队列的资源量阈值,则按照队列当前资源占用量由小到大的顺序,将所述空闲资源量依次分配给所述部分队列中的各队列直至所述部分队列中各队列分配到的资源量达到对应的资源量阈值,如果空闲资源量仍有剩余,则按照队列的资源分配权重系数,将剩余的空闲资源量分配给所述分布式集群中的各队列。
11.根据权利要求8所述的装置,其特征在于,所述资源调度子单元还包括:
第二资源调度模块,被配置为如果在所述分数最高的节点上分配container失败,则继续从所述节点池中选出所述调度策略对应的分数最高的节点,并为所述APP分配container直至为所述APP分配的资源量达到所述APP所需的资源量。
12.根据权利要求8所述的装置,其特征在于,所述资源调度子单元还包括:
更新模块,被配置为如果在所述分数最高的节点上分配container成功,则重新计算所述分数最高的节点的分数,并根据重新计算的结果,对所述排序列表进行更新。
13.根据权利要求8所述的装置,其特征在于,所述第一资源调度模块包括:
排序子模块,被配置为根据所述调度策略对所述分布式集群节点池中的部分节点进行打分排序,得到排序列表。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述调度策略包括下述任一种:
中央处理器空闲调度策略、中央处理器和存储器均衡调度策略、container分散调度策略、核心APP分散调度策略、特定类型节点调度策略和APP亲和度调度策略。
15.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的资源调度方法。
16.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507390.4A CN110362391B (zh) | 2019-06-12 | 2019-06-12 | 资源调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507390.4A CN110362391B (zh) | 2019-06-12 | 2019-06-12 | 资源调度方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362391A CN110362391A (zh) | 2019-10-22 |
CN110362391B true CN110362391B (zh) | 2021-08-13 |
Family
ID=68216749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910507390.4A Active CN110362391B (zh) | 2019-06-12 | 2019-06-12 | 资源调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362391B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785323A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 资源分配方法、装置与电子设备 |
CN113300973B (zh) * | 2020-02-21 | 2022-04-12 | 大唐移动通信设备有限公司 | 一种多队列发送的调度方法、装置、电子设备和存储介质 |
CN111294290B (zh) * | 2020-02-26 | 2021-01-29 | 宁波云鸟软件科技有限公司 | 一种基于大数据的资源调度方法 |
CN112039709B (zh) * | 2020-09-02 | 2022-01-25 | 北京首都在线科技股份有限公司 | 资源调度方法、装置、设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491151A (zh) * | 2013-09-13 | 2014-01-01 | 中安消技术有限公司 | 一种云计算资源的调度方法、装置及云计算平台 |
CN108123980A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种资源调度方法及系统 |
CN108563508A (zh) * | 2018-04-27 | 2018-09-21 | 新华三大数据技术有限公司 | Yarn资源分配方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
US9348648B2 (en) * | 2012-09-12 | 2016-05-24 | Salesforce.Com, Inc. | Providing a routing framework for facilitating dynamic workload scheduling and routing of message queues for fair management of resources for application servers in an on-demand services environment |
-
2019
- 2019-06-12 CN CN201910507390.4A patent/CN110362391B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491151A (zh) * | 2013-09-13 | 2014-01-01 | 中安消技术有限公司 | 一种云计算资源的调度方法、装置及云计算平台 |
CN108123980A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种资源调度方法及系统 |
CN108563508A (zh) * | 2018-04-27 | 2018-09-21 | 新华三大数据技术有限公司 | Yarn资源分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110362391A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362391B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
Goel et al. | A comparative study of cpu scheduling algorithms | |
Choudhary et al. | A dynamic optimization algorithm for task scheduling in cloud environment | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
CN109861850B (zh) | 一种基于sla的无状态云工作流负载均衡调度的方法 | |
CN112214319B (zh) | 一种计算资源感知的任务调度方法 | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
CN111258745B (zh) | 一种任务处理方法及设备 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN110764887A (zh) | 任务重调度方法、系统及相关设备、装置 | |
CN114489942B (zh) | 一种面向应用集群的队列任务调度方法及系统 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
Aladwani | Impact of selecting virtual machine with least load on tasks scheduling algorithms in cloud computing | |
Liu et al. | Leveraging dependency in scheduling and preemption for high throughput in data-parallel clusters | |
Nosrati et al. | Task scheduling algorithms introduction | |
CN111930485A (zh) | 一种基于性能表现的作业调度方法 | |
CN111694670A (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN113127178B (zh) | 资源抢占方法及装置、计算机可读存储介质、电子设备 | |
CN109976880B (zh) | 一种虚拟机资源使用的方法及其系统 | |
US20230305941A1 (en) | Systems and methods for isolating transactions to a pseudo-wait-for-input region | |
Niranjan et al. | Priority-Induced Round-robin scheduling algorithm with dynamic time quantum for Cloud computing environment |
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 |