CN106569892B - 资源调度方法与设备 - Google Patents
资源调度方法与设备 Download PDFInfo
- Publication number
- CN106569892B CN106569892B CN201510646963.3A CN201510646963A CN106569892B CN 106569892 B CN106569892 B CN 106569892B CN 201510646963 A CN201510646963 A CN 201510646963A CN 106569892 B CN106569892 B CN 106569892B
- Authority
- CN
- China
- Prior art keywords
- resource
- dimension
- request
- scheduling request
- queue
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请的目的是提供一种资源调度方法与设备。与现有技术相比,本申请通过获取分布式系统中的资源调度请求,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;从而使获取的资源调度请求在未直接分配到空闲资源的情况下,根据该资源调度请求的优先级信息,将其添加至对应的目标机器的资源请求队列中,以使其更高效的分配到空闲资源。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种用于资源调度的技术。
背景技术
随着科技的发展,尤其是大数据时代的到来,通过计算机处理的业务越来越多,需要占用的计算机资源也越来越多,传统的基于客户/服务器模型的集中计算已经无法承载日趋复杂的网络应用,于是出现了分布式计算。分布式计算主要用于把一个需要占用巨大计算资源的作业分解成若干个子作业,然后为这些子作业分别分配分散的、处于空闲状态的计算资源并进行计算处理,最后把这些计算结果综合起来得到最终的结果。
目前,在分布式系统中常见的资源分配方案为,将资源请求按照优先级进行排队,然后周期性的从队列中取出资源请求重新提交,这种设计虽然简单,但存在如下问题:
(1)由于无法预知什么时候会有空闲的机器资源,机器释放出空闲资源的时间与提交资源请求的时间,可能会出现不匹配的情况,例如,在周期性的提交资源请求时,可能并没有空闲的可用机器资源;而在机器出现空闲资源时,又可能没有赶上周期性提交资源请求的时间窗口,前者会降低资源调度器的调度效率,后者则会延迟资源请求拿到资源的时间。
(2)资源请求在机器层面上有多样性,例如,有的资源请求申请机器A的资源,而有的资源请求申请机器B的资源,等等。当某台机器出现空闲的可用资源时,它并不知道队列中哪个资源请求申请的是它自己的资源,故只能按照资源请求的优先级一个个尝试分配,这样就可能造成大量的无用遍历和分配。
(3)资源请求在资源大小上有多样性,例如,有的资源请求申请1个CPU、2G内存;有的资源请求申请2个CPU(Central Processing Unit)、4G内存,等等。当某台机器出现空闲的可用资源时,它并不知道队列中哪个资源请求申请的资源比当前自身可用的资源小,故只能按照资源请求的优先级一个个尝试分配,这样就可能造成大量的无用遍历和分配。
发明内容
本申请的目的是提供一种用于资源调度的方法与设备,以解决提高处于排队状态的资源请求的资源分配效率、准确性。
根据本申请的一个方面,提供了一种资源调度方法,其中,该方法包括:
获取分布式系统中的资源调度请求;
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
根据本申请的另一方面,还提供了一种资源调度设备,其中,该设备包括:
资源调度请求获取装置,用于获取分布式系统中的资源调度请求;
资源调度请求添加装置,用于当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
资源调度请求处理装置,用于根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
根据本申请的另一方面,还提供了一种资源调度设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取分布式系统中的资源调度请求;
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
与现有技术相比,本申请通过获取分布式系统中的资源调度请求,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;从而使获取的资源调度请求在未直接分配到空闲资源的情况下,根据该资源调度请求的优先级信息,将其添加至对应的目标机器的资源请求队列中,以使其更高效的分配到空闲资源。
而且,本申请还可以通过将前述资源请求队列分为按目标机器所提供资源的资源维度设置的若干资源请求维度队列,例如,CPU维度队列、内存维度队列等,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,根据空闲资源大小,找到其中在所有资源维度上均小于/等于空闲资源大小的资源调度请求中优先级最高的资源调度请求,为所述资源调度请求分配所请求资源;从而高效快速的找到可以分配资源的资源调度请求,进一步减少了对资源调度请求的遍历次数。
此外,本申请还可以通过将资源调度请求在每个资源维度上根据优先级信息构成二叉树的方式,实现符合分配资源的资源调度请求的查找,并进一步地,设置所述二叉树节点值包括所述节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值,从而进一步提高找到可以分配资源的资源调度请求的效率、准确度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种资源调度方法的流程图;
图2示出根据本申请一个优选实施例的一种资源调度方法的流程图;
图3-1示出根据本申请另一个优选实施例的在CPU维度上将满足要求的资源调度请求基于优先级信息建立最大堆示意图;
图3-2示出基于图3-1的在CPU维度上将满足要求的资源调度请求基于优先级信息建立最大堆示意图;
图4示出根据本申请另一个实施例的在内存维度上基于优先级信息将资源调度请求建立二叉树的示意图;
图5示出根据本申请另一个方面的一种资源调度设备的示意图;
图6示出根据本申请一个优选实施例的一种资源调度设备的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本申请的技术方案,进行清楚和完整的描述。
参图1所示,展示了根据本申请一个方面提供的资源调度方法流程图,其中,该方法包括:
S1获取分布式系统中的资源调度请求;
S2当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
S3根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
具体地,在所述步骤S1中,获取分布式系统中的资源调度请求,其中的资源调度请求即为分布式系统中请求分配资源的资源请求,具体地,当用户需要提交一个作业时,作业管理器便会向资源调度设备申请一定数量的机器资源,例如,CPU、内存等,来满足作业执行需要,在分布式系统中,资源调度设备获取的资源调度请求可来自该系统中不同的机器,具体的获取方式通过分布式系统内部的数据传输、资源调度等有线或无线的方式实现。
具体地,在所述步骤S2中,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列,其中目标机器为所述资源调度请求所请求资源的机器对象,例如,资源调度请求m请求机器N的资源,此时机器N便为资源调度请求m的目标机器,具体地,目标机器的可用资源为目标机器的空闲资源,当目标机器的可用资源低于所述资源调度请求所请求资源,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小,那么,此时,需要将所述资源调度请求添加至所述目标机器对应的资源请求队列,其中目标机器对应的资源请求队列为请求所述目标机器的资源的所有资源调度请求按照对应的优先级信息组成的队列,具体地,依据所述资源调度请求的优先级信息将其添加至所述目标机器对应的资源请求队列中。
具体地,在所述步骤S3中,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求,其中机器的空闲资源大小是随着资源的释放、资源的分配动态变化的,故所述目标机器的当前可用资源信息包括所述目标机器的当前可用资源大小、类型(CPU、内存等)等信息,具体地,在该步骤中,需要根据所述目标机器的当前可用资源的大小、类型等信息,分配给与所述目标机器对应的资源请求队列中满足所述当前可用资源信息的资源调度请求,例如,需要满足资源调度请求所请求的资源大小、类型等,进一步地,当满足条件的所述资源调度请求包括多个时,需要根据其优先级信息,将当前可用资源分配给所述多个资源调度请求中优先级最高的资源调度请求,以实现调度处理所述资源调度请求。
参图1所示,优选地,所述步骤S3包括:
当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源;
利用所分配的资源处理所述资源调度请求。
在该实施例中,当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源,其中,当前可调度的一个或多个资源请求为所述资源请求所请求的资源大小、类型等均满足当前空闲资源信息的资源调度请求,具体地,当所述资源请求队列中的当前可调度的资源请求包括多个时,便需要通过所述多个资源请求的优先级信息,确定其中优先级最高的资源请求,作为可分配资源的资源请求。
继续在该实施例中,利用所分配的资源处理所述资源调度请求,具体地,将所述目标机器的当前空闲资源分配给所述确定的可分配资源的资源请求,进一步地,当所述资源请求分配到资源后,便从所述目标机器对应的资源请求队列中移除。
参图2所示,优选地,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列;
其中,所述步骤S2包括:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列;
其中,所述步骤S3包括:
S31检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高;
S32当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述所述资源调度请求所请求资源;
S33若所述目标机器的当前可用资源在其他维度上满足所述所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源;
S34利用所分配的资源处理所述资源调度请求。
在该实施例中,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列,其中的资源维度为资源包含的类别,例如,CPU、内存等资源类型,相应地资源的CPU维度,即按照资源的CPU维度将资源请求队列中的资源请求分为若干不同CPU大小的资源请求维度队列,例如,CPU资源所对应的资源请求维度队列等。
具体地,所述步骤S2包括,当目标机器的可用资源低于所述资源调度请求所请求资源时,具体地,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小;那么,此时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,进一步地,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列的方式,为按照所述资源调取请求的优先级信息插入至所述目标机器对应的资源请求维度队列。
继续在该实施例中,所述步骤S3包括:
S31检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高。
具体地,在所述步骤S31中,当前可调度的一个或多个资源请求为所述资源请求维度队列中在对应维度上(例如,CPU、内存维度等)所请求的资源大小满足当前空闲资源的大小的资源调度请求,具体地,在该步骤中,在所述资源调度请求属于所述当前可调度的一个或多个资源请求时,还需要检测所述资源调度请求对应的优先级信息,主要判断其优先级是否是所述当前可调度的多个资源请求中最高的。
S32当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述所述资源调度请求所请求资源。
具体地,在所述步骤S32中,在所述资源调度请求为所述资源请求维度队列中在对应维度上(例如,CPU维度)所请求的资源大小满足当前空闲资源的大小,并且其优先级最高时,还需要检测所述目标机器的当前可用资源在其他维度上(除CPU维度外的其他维度,例如,内存维度等)是否满足所述所述资源调度请求所请求资源,例如,若目标机器的当前空闲资源为CPU2、内存3,档所述资源调取请求所请求的资源在CPU维度上小于等于2,并且在满足CPU维度小于等于2的所有资源调度请求中的优先级最高时,所述资源调度还需要满足在内存维度小于等于3时,才可以作为空闲资源的分配对象。
S33若所述目标机器的当前可用资源在其他维度上满足所述所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源。
具体地,在所述步骤S33中,在所述目标机器的当前可用资源在其他维度上也满足所述资源调度请求所请求的资源时,所述资源调度请求便为可进行空闲资源分配的资源调取请求,并进一步将对应目标机器中的空闲资源分配给所述资源调度请求。
S34利用所分配的资源处理所述资源调度请求。
具体地,在所述步骤S34中,利用所分配的资源处理所述资源调度请求,具体地,将所述目标机器的当前空闲资源分配给所述确定的可分配资源的资源请求,进一步地,当所述资源请求分配到资源后,便从所述目标机器对应的资源请求队列中移除。
更优选地,所述资源维度包括以下至少任一项:
在所述目标机器所提供资源的权重最高的维度;
在所述目标机器所提供资源的利用率最高的维度;
在所述目标机器所提供资源的请求最多的维度;
在所述目标机器所提供资源的数量最少的维度。
在该实施例中,所述资源维度可包括在所述目标机器所提供资源的权重最高的维度,具体地,所述权重最高的维度,一般为资源请求中需求的最重要的资源,例如,用于执行业务所需要的CPU资源,当然,资源维度的权重大小根据具体情况确定,例如,根据系统处理不同业务的需求,有时候CPU资源会比较重要,有时候内存资源会比较重要等。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的利用率最高的维度,具体地,所述利用率最高的维度,一般为资源请求中请求频次等最高、比较重要的资源类型,例如,CPU资源。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的请求最多的维度,具体地,所述请求最多的维度,一般为资源请求中请求资源量最多的资源类型,例如,内存资源。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的数量最少的维度,具体地,所述数量最少的的维度,一般为所述目标机器所提供的数量最少的资源类型,例如,比较珍贵的资源等。
更优选地,所述资源请求维度队列包括多个维度子队列,各维度子队列对应在所述资源维度上的不同资源需求范围,每个维度子队列中的资源请求在所述资源维度上的资源需求落入对应的资源需求范围;
其中,所述步骤S2包括:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至对应的目标维度子队列,其中,所述资源调度需求在所述资源维度上的资源需求落入所述目标维度子队列对应的资源需求范围。
在该实施例中,其中所述多个维度子队列为根据所述维度对应资源大小范围划分的若干子队列,例如,对于CPU资源维度队列,可包括CPU维度分别为1、2、3等三个维度子队列,CPU资源大小为1的子队列,CPU资源大小为2的子队列等,具体地,所述资源请求维度队列包括的多个维度子队列,一般为根据所述资源请求所请求的该维度资源的大小进行划分的若干个对应维度子队列,例如,按照内存资源维度,将所述资源请求内存维度队列中的资源请求按照所需求内存大小划分为多个对应维度的子队列,例如,内存为1的子队列,内存为2的子队列等。
具体地,在所述步骤S2中,其中的目标维度子队列为所述资源调度需求在所述资源维度上的资源需求大小对应的维度子队列,例如,若资源调度需求所需要的CPU资源为2,则应当将此资源调度需求添加至CPU维度上大小为2的CPU维度子队列中,其中所述大小为2的CPU维度子队列便为所述资源调度需求对应的目标维度子队列,当目标机器的可用资源低于所述资源调度请求所请求资源时,具体地,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小;那么,此时,将所述资源调度请求添加至所述目标机器对应资源请求维度队列的目标维度子队列,进一步地,将所述资源调度请求添加至所述目标机器对应的目标维度队列的方式,为按照所述资源调取请求的优先级信息插入至所述目标机器对应的目标维度子队列。
参图3-1所示,更更优选地,所述步骤S31包括:
当所述目标机器的当前可用资源在所述资源维度上满足所述目标维度子队列对应的资源需求范围,且所述资源调度请求在所述目标维度子队列中优先级最高,检测所述资源调度请求在所属的最大堆中优先级是否最高,其中,所述最大堆还包括每个其他维度子队列中优先级最高的其他资源调度请求,所述目标机器的当前可用资源在所述资源维度上满足所述其他维度子队列对应的资源需求范围。
具体地,可将按照每个资源维度具体大小分配的子队列的资源调度请求,依据对应子队列中的优先级信息,找到在该维度上符合条件的资源调度请求,例如,如图3-1所示,为在CPU维度上将满足要求的资源调度请求基于优先级信息建立最大堆的示意图,其中所述目标机器的当前CPU可用资源为图3-1中301对应的大小值,所述目标维度子队列为CPU维度上CPU资源值小于等于图3-1中301对应的CPU值的子队列,例如,图3-1中CPU值等于1、2、3、4对应的子队列,在所述目标维度子队列中,排在最前端的为该子队列中优先级最高的资源调度请求,例如,图3-1中CPU值为2、3对应子队列中的资源调度请求101及102;其中的最大堆由所述目标子队列中优先级最高的资源调度请求组成,例如,图3-1中最大堆100,由满足CPU资源值的四个子队列中优先级最高的资源调度请求组成,其中堆顶为CPU值等于3的子队列中的资源调度请求101,最大堆堆顶的资源调度请求即是当前优先级最高的、在CPU维度可分的资源调度请求。
继续在该实施例中,上述最大堆及最大堆堆顶对应的资源调度请求仅为CPU维度上的判断结果,很多时候业务的执行需要同时请求多种资源类型,例如,CPU与内存资源同时请求,此时还需要在CPU维度对应最大堆所包括的资源调度请求中,找到所述目标机器的当前可用资源在其他维度上满足所述其他维度子队列对应的资源需求范围的资源调度请求,并将其作为可分配空闲资源的资源调度请求。
如图3-2所示,为将图3-1中的空闲资源分配给所述可分配空闲资源的资源调度请求后的示意图,其中,空闲资源在CPU维度的值变为302位置对应的大小,满足所述空闲资源CPU值的CPU维度子队列包括CPU值为1、2所对应的子队列,此时还可以在CPU维度上继续分配所述空闲资源,所组成的最大堆100由满足CPU资源值的两个子队列中优先级最高的资源调度请求组成,其中堆顶为CPU值等于2的子队列中的资源调度请求102。
如图4所示,更优选地,每个维度子队列中的资源请求根据各资源需求对应的优先级信息构成二叉树,其中,所述二叉树的节点代表所述每个维度子队列中的资源请求。
具体地,可将按照每个资源维度具体大小分配的子队列的资源调度请求,依据对应子队列中的优先级信息,构成二叉树,并通过执行所述二叉树,从而找到符合条件的资源调度请求,例如,如图4所示为将内存维度子队列中的资源请求根据优先级信息构成的二叉树400,其中二叉树400的每个节点为资源调度请求,例如,其中一个节点对应资源调度请求401,空闲资源402的内存维度值为3。进一步地,只需要执行二叉树400的中序遍历,读取节点的顺序依次是优先级7、优先级6、优先级5、优先级4、优先级3、优先级2、优先级1对应的资源调度请求,以找到符合要求的资源调度请求。
参图4所示,更更优选地,所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值。
具体地,当所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值时,可以降低找到在所述维度上符合要求的资源调度请求的时间复杂度,更进一步地,如图4所示,为在内存维度上建立的资源调度请求对应的二叉树400,其中二叉树400的节点中的“左最小”代表该节点的左子树所有节点对应资源请求的内存资源需求的最小值,相应地,其中的“右最小”代表该节点的左子树所有节点对应资源请求的内存资源需求的最小值,其中“NA”代表无穷大。
进一步介绍执行图4中的二叉树400的中序遍历过程:
(1)判断优先级为4的根节点401的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是5,后者是3,判断失败,所以跳过中序遍历中的步骤(1),执行步骤(2)。
(2)判断优先级为4的根节点401自身的内存值是否比空闲资源402的内存最小值小,由于前者是4,后者是3,判断失败,所以执行步骤(3)。
(3)判断优先级为4的根节点401的右子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是1,后者是3,判断成功,所以像右子树移动一个位置,以优先级为2的节点为根节点继续执行步骤(1)。
(4)判断优先级为2的根节点的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是3,后者是3,判断成功,所以向左子树移动一个位置,以优先级为3的节点为根节点继续执行步骤(1)。
(5)判断优先级为3的根节点的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是NA(无穷大),后者是3,判断失败,所以跳过中序遍历中的步骤(1),执行步骤(2)。
(6)判断优先级为3的根节点的内存值是否比空闲资源402的内存最小值小,由于前者是3,后者是3,判断成功,故找到可分的资源请求,查找结束。
优选地,该方法还包括:
S4(未示出)获取分布式系统中释放的空闲资源;
S5(未示出)根据所述空闲资源对应目标机器的当前可用资源信息及所述目标机器对应的资源请求队列中资源调度请求信息,分配所述空闲资源。
具体地,在所述步骤S4中,当分布式系统中的作业节点执行完毕时,作业管理器会告知资源调度设备归还该作业节点的资源,资源调度设备收到归还申请后通知机器节点释放掉该作业节点的资源,资源调度设备便获取所述释放的资源,并可再次分配给其他资源调度请求。
具体地,在所述步骤S5中,当资源调度设备获取新的释放的资源时,只要目标机器的当前空闲资源不小于对应的资源调度请求队列中的资源请求需要的资源,便主动对所述目标机器对应的资源调度请求队列中的资源请求进行资源分配,以高效、准确地找到确实可以分配的资源申请,避免无用的遍历。进一步地,所述步骤S5中分配所述空闲资源的具体方式与前述实施例中空闲资源分配的原理相同或实质上相似,具体请参考前述实施例的相关描述,在此不再赘述。
与现有技术相比,本申请通过获取分布式系统中的资源调度请求,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;从而使获取的资源调度请求在未直接分配到空闲资源的情况下,根据该资源调度请求的优先级信息,将其添加至对应的目标机器的资源请求队列中,以使其更高效的分配到空闲资源。
而且,本申请还可以通过将前述资源请求队列分为按目标机器所提供资源的资源维度设置的若干资源请求维度队列,例如,CPU维度队列、内存维度队列等,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,根据空闲资源大小,找到其中在所有资源维度上均小于/等于空闲资源大小的资源调度请求中优先级最高的资源调度请求,为所述资源调度请求分配所请求资源;从而高效快速的找到可以分配资源的资源调度请求,进一步减少了对资源调度请求的遍历次数。
此外,本申请还可以通过将资源调度请求在每个资源维度上根据优先级信息构成二叉树的方式,实现符合分配资源的资源调度请求的查找,并进一步地,设置所述二叉树节点值包括所述节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值,从而进一步提高找到可以分配资源的资源调度请求的效率、准确度。
参图5所示,展示了根据本申请一个方面提供的资源调度设备示意图,其中,该设备包括:
资源调度请求获取装置11,获取分布式系统中的资源调度请求;
资源调度请求添加装置12,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
资源调度请求处理装置13,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
具体地,资源调度请求获取装置11获取分布式系统中的资源调度请求,其中的资源调度请求即为分布式系统中请求分配资源的资源请求,具体地,当用户需要提交一个作业时,作业管理器便会向资源调度设备申请一定数量的机器资源,例如,CPU、内存等,来满足作业执行需要,在分布式系统中,资源调度设备获取的资源调度请求可来自该系统中不同的机器,具体的获取方式通过分布式系统内部的数据传输、资源调度等有线或无线的方式实现。
具体地,当目标机器的可用资源低于所述资源调度请求所请求资源时,资源调度请求添加装置12将所述资源调度请求添加至所述目标机器对应的资源请求队列,其中目标机器为所述资源调度请求所请求资源的机器对象,例如,资源调度请求m请求机器N的资源,此时机器N便为资源调度请求m的目标机器,具体地,目标机器的可用资源为目标机器的空闲资源,当目标机器的可用资源低于所述资源调度请求所请求资源,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小,那么,此时,需要将所述资源调度请求添加至所述目标机器对应的资源请求队列,其中目标机器对应的资源请求队列为请求所述目标机器的资源的所有资源调度请求按照对应的优先级信息组成的队列,具体地,依据所述资源调度请求的优先级信息将其添加至所述目标机器对应的资源请求队列中。
具体地,资源调度请求处理装置13根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求,其中机器的空闲资源大小是随着资源的释放、资源的分配动态变化的,故所述目标机器的当前可用资源信息包括所述目标机器的当前可用资源大小、类型(CPU、内存等)等信息,具体地,在该步骤中,需要根据所述目标机器的当前可用资源的大小、类型等信息,分配给与所述目标机器对应的资源请求队列中满足所述当前可用资源信息的资源调度请求,例如,需要满足资源调度请求所请求的资源大小、类型等,进一步地,当满足条件的所述资源调度请求包括多个时,需要根据其优先级信息,将当前可用资源分配给所述多个资源调度请求中优先级最高的资源调度请求,以实现调度处理所述资源调度请求。
参图5所示,优选地,所述资源调度请求处理装置13:
当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源;
利用所分配的资源处理所述资源调度请求。
在该实施例中,当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源,其中,当前可调度的一个或多个资源请求为所述资源请求所请求的资源大小、类型等均满足当前空闲资源信息的资源调度请求,具体地,当所述资源请求队列中的当前可调度的资源请求包括多个时,便需要通过所述多个资源请求的优先级信息,确定其中优先级最高的资源请求,作为可分配资源的资源请求。
继续在该实施例中,利用所分配的资源处理所述资源调度请求,具体地,将所述目标机器的当前空闲资源分配给所述确定的可分配资源的资源请求,进一步地,当所述资源请求分配到资源后,便从所述目标机器对应的资源请求队列中移除。
优选地,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列;
其中,所述资源调度请求添加装置12:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列;
如图6所示,其中,所述资源调度请求处理装置13:
当前可调度资源请求优先级检测单元131,检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高;
其他维度资源检测单元132,当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述所述资源调度请求所请求资源;
请求资源分配单元133,若所述目标机器的当前可用资源在其他维度上满足所述所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源;
资源调度请求处理单元134,利用所分配的资源处理所述资源调度请求。
在该实施例中,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列,其中的资源维度为资源包含的类别,例如,CPU、内存等资源类型,相应地资源的CPU维度,即按照资源的CPU维度将资源请求队列中的资源请求分为若干不同CPU大小的资源请求维度队列,例如,CPU资源所对应的资源请求维度队列等。
具体地,当目标机器的可用资源低于所述资源调度请求所请求资源时,资源调度请求添加装置12将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,其中,当目标机器的可用资源低于所述资源调度请求所请求资源时,具体地,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小;那么,此时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,进一步地,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列的方式,为按照所述资源调取请求的优先级信息插入至所述目标机器对应的资源请求维度队列。
继续在该实施例中,所述资源调度请求处理装置13包括:
当前可调度资源请求优先级检测单元131,检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高。
具体地,当前可调度的一个或多个资源请求为所述资源请求维度队列中在对应维度上(例如,CPU、内存维度等)所请求的资源大小满足当前空闲资源的大小的资源调度请求,具体地,在该步骤中,在所述资源调度请求属于所述当前可调度的一个或多个资源请求时,还需要检测所述资源调度请求对应的优先级信息,主要判断其优先级是否是所述当前可调度的多个资源请求中最高的。
其他维度资源检测单元132,当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述所述资源调度请求所请求资源。
具体地,在所述资源调度请求为所述资源请求维度队列中在对应维度上(例如,CPU维度)所请求的资源大小满足当前空闲资源的大小,并且其优先级最高时,还需要检测所述目标机器的当前可用资源在其他维度上(除CPU维度外的其他维度,例如,内存维度等)是否满足所述所述资源调度请求所请求资源,例如,若目标机器的当前空闲资源为CPU2、内存3,档所述资源调取请求所请求的资源在CPU维度上小于等于2,并且在满足CPU维度小于等于2的所有资源调度请求中的优先级最高时,所述资源调度还需要满足在内存维度小于等于3时,才可以作为空闲资源的分配对象。
请求资源分配单元133,若所述目标机器的当前可用资源在其他维度上满足所述所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源。
具体地,在所述目标机器的当前可用资源在其他维度上也满足所述资源调度请求所请求的资源时,所述资源调度请求便为可进行空闲资源分配的资源调取请求,并进一步将对应目标机器中的空闲资源分配给所述资源调度请求。
资源调度请求处理单元134,利用所分配的资源处理所述资源调度请求。
具体地,利用所分配的资源处理所述资源调度请求,具体地,将所述目标机器的当前空闲资源分配给所述确定的可分配资源的资源请求,进一步地,当所述资源请求分配到资源后,便从所述目标机器对应的资源请求队列中移除。
更优选地,所述资源维度包括以下至少任一项:
在所述目标机器所提供资源的权重最高的维度;
在所述目标机器所提供资源的利用率最高的维度;
在所述目标机器所提供资源的请求最多的维度;
在所述目标机器所提供资源的数量最少的维度。
在该实施例中,所述资源维度可包括在所述目标机器所提供资源的权重最高的维度,具体地,所述权重最高的维度,一般为资源请求中需求的最重要的资源,例如,用于执行业务所需要的CPU资源,当然,资源维度的权重大小根据具体情况确定,例如,根据系统处理不同业务的需求,有时候CPU资源会比较重要,有时候内存资源会比较重要等。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的利用率最高的维度,具体地,所述利用率最高的维度,一般为资源请求中请求频次等最高、比较重要的资源类型,例如,CPU资源。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的请求最多的维度,具体地,所述请求最多的维度,一般为资源请求中请求资源量最多的资源类型,例如,内存资源。
继续在该实施例中,所述资源维度可包括在所述目标机器所提供资源的数量最少的维度,具体地,所述数量最少的的维度,一般为所述目标机器所提供的数量最少的资源类型,例如,比较珍贵的资源等。
更优选地,所述资源请求维度队列包括多个维度子队列,各维度子队列对应在所述资源维度上的不同资源需求范围,每个维度子队列中的资源请求在所述资源维度上的资源需求落入对应的资源需求范围;
其中,所述资源调度请求添加装置12:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至对应的目标维度子队列,其中,所述资源调度需求在所述资源维度上的资源需求落入所述目标维度子队列对应的资源需求范围。
在该实施例中,其中所述多个维度子队列为根据所述维度对应资源大小范围划分的若干子队列,例如,对于CPU资源维度队列,可包括CPU维度分别为1、2、3等三个维度子队列,CPU资源大小为1的子队列,CPU资源大小为2的子队列等,具体地,所述资源请求维度队列包括的多个维度子队列,一般为根据所述资源请求所请求的该维度资源的大小进行划分的若干个对应维度子队列,例如,按照内存资源维度,将所述资源请求内存维度队列中的资源请求按照所需求内存大小划分为多个对应维度的子队列,例如,内存为1的子队列,内存为2的子队列等。
在该实施例中,当目标机器的可用资源低于所述资源调度请求所请求资源时,资源调度请求添加装置12将所述资源调度请求添加至对应的目标维度子队列,其中,所述资源调度需求在所述资源维度上的资源需求落入所述目标维度子队列对应的资源需求范围,具体地,其中的目标维度子队列为所述资源调度需求在所述资源维度上的资源需求大小对应的维度子队列,例如,若资源调度需求所需要的CPU资源为2,则应当将此资源调度需求添加至CPU维度上大小为2的CPU维度子队列中,其中所述大小为2的CPU维度子队列便为所述资源调度需求对应的目标维度子队列,当目标机器的可用资源低于所述资源调度请求所请求资源时,具体地,也即目标机器的可用资源大小无法满足获取的资源调度请求所请求的资源大小;那么,此时,将所述资源调度请求添加至所述目标机器对应资源请求维度队列的目标维度子队列,进一步地,将所述资源调度请求添加至所述目标机器对应的目标维度队列的方式,为按照所述资源调取请求的优先级信息插入至所述目标机器对应的目标维度子队列。
参图3-1所示,更更优选地,所述当前可调度资源请求优先级检测单元(未示出):
当所述目标机器的当前可用资源在所述资源维度上满足所述目标维度子队列对应的资源需求范围,且所述资源调度请求在所述目标维度子队列中优先级最高,检测所述资源调度请求在所属的最大堆中优先级是否最高,其中,所述最大堆还包括每个其他维度子队列中优先级最高的其他资源调度请求,所述目标机器的当前可用资源在所述资源维度上满足所述其他维度子队列对应的资源需求范围。
具体地,可将按照每个资源维度具体大小分配的子队列的资源调度请求,依据对应子队列中的优先级信息,找到在该维度上符合条件的资源调度请求,例如,如图3-1所示,为在CPU维度上将满足要求的资源调度请求基于优先级信息建立最大堆的示意图,其中所述目标机器的当前CPU可用资源为图3-1中301对应的大小值,所述目标维度子队列为CPU维度上CPU资源值小于等于图3-1中301对应的CPU值的子队列,例如,图3-1中CPU值等于1、2、3、4对应的子队列,在所述目标维度子队列中,排在最前端的为该子队列中优先级最高的资源调度请求,例如,图3-1中CPU值为2、3对应子队列中的资源调度请求101及102;其中的最大堆由所述目标子队列中优先级最高的资源调度请求组成,例如,图3-1中最大堆100,由满足CPU资源值的四个子队列中优先级最高的资源调度请求组成,其中堆顶为CPU值等于3的子队列中的资源调度请求101,最大堆堆顶的资源调度请求即是当前优先级最高的、在CPU维度可分的资源调度请求。
继续在该实施例中,上述最大堆及最大堆堆顶对应的资源调度请求仅为CPU维度上的判断结果,很多时候业务的执行需要同时请求多种资源类型,例如,CPU与内存资源同时请求,此时还需要在CPU维度对应最大堆所包括的资源调度请求中,找到所述目标机器的当前可用资源在其他维度上满足所述其他维度子队列对应的资源需求范围的资源调度请求,并将其作为可分配空闲资源的资源调度请求。
如图3-2所示,为将图3-1中的空闲资源分配给所述可分配空闲资源的资源调度请求后的示意图,其中,空闲资源在CPU维度的值变为302位置对应的大小,满足所述空闲资源CPU值的CPU维度子队列包括CPU值为1、2所对应的子队列,此时还可以在CPU维度上继续分配所述空闲资源,所组成的最大堆100由满足CPU资源值的两个子队列中优先级最高的资源调度请求组成,其中堆顶为CPU值等于2的子队列中的资源调度请求102。
如图4所示,更优选地,每个维度子队列中的资源请求根据各资源需求对应的优先级信息构成二叉树,其中,所述二叉树的节点代表所述每个维度子队列中的资源请求。
具体地,可将按照每个资源维度具体大小分配的子队列的资源调度请求,依据对应子队列中的优先级信息,构成二叉树,并通过执行所述二叉树,从而找到符合条件的资源调度请求,例如,如图4所示为将内存维度子队列中的资源请求根据优先级信息构成的二叉树400,其中二叉树400的每个节点为资源调度请求,例如,其中一个节点对应资源调度请求401,空闲资源402的内存维度值为3。进一步地,只需要执行二叉树400的中序遍历,读取节点的顺序依次是优先级7、优先级6、优先级5、优先级4、优先级3、优先级2、优先级1对应的资源调度请求,以找到符合要求的资源调度请求。
参图4所示,更更优选地,所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值。
具体地,当所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值时,可以降低找到在所述维度上符合要求的资源调度请求的时间复杂度,更进一步地,如图4所示,为在内存维度上建立的资源调度请求对应的二叉树400,其中二叉树400的节点中的“左最小”代表该节点的左子树所有节点对应资源请求的内存资源需求的最小值,相应地,其中的“右最小”代表该节点的左子树所有节点对应资源请求的内存资源需求的最小值,其中“NA”代表无穷大。
进一步介绍执行图4中的二叉树400的中序遍历过程:
(1)判断优先级为4的根节点401的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是5,后者是3,判断失败,所以跳过中序遍历中的步骤(1),执行步骤(2)。
(2)判断优先级为4的根节点401自身的内存值是否比空闲资源402的内存最小值小,由于前者是4,后者是3,判断失败,所以执行步骤(3)。
(3)判断优先级为4的根节点401的右子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是1,后者是3,判断成功,所以像右子树移动一个位置,以优先级为2的节点为根节点继续执行步骤(1)。
(4)判断优先级为2的根节点的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是3,后者是3,判断成功,所以向左子树移动一个位置,以优先级为3的节点为根节点继续执行步骤(1)。
(5)判断优先级为3的根节点的左子树的内存最小值是否比空闲资源402的内存最小值小,由于前者是NA(无穷大),后者是3,判断失败,所以跳过中序遍历中的步骤(1),执行步骤(2)。
(6)判断优先级为3的根节点的内存值是否比空闲资源402的内存最小值小,由于前者是3,后者是3,判断成功,故找到可分的资源请求,查找结束。
优选地,该设备还包括:
空闲资源获取装置(未示出),获取分布式系统中释放的空闲资源;
空闲资源分配装置(未示出),根据所述空闲资源对应目标机器的当前可用资源信息及所述目标机器对应的资源请求队列中资源调度请求信息,分配所述空闲资源。
在该实施例中,空闲资源获取装置获取分布式系统中释放的空闲资源,具体地,当分布式系统中的作业节点执行完毕时,作业管理器会告知资源调度设备归还该作业节点的资源,资源调度设备收到归还申请后通知机器节点释放掉该作业节点的资源,资源调度设备便获取所述释放的资源,并可再次分配给其他资源调度请求。
继续在该实施例中,空闲资源分配装置根据所述空闲资源对应目标机器的当前可用资源信息及所述目标机器对应的资源请求队列中资源调度请求信息,分配所述空闲资源,具体地,当资源调度设备获取新的释放的资源时,只要目标机器的当前空闲资源不小于对应的资源调度请求队列中的资源请求需要的资源,便主动对所述目标机器对应的资源调度请求队列中的资源请求进行资源分配,以高效、准确地找到确实可以分配的资源申请,避免无用的遍历。进一步地,所述空闲资源分配装置分配所述空闲资源的具体方式与前述实施例中空闲资源分配的原理相同或实质上相似,具体请参考前述实施例的相关描述,在此不再赘述。
与现有技术相比,本申请通过获取分布式系统中的资源调度请求,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列,根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;从而使获取的资源调度请求在未直接分配到空闲资源的情况下,根据该资源调度请求的优先级信息,将其添加至对应的目标机器的资源请求队列中,以使其更高效的分配到空闲资源。
而且,本申请还可以通过将前述资源请求队列分为按目标机器所提供资源的资源维度设置的若干资源请求维度队列,例如,CPU维度队列、内存维度队列等,当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列,根据空闲资源大小,找到其中在所有资源维度上均小于/等于空闲资源大小的资源调度请求中优先级最高的资源调度请求,为所述资源调度请求分配所请求资源;从而高效快速的找到可以分配资源的资源调度请求,进一步减少了对资源调度请求的遍历次数。
此外,本申请还可以通过将资源调度请求在每个资源维度上根据优先级信息构成二叉树的方式,实现符合分配资源的资源调度请求的查找,并进一步地,设置所述二叉树节点值包括所述节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值,从而进一步提高找到可以分配资源的资源调度请求的效率、准确度。
此外,本申请还提供了一种资源调度设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取分布式系统中的资源调度请求;
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (18)
1.一种资源调度方法,其中,该方法包括:
获取分布式系统中的资源调度请求;
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;
其中,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列;
其中,所述根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求包括:
检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高;
当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述资源调度请求所请求资源;
若所述目标机器的当前可用资源在其他维度上满足所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源;
利用所分配的资源处理所述资源调度请求。
2.根据权利要求1所述的方法,其中,所述根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求包括:
当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源;
利用所分配的资源处理所述资源调度请求。
3.根据权利要求1所述的方法,其中,
其中,所述当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列包括:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列。
4.根据权利要求3所述的方法,其中,所述资源维度包括以下至少任一项:
在所述目标机器所提供资源的权重最高的维度;
在所述目标机器所提供资源的利用率最高的维度;
在所述目标机器所提供资源的请求最多的维度;
在所述目标机器所提供资源的数量最少的维度。
5.根据权利要求4所述的方法,其中,所述资源请求维度队列包括多个维度子队列,各维度子队列对应在所述资源维度上的不同资源需求范围,每个维度子队列中的资源请求在所述资源维度上的资源需求落入对应的资源需求范围;
其中,所述当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列包括:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至对应的目标维度子队列,其中,所述资源调度需求在所述资源维度上的资源需求落入所述目标维度子队列对应的资源需求范围。
6.根据权利要求5所述的方法,其中,所述检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高包括:
当所述目标机器的当前可用资源在所述资源维度上满足所述目标维度子队列对应的资源需求范围,且所述资源调度请求在所述目标维度子队列中优先级最高,检测所述资源调度请求在所属的最大堆中优先级是否最高,其中,所述最大堆还包括每个其他维度子队列中优先级最高的其他资源调度请求,所述目标机器的当前可用资源在所述资源维度上满足所述其他维度子队列对应的资源需求范围。
7.根据权利要求6所述的方法,其中,每个维度子队列中的资源请求根据各资源需求对应的优先级信息构成二叉树,其中,所述二叉树的节点代表所述每个维度子队列中的资源请求。
8.根据权利要求7所述的方法,其中,所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值。
9.根据权利要求1至8中任一项所述的方法,其中,该方法还包括:
获取分布式系统中释放的空闲资源;
根据所述空闲资源对应目标机器的当前可用资源信息及所述目标机器对应的资源请求队列中资源调度请求信息,分配所述空闲资源。
10.一种资源调度设备,其中,该设备包括:
资源调度请求获取装置,用于获取分布式系统中的资源调度请求;
资源调度请求添加装置,用于当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求队列;
资源调度请求处理装置,用于根据所述目标机器的当前可用资源信息及所述资源调度请求在所述资源请求队列中的优先级信息,调度处理所述资源调度请求;
其中,所述资源请求队列包括按所述目标机器所提供资源的资源维度设置的资源请求维度队列;
其中,所述资源调度请求处理装置包括:
当前可调度资源请求优先级检测单元,用于检测在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级是否最高;
其他维度资源检测单元,当在所述资源请求维度队列的按所述资源维度当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,检测所述目标机器的当前可用资源在其他维度上是否满足所述资源调度请求所请求资源;
请求资源分配单元,用于若所述目标机器的当前可用资源在其他维度上满足所述资源调度请求所请求资源,为所述资源调度请求分配所请求资源;
资源调度请求处理单元,用于利用所分配的资源处理所述资源调度请求。
11.根据权利要求10所述的设备,其中,所述资源调度请求处理装置用于:
当在所述资源请求队列的当前可调度的一个或多个资源请求中所述资源调度请求的优先级最高时,为所述资源调度请求分配所请求资源;
利用所分配的资源处理所述资源调度请求。
12.根据权利要求10所述的设备,
其中,所述资源调度请求添加装置用于:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至所述目标机器对应的资源请求维度队列。
13.根据权利要求12所述的设备,其中,所述资源维度包括以下至少任一项:
在所述目标机器所提供资源的权重最高的维度;
在所述目标机器所提供资源的利用率最高的维度;
在所述目标机器所提供资源的请求最多的维度;
在所述目标机器所提供资源的数量最少的维度。
14.根据权利要求13所述的设备,其中,所述资源请求维度队列包括多个维度子队列,各维度子队列对应在所述资源维度上的不同资源需求范围,每个维度子队列中的资源请求在所述资源维度上的资源需求落入对应的资源需求范围;
其中,所述资源调度请求添加装置用于:
当目标机器的可用资源低于所述资源调度请求所请求资源时,将所述资源调度请求添加至对应的目标维度子队列,其中,所述资源调度需求在所述资源维度上的资源需求落入所述目标维度子队列对应的资源需求范围。
15.根据权利要求14所述的设备,其中,所述当前可调度资源请求优先级检测单元用于:
当所述目标机器的当前可用资源在所述资源维度上满足所述目标维度子队列对应的资源需求范围,且所述资源调度请求在所述目标维度子队列中优先级最高,检测所述资源调度请求在所属的最大堆中优先级是否最高,其中,所述最大堆还包括每个其他维度子队列中优先级最高的其他资源调度请求,所述目标机器的当前可用资源在所述资源维度上满足所述其他维度子队列对应的资源需求范围。
16.根据权利要求15所述的设备,其中,每个维度子队列中的资源请求根据各资源需求对应的优先级信息构成二叉树,其中,所述二叉树的节点代表所述每个维度子队列中的资源请求。
17.根据权利要求16所述的设备,其中,所述二叉树的每个节点的值还包括该节点的左子树所有节点对应资源请求的在所述维度上的资源需求最小值,及右子树所有节点对应资源请求的在所述维度上的资源需求最小值。
18.根据权利要求10至17中任一项所述的设备,其中,该设备还包括:
空闲资源获取装置,用于获取分布式系统中释放的空闲资源;
空闲资源分配装置,用于根据所述空闲资源对应目标机器的当前可用资源信息及所述目标机器对应的资源请求队列中资源调度请求信息,分配所述空闲资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510646963.3A CN106569892B (zh) | 2015-10-08 | 2015-10-08 | 资源调度方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510646963.3A CN106569892B (zh) | 2015-10-08 | 2015-10-08 | 资源调度方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569892A CN106569892A (zh) | 2017-04-19 |
CN106569892B true CN106569892B (zh) | 2020-06-30 |
Family
ID=58506466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510646963.3A Active CN106569892B (zh) | 2015-10-08 | 2015-10-08 | 资源调度方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569892B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451717A (zh) * | 2017-06-30 | 2017-12-08 | 上海工程技术大学 | 一种轨道交通培训设备申报审批系统 |
CN107423134B (zh) * | 2017-07-13 | 2020-01-10 | 中国科学院高能物理研究所 | 一种大规模计算集群的动态资源调度方法 |
CN109542608B (zh) * | 2018-11-30 | 2022-03-04 | 北京仿真中心 | 一种基于混合排队网络的云仿真任务调度方法 |
CN110727512B (zh) * | 2019-09-30 | 2020-06-26 | 星环信息科技(上海)有限公司 | 集群资源调度方法、装置、设备及储存介质 |
CN111813564B (zh) * | 2020-09-11 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 集群资源管理方法、装置及容器集群管理系统 |
CN115426320B (zh) * | 2022-08-25 | 2023-06-06 | 绿盟科技集团股份有限公司 | 一种安全资源调度方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883436A (zh) * | 2010-06-24 | 2010-11-10 | 宇龙计算机通信科技(深圳)有限公司 | 一种资源的并发处理方法、系统及移动终端 |
US7836502B1 (en) * | 2007-07-03 | 2010-11-16 | Trend Micro Inc. | Scheduled gateway scanning arrangement and methods thereof |
CN102932279A (zh) * | 2012-10-30 | 2013-02-13 | 北京邮电大学 | 一种云环境数据中心多维资源调度系统及方法 |
CN104469703A (zh) * | 2014-12-26 | 2015-03-25 | 北京中细软移动互联科技有限公司 | 一种集群呼叫系统的信道动态分配方法 |
-
2015
- 2015-10-08 CN CN201510646963.3A patent/CN106569892B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836502B1 (en) * | 2007-07-03 | 2010-11-16 | Trend Micro Inc. | Scheduled gateway scanning arrangement and methods thereof |
CN101883436A (zh) * | 2010-06-24 | 2010-11-10 | 宇龙计算机通信科技(深圳)有限公司 | 一种资源的并发处理方法、系统及移动终端 |
CN102932279A (zh) * | 2012-10-30 | 2013-02-13 | 北京邮电大学 | 一种云环境数据中心多维资源调度系统及方法 |
CN104469703A (zh) * | 2014-12-26 | 2015-03-25 | 北京中细软移动互联科技有限公司 | 一种集群呼叫系统的信道动态分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106569892A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569892B (zh) | 资源调度方法与设备 | |
CN109684065B (zh) | 一种资源调度方法、装置及系统 | |
US8381230B2 (en) | Message passing with queues and channels | |
WO2017016421A1 (zh) | 一种集群中的任务执行方法及装置 | |
US9483319B2 (en) | Job scheduling apparatus and method therefor | |
CN109033001B (zh) | 用于分配gpu的方法和装置 | |
US20170068574A1 (en) | Multiple pools in a multi-core system | |
US20110154359A1 (en) | Hash partitioning streamed data | |
US20140331235A1 (en) | Resource allocation apparatus and method | |
US8843632B2 (en) | Allocation of resources between web services in a composite service | |
CN106933664B (zh) | 一种Hadoop集群的资源调度方法及装置 | |
CN107515784B (zh) | 一种在分布式系统中计算资源的方法与设备 | |
CN106775948B (zh) | 一种基于优先级的云任务调度方法及装置 | |
KR20110080735A (ko) | 컴퓨팅 시스템 및 방법 | |
US10778807B2 (en) | Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels | |
Yousif et al. | Clustering cloud workload traces to improve the performance of cloud data centers | |
CN106571935B (zh) | 一种资源调度的方法与设备 | |
CN106940712B (zh) | 序列生成方法与设备 | |
US8543722B2 (en) | Message passing with queues and channels | |
Yang et al. | PK-OMLP: An OMLP based k-exclusion real-time locking protocol for multi-GPU sharing under partitioned scheduling | |
Deshai et al. | Big data Hadoop MapReduce job scheduling: A short survey | |
CN110968422A (zh) | 用于集成场景的负载分发 | |
US9152549B1 (en) | Dynamically allocating memory for processes | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN116737370A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230602 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |