CN115858169A - 一种作业资源分配方法、装置、电子设备及存储介质 - Google Patents
一种作业资源分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115858169A CN115858169A CN202211627927.9A CN202211627927A CN115858169A CN 115858169 A CN115858169 A CN 115858169A CN 202211627927 A CN202211627927 A CN 202211627927A CN 115858169 A CN115858169 A CN 115858169A
- Authority
- CN
- China
- Prior art keywords
- resource
- current
- queue
- job
- determining
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种作业资源分配方法、装置、电子设备及存储介质。该方法包括:确定当前待分配资源的当前作业及当前作业的当前资源请求量;在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,剩余资源队列为除当前作业所属的资源队列之外的资源队列;基于待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,并将驱逐集群资源分配至当前作业。本发明实施例的技术方案,可以增加集群资源分配的平衡性和合理性,提高作业的执行效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种作业资源分配方法、装置、电子设备及存储介质。
背景技术
近年来,以深度学习为代表的核心技术引发了第三次人工智能的浪潮,通过深度学习云平台进行集群资源管理和调度,能够节省大量的资源成本,因此得到广泛应用。
现有技术中,根据提交作业的先后顺序,为各作业分配相应的集群资源,以满足提交的各作业任务的资源需求。但是,在实现本发明的过程中,发现现有技术至少存在以下技术问题:当集群资源的剩余量不足时,易出现提交的作业任务无资源可调度的情况,导致部分用户组提交的作业任务的执行效率受到影响,降低了集群资源分配的合理性。
发明内容
本发明实施例提供了一种作业资源分配方法、装置、电子设备及存储介质,以实现增加集群资源分配的平衡性和合理性,提高作业的执行效率的目的。
根据本发明的一方面,提供了一种作业资源分配方法,包括:
确定当前待分配资源的当前作业及所述当前作业的当前资源请求量;
在当前集群资源的资源剩余量不满足所述当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,所述剩余资源队列为除所述当前作业所属的资源队列之外的资源队列;
基于所述待驱逐资源队列确定出待驱逐作业,释放所述待驱逐作业占用的驱逐集群资源,并将所述驱逐集群资源分配至所述当前作业。
根据本发明的另一方面,提供了一种作业资源分配装置,该装置包括:
当前资源请求量确定模块,用于确定当前待分配资源的当前作业及所述当前作业的当前资源请求量;
待驱逐资源队列确定模块,用于在当前集群资源的资源剩余量不满足所述当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,所述剩余资源队列为除所述当前作业所属的资源队列之外的资源队列;
待驱逐作业确定模块,用于基于所述待驱逐资源队列确定出待驱逐作业,释放所述待驱逐作业占用的驱逐集群资源,并将所述驱逐集群资源分配至所述当前作业。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的作业资源分配方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的作业资源分配方法。
本发明实施例的技术方案,确定当前待分配资源的当前作业及当前作业的当前资源请求量,在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;通过在待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,从而释放掉占有过多集群资源的待驱逐资源队列的资源,并将驱逐集群资源分配至当前作业,从而及时执行当前作业,实现了增加集群资源分配的平衡性和合理性,提高作业的执行效率的效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种集群资源管理模式的示意图;
图2是根据本发明实施例提供的一种Min值和Max值的含义示意图;
图3是根据本发明实施例提供的一种作业资源分配方法的流程图;
图4是根据本发明实施例提供的一种资源抢占过程的示意图;
图5是根据本发明实施例提供的另一种作业资源分配方法的流程图;
图6是根据本发明实施例提供的另一种作业资源分配方法的流程图;
图7是根据本发明实施例提供的作业准入控制模块的运行流程图;
图8是根据本发明实施例提供的作业优先级调度模块的运行流程;
图9是根据本发明实施例提供的一种资源抢占流程的流程图;
图10是根据本发明实施例提供的一种作业资源分配装置的结构示意图;
图11是实现本发明实施例的作业资源分配方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“等”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
在介绍技术方案之前,可以先对应用场景进行示例性说明。本技术方案用于当前集群资源的资源剩余量不足时,在基于资源队列的集群资源管理模式下,对使用资源量超过设定的保有资源量的资源队列中的作业,进行资源抢占操作,从而确保为当前待分配资源的当前作业及时分配集群资源,提高作业的执行效率,增强集群资源分配的平衡性和合理性。
为便于更详细、清晰地理解本发明的技术方案,对本方案提出的基于资源队列的集群资源管理模式进行说明。图1是根据本发明实施例提供的一种集群资源管理模式的示意图,如图1所示,集群1中的集群资源可分配至至少一个资源队列中,分别为默认资源队列、部门资源队列1、部门资源队列2、……、部门资源队列n;其中,n为大于2的正整数。每个集群包括一个默认资源队列,默认资源队列对应集群可分配的全部剩余资源;例如,当集群未分配资源时,默认资源队列对应集群的全部资源,每当新增一个部门资源队列时,则从集群的默认资源队列对应的集群资源中划分一部分资源到新增的部门资源队列,即将全局资源池中的资源划分一部分至部分资源池。
进一步的,每个部门资源队列又可以划分为多个部门子资源队列,从而构成树形结构的多级资源队列结构,每当新增一个部门子资源队列时,从部门资源队列对应的集群资源中划分一部分资源到部门子资源队列。这种基于树形结构的多级资源队列结构,便于提高集群资源分配过程的灵活性。
每个资源队列均可对应至少一个用户组,资源队列用于存储至少一个用户组的组信息,如图1所示,默认资源队列中分别包括用户组1和用户组2的组信息,部门资源队列1、部门资源队列2、部门资源队列,可分别对应用户组3、用户组4和用户组n的组信息。具体的,可根据预先设定的用户组与资源队列之间的对应关系,将用户组关联至对应的资源队列,当未对用户组指定对应关系时,则可将用户组关联至默认资源队列中。本实施例中提出的基于资源队列的集群资源管理模式,能够通过资源队列作为单位分配集群资源,有利于提高资源分配过程中的灵活性。
为支持弹性资源分配,以充分利用集群资源,本方案可基于资源队列的Min-Max值进行集群资源管理。资源队列是集群的资源管理逻辑对象,资源队列的Min值和Max值为资源队列的两个重要属性值,可通过预先设定的方式确定Min值和Max值。
Min值和Max值的含义可参见图2所示,Min值表示资源队列的保有资源量,即当资源队列中的用户组提交的作业,实际申请的集群资源的总量在Min值以内时,提交的作业均可申请到需要的资源,以保障Min值以内的资源优先得到分配。Max值为资源队列对应的最大资源使用量,即表示该资源队列中提交的作业能够使用的资源上限。示例性的,若当前提交的作业需要申请Max值外的资源,则需要排队等待资源队列资源的释放后,才可分配到集群资源。进一步的,在Min值和Max值之间的资源可称为弹性资源,当集群资源不足以运行新提交的作业时会发生资源抢占,弹性资源对应的集群资源部分可用于提供被抢占的资源,以确保各资源队列中的Min值以内的集群资源用于给本资源队列中的作业进行运行。通过Min-Max值机制对集群资源进行管理,能够以资源队列为逻辑对象,便捷、高效地对集群资源进行管理,有利于提高集群资源利用率。
图3是根据本发明实施例提供的一种作业资源分配方法的流程图。本实施例可适用于通过云平台为提交的作业分配集群资源的情况,该方法可以由作业资源分配装置来执行,该作业资源分配装置可以采用硬件和/或软件的形式实现。
如图3所示,本实施例的方法具体可包括:
S110、确定当前待分配资源的当前作业及当前作业的当前资源请求量。
其中,当前作业为提交至集群,且未被分配集群资源的作业;当前资源请求量为执行当前作业所需的集群资源量。
本实施例中,可同时存在至少一个当前待分配资源的作业,若当前待分配资源的作业的数量为一个时,将该唯一作业确定为当前作业即可;若当前待分配资源的作业的数量为多个时,可按提交作业的时间顺序对多个作业进行排序,将最早提交的作业确定为当前作业,以减少作业等待时间;也可将资源请求量最少的作业确定为当前作业,以便于增加被执行作业的数量。
S120、在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列。
其中,资源队列用于存储至少一个用户组的组信息,每个用户组对应一个组队列,组队列用于存储至少一个作业的作业信息,每个作业对应一个任务队列,各任务队列中存储有作业包含的各任务。组信息可为用户组的属性信息;作业信息可为与作业对应的任务队列的信息。
在具体实施中,若资源剩余量不满足当前资源请求量,即资源剩余量小于当前资源请求量,则说明当前集群资源无法执行当前作业;为保证当前作业能够及时、有效地完成,可对剩余资源队列中的当前执行作业进行资源抢占操作。
为清晰、详细地对资源抢占的过程进行说明,可参见图4。图4中,包含资源队列1和资源队列2,资源队列1和资源队列2对应的Min值为40个cpu的集群资源,Max值为80个cpu的集群资源;当前资源队列1对应提交的作业中,实际已占用了80个cpu的集群资源,即占满了为Max值对应的集群资源。而资源队列2中,当前对应提交的作业中实际已占用了20个cpu的集群资源,即小于Min值。
为保证各资源队列至少存在Min值对应的集群资源量可被使用,当资源队列2中对应的作业需要分配集群资源时,可向资源队列1发起资源抢占操作,即释放资源队列1中已占用集群资源的作业,并将释放了的集群资源分配至资源队列2中待分配集群资源的作业,以运行资源队列2中提交的作业。例如,资源队列2中对应的作业需要分配20个cpu的集群资源,则可向资源队列1发起资源抢占,使资源队列1对应的作业占用的20个cpu的集群资源进行驱逐回收,并分配至资源队列2。
本实施例中,剩余资源队列为除当前作业所属的资源队列之外的资源队列。已使用资源量为该资源队列对应的作业实际使用的集群资源的总量。待驱逐资源队列为被抢占集群资源的作业所对应的资源队列。为确保集群资源分配的合理性和平衡性,可在已使用资源量超过保有资源量的资源队列中,确定出待驱逐资源队列。
在具体实施中,在确定待驱逐资源队列时,可将任一个已使用资源量超过保有资源量的资源队列,确定为待驱逐资源队列;也可将已使用资源量超过保有资源量的资源队列中,已使用资源量最多的资源队列确定为待驱逐资源队列。
可选的,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列的实施方式可为:在至少一个剩余资源队列中确定出已使用资源量大于设定的保有资源量的第三资源队列,将资源优先级最低的第三资源队列确定为待驱逐资源队列。
其中,第三资源队列为已使用资源量大于保有资源量的资源队列。资源优先级用于反映出资源队列对应的作业实际占用的集群资源量,占用Min值或Max值的比例,比例越小,则资源优先级越高;比例越大,则资源优先级越低。
本实施例中,通过确定资源优先级最低的第三资源队列,从而筛选出实际占用的集群资源量占Min值或Max值的比例最大的资源队列,将该资源队列确定为待驱逐资源队列,从而使不同资源队列占用的集群资源量之间的差异更小,保持各资源队列占用的集群资源的均衡性。
S130、基于待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,并将驱逐集群资源分配至当前作业。
其中,待驱逐作业为待驱逐资源队列对应的作业中,用于被抢占集群资源的作业。
在具体实施中,待驱逐资源队列中存储的至少一个用户组的组信息,可在至少一个组信息对应的组队列中,确定出至少一个作业,作为待驱逐作业。具体的,可基于待驱逐资源队列对应的实际占用的集群资源量、作业运行时长、作业创建时间等信息,确定出待驱逐作业。将待驱逐作业占用的驱逐集群资源分配至当前作业,以使当前作业正常运行。
本发明实施例的技术方案,确定当前待分配资源的当前作业及当前作业的当前资源请求量,在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;通过在待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,从而释放掉占有过多集群资源的待驱逐资源队列的资源,并将驱逐集群资源分配至当前作业,从而及时执行当前作业,实现了增加集群资源分配的合理性,提高作业的执行效率的效果。
具体的,基于待驱逐资源队列确定出待驱逐作业,包括:若在待驱逐资源队列对应的作业中,存在所包括的处于就绪状态的任务的第一总数量小于第一预设数量的第一作业,则在第一作业中确定出待驱逐作业。
需要说明的是,作业可包括至少一个任务,就绪状态为已被分配集群资源的状态,即当任务在集群中完成节点绑定操作后,可确定该任务已处于就绪状态。在处于就绪状态的任务的第一总数量大于或等于第一预设数量时,可进入作业执行过程。在第一总数量小于第一预设数量时,作业仍无法被执行。
在具体实施中,可逐一确定待驱逐资源队列对应的作业的第一总数量,并筛选出第一总数量小于第一预设数量的第一作业,从而筛选出占用集群资源,但未执行的作业,确定出至少一个第一作业作为待驱逐作业。
本实施例通过将占用集群资源,但未执行的作业确定为待驱逐作业,在提高了当前作业的执行效率的同时,尽量减少当前作业在抢占资源时对其它作业执行过程的影响。
本实施例中,在确定待驱逐作业时,还包括:若在待驱逐资源队列对应的作业中,不存在第一作业,则基于待驱逐资源队列确定出弹性训练作业,在弹性训练作业中确定出待驱逐作业。
其中,弹性训练作业是指所包括的待运行任务的数量是根据当前集群的剩余资源确定的作业。例如,当集群资源空闲时,弹性训练作业可增加运行的任务的数量;当集群资源紧张时,弹性训练作业可减少运行任务的数量,从而动态调整运行的任务的数量。
在具体实施中,在待驱逐资源队列中不存在第一作业时,可确定待驱逐资源队列对应的作业中,是否存在弹性训练作业;若存在,则在至少一个弹性训练作业中确定出待驱逐作业。
本实施例通过将对运行任务数量要求更灵活的弹性训练作业,作为待驱逐作业,从而实现在尽量减少对待驱逐作业产生的运行损失和影响的前提下,释放待驱逐作业的资源,以为当前作业及时提供集群资源。
在具体实施中,在弹性训练作业中确定出待驱逐作业的实现方式可为:基于弹性训练作业的运行时长、调度时间和创建时间,在弹性训练作业中确定出待驱逐作业。
其中,运行时长指弹性训练作业被分配集群资源且启动运行后的时长,创建时间为弹性训练作业被提交至集群的时间,调度时间为弹性训练作业中的各任务被添加至任务队列中的时间。
具体的,若待驱逐资源队列中仅包括一个弹性训练作业,则可将该唯一的弹性训练作业确定为待驱逐作业;若待驱逐资源队列中包括两个或两个以上的弹性训练作业,则可将弹性训练作业中运行时长最短的弹性训练作业,确定为待驱逐作业。若运行时长最短的弹性训练作业的数量为一个,则可将该唯一的弹性训练作业确定为待驱逐作业;若运行时长最短的弹性训练作业的数量存在两个或两个以上,则可将运行时长最短的弹性训练作业中,调度时间最晚的作业,确定为待驱逐作业。若调度时间最晚的弹性训练作业的数量仅为一个,则可将该唯一的弹性训练作业确定为待驱逐作业;若调度时间最晚的弹性训练作业的数量存在两个或两个以上,则可进一步比较弹性训练作业的创建时间,将调度时间最晚的弹性训练作业中,创建时间最晚的作业确定为待驱逐作业。
本实施例通过运行时长、调度时间和创建时间几个方面的因素确定待驱逐作业,尽量将运行时长短、调度时间晚和创建时间晚的弹性训练作业确定为待驱逐作业,从而减少抢占待驱逐作业的集群资源后,对作业运行的影响和时间损失。
具体的,在确定出待驱逐作业之后,还包括:若待驱逐作业占用的驱逐集群资源的驱逐集群资源量小于当前资源请求量,则在待驱逐资源队列中确定出至少一个补充驱逐作业,直到各补充驱逐作业的补充资源占用量与待驱逐作业的待驱逐资源占用量之和大于或等于当前资源请求量;在释放待驱逐作业占用的驱逐集群资源之后,还包括:释放至少一个补充驱逐作业占用的补充集群资源,并将补充集群资源分配至当前作业。
其中,补充驱逐作业可作为被资源抢占的对象,为当前作业提供集群资源;补充集群资源为补充驱逐作业占用的集群资源。
需要说明的是,当待驱逐集群资源的资源量大于或等于当前资源请求量时,说明待驱逐集群资源满足运行当前作业的资源要求,可将待驱逐集群资源提供至当前作业以使当前作业正常运行。当待驱逐集群资源的资源量小于当前资源请求量时,说明待驱逐集群资源不满足运行当前作业的资源要求,仍需继续进行资源抢占操作,直到抢占到的资源总量大于或等于当前资源请求量为止。
具体的,可在待驱逐资源队列中确定出至少一个补充驱逐作业,并释放补充集群资源,将释放后的集群资源继续为当前作业提供集群资源,以使释放后的待驱逐集群资源与补充资源资源组成的总量,大于或等于当前资源请求量。
具体的,在待驱逐资源队列中确定出至少一个补充驱逐作业的实施方式可为:在待驱逐资源队列对应的作业中,将处于就绪状态的任务的总数量小于第一预设数量的作业确定为补充驱逐作业;或者,待驱逐资源队列中的弹性训练作业确定为补充驱逐作业;还或者,基于运行时长、调度时间和创建时间,确定出补充驱逐作业。可按照该实施方式,每次确定出一个补充驱逐作业,若本次确定出的补充驱逐作业、之前确定出的补充驱逐作业以及待驱逐作业的实际占用的集群资源量之和,大于或等于当前资源请求量,则停止确定补充驱逐作业的过程;若小于当前资源请求量,则继续在待驱逐资源队列中确定补充驱逐作业。
本实施例中,对于待驱逐作业实际占用的集群资源量不满足当前资源请求量时,可再次确定补充驱逐作业,直到各补充驱逐作业与待驱逐作业实际占用的集群资源量之和,满足当前资源请求量,从而能够保证资源抢占操作后,释放的资源总量能够满足当前作业的需求,确保当前作业能够有效地被执行。
图5是根据本发明实施例提供的另一种作业资源分配方法的流程图。本实施例中,确定当前待分配资源的当前作业的实现方式包括:在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,将资源优先级最高的第二资源队列确定为当前资源队列;基于当前资源队列中存储的组信息,确定出组优先级最高的当前组队列;基于当前组队列中存储的作业信息,确定出作业优先级最高的作业作为当前作业。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。如图5所示,该方法包括:
S210、在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,将资源优先级最高的第二资源队列确定为当前资源队列。
其中,资源队列用于存储至少一个用户组的组信息,每个用户组对应一个组队列,组队列用于存储至少一个作业的作业信息;第一资源队列为与待分配资源的作业对应的资源队列,当前资源队列为当前作业对应的资源队列。
具体的,可将在集群资源中未绑定节点的作业作为待分配资源的待分配作业。预设条件可为:第一资源队列中已使用资源量小于预设资源量;也可为对应的待分配作业的数量大于预设作业数量的第一资源队列。本领域技术人员可根据实际应用情况,确定预设资源量和预设作业数量的具体数值,本发明实施例对此不作限定。
在具体实施中,预设条件还可为已使用资源量小于或等于设定的保有资源量的第一资源队列;在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,包括:将已使用资源量小于或等于设定的保有资源量的第一资源队列,确定为第二资源队列。
在具体实施中,可分别确定各第一资源队列当前的已使用资源量,与对应预先设定的保有资源量,当该已使用资源量小于或等于保有资源量时,说明该第一资源队列实际占用的集群资源量未达到设定的需要保障的资源量,则可优先为该第一资源队列分配集群资源,并将满足该预设条件的至少一个第一资源队列确定为第二资源队列。本实施例引入资源队列机制,通过筛选出已使用资源量小于或等于保有资源量的第二资源队列,以为第二资源队列中的待分配作业提供集群资源,从而确保各资源队列分配的集群资源的均衡性,便于实现集群资源共享。
进一步的,当确定出第二资源队列后,可基于DRF(Dominant Resource Fairness)算法确定各第二资源队列的资源优先级。资源优先级反映出资源队列对应的作业实际占用的集群资源量,占用Min值或Max值的比例,比例越小,则资源优先级越高;比例越大,则资源优先级越低。具体的,在确定资源优先级时,可首先确定第二资源队列对应的作业实际占用的集群资源量,占用Min值的比例,对于占用Min值的比例最小的第二资源队列,资源优先级最高,可将资源优先级最高的第二资源队列确定为当前资源队列。当占用Min值的比例最小的第二资源队列的数量为两个或两个以上时,可确定第二资源队列实际占用的集群资源量,占用Max值的比例;对于占用Max值的比例最小的第二资源队列,资源优先级最高。
S220、基于当前资源队列中存储的组信息,确定出组优先级最高的当前组队列;基于当前组队列中存储的作业信息,确定出作业优先级最高的作业作为当前作业,确定当前作业的当前资源请求量。
其中,组信息包括当前资源队列对应的用户组的标识、名称等信息,通过组信息,可确定出与当前资源队列对应的至少一个组队列。可基于DRF算法确定组队列的组优先级,组优先级用于反映出组队列对应的作业实际占用的集群资源量,占用用户组对应的资源配额的比例,比例越小,则资源优先级越高;比例越大,则资源优先级越低。需要说明的是,用户组对应的资源配额可根据实际需要预先设定,用于表示组队列允许被分配的资源量;当用户组提交的作业的资源请求量之和超出预设的资源配额时,则提交的作业无法被调度运行。
在具体实施中,可将与当前资源队列对应的组队列中,组优先级最高的组队列确定为当前组队列。进一步的,为在当前组队列对应的各作业中确定出当前作业,可获取当前组队列中存储的作业信息,作业信息可包括当前组队列对应的用户组提交的各作业的标识、名称等信息,以基于作业信息确定出与当前组队列对应的作业。
进一步的,可基于DRF算法确定各作业的作业优先级,作业优先级用于反映出作业的资源申请量占集群总资源量的比例,比例越小的作业,作业优先级越高;比例越大的作业,作业优先级越低。本实施例中,将作业优先级最高的作业确定为当前作业。
需要说明的是,同一个各作业内的不同任务之间,可根据预先设置的任务优先级字段,确定作业中各任务的任务优先级;还可通过任务的资源申请量占集群总资源量的比例,确定任务优先级,比例越小的任务,任务优先级越高;比例越大的任务,任务优先级越低。
S230、在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列。
S240、基于待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,并将驱逐集群资源分配至当前作业。
本实施例中,能够筛选出占有保有资源量的比例最小的当前资源队列,并在当前资源队列中筛选出占有集群资源份额最小的当前组队列,在当前组队列中确定出作业优先级最高的作业作为当前作业,通过先为作业优先级最高的当前作业分配集群资源,以为当前占有集群资源份额较小的资源队列、组队列增加集群资源的占有份额,有助于提高各资源队列、组队列占有集群份额的均衡性和合理性。
图6是根据本发明实施例提供的另一种作业资源分配方法的流程图。本实施例中,在确定出满足预设条件的第二资源队列之前,还包括:在提交至集群的各作业中,确定出当前待添加作业,并对当前待添加作业进行加入队列操作。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。如图6所示,该方法包括:
S310、在提交至集群的各作业中,依次确定出当前待添加作业及当前待添加作业的待添加资源请求量。
需要说明的是,对于提交至集群的各作业,可进行加入队列操作。当前待添加作业为当前时刻需要添加至队列中的作业。具体的,加入队列操作可包括:将作业添加至对应的作业队列;将被添加的作业队列的作业信息,添加至对应的组队列;将被添加的组队列的组信息,添加至对应的资源队列,从而完成了对作业的加入队列操作。
本实施例中,可将提交至集群的各作业中,任意选取一个作业作为当前待添加作业;也可将作业的集群资源请求量最小或最小的作业,确定为当前待添加作业。可选的,在提交至集群的各作业中,依次确定出当前待添加作业的实现方式包括:将提交至集群且未添加至资源队列的作业中,作业优先级最高的作业确定为当前待添加作业。
具体的,可确定出提交至集群的各作业,并基于作业的字段信息,确定出该作业对应的用户组;基于用户组对应的组队列中的字段信息,确定出组队列对应的资源队列,将该资源队列与该作业建立对应关系。其中,作业的字段信息用于记录提交该作业的用户组的组信息;组队列的字段信息用于记录与该组队列对应的用户组对应的资源队列的信息。
进一步的,确定出当前提交至集群但未加入队列的各未添加作业,并基于资源队列与作业之间的对应关系,分别确定各未添加作业对应的未添加资源队列。在确定当前待添加作业时,可将资源优先级最高的未添加资源队列,确定为当前待添加资源队列,并将当前待添加资源队列对应的各组队列中,组优先级最高的组队列作为当前待添加组队列,在当前待添加组队列对应的各未添加作业中,将作业优先级最高的未添加作业,作为当前待添加作业。
本实施例中,按照资源优先级、组优先级以及作业优先级确定当前待添加作业,能够高效地确定出当前占有集群资源份额较小的资源队列对应的作业,并及时、快速地为该作业添加资源队列。
S320、针对每个当前待添加作业,确定当前待添加作业对应的当前待添加资源队列、当前待添加资源队列的已使用资源量和当前待添加资源队列的资源配额,若待添加资源请求量与当前待添加资源队列的已使用资源量之和,小于当前待添加资源队列的资源配额,则基于当前待添加资源队列对当前待添加作业进行加入队列操作。
其中,加入队列操作包括将当前待添加作业对应的组队列的组信息,添加至当前待添加资源队列中。当前待添加资源队列的资源配额,用于表示当前待添加资源队列允许被分配的资源量。
具体的,确定当前待添加资源队列的资源配额的方式可为:确定当前待添加资源队列是否为默认资源队列,若为默认资源队列,可将当前待添加组队列的资源配额,确定为当前待添加资源队列的资源配额,从而防止用户组过度使用默认资源队列的资源。确定当前待添加资源队列的资源配额的方式还可为:将当前待添加资源队列的Max值作为资源配额。
进一步的,确定出当前待添加资源队列的资源配额后,若待添加资源请求量与当前待添加资源队列的已使用资源量之和,小于当前待添加资源队列的资源配额,说明当前待添加资源队列仍有剩余的资源配额分配至当前待添加作业,可基于当前待添加资源队列对当前待添加作业进行加入队列操作;若待添加资源请求量与当前待添加资源队列的已使用资源量之和,大于或等于当前待添加资源队列的资源配额,说明当前待添加资源队列没有剩余的资源配额分配至当前待添加作业,则当前待添加作业无法完成加入队列操作。
本实施例在为当前添加作业进行加入队列操作时,考虑到当前待添加资源队列的资源配额的影响,能够有效地以资源队列为对象,对集群资源进行管理;并且基于已使用资源量以及资源请求量,准确地筛选出满足资源配额要求的当前添加作业,并进行加入队列操作。
本实施例中,基于当前待添加资源队列对当前待添加作业进行加入队列操作之后,还包括:在各已完成加入队列操作的作业中,依次确定出当前待绑定作业;针对每个当前待绑定作业,确定出当前待绑定任务,针对每个当前待绑定任务,在集群中确定出与当前待绑定任务对应的待绑定节点,为各当前待绑定任务,预绑定对应的待绑定节点。
在完成对作业的加入队列操作后,为确保作业中的任务能够得到正常运行,可为加入队列操作后的作业中的各任务绑定节点,从而将任务调度至集群节点上启动运行。
在具体实施中,在各已完成加入队列操作的作业中,可基于各作业的资源请求量,依次确定出当前待绑定作业;或者,可基于各作业加入队列的时间,依次确定出当前待绑定作业;还或者,可基于各作业的作业优先级依次确定出当前待绑定作业。
本实施例中,在各已完成加入队列操作的作业中,依次确定出当前待绑定作业的具体实现方式可为:在各已完成加入队列操作的作业对应的资源队列中,确定出资源优先级最高的资源队列作为当前待绑定资源队列;将当前待绑定资源队列中,组优先级最高的组队列确定为当前待绑定组队列;将当前待绑定组队列中,作业优先级最高的作业确定为当前待绑定作业。
具体的,在确定当前待绑定作业时,以已完成加入队列操作的各作业对应的资源队列为划分单位,确定出当前待绑定资源队列;在当前待绑定资源队列中,以组队列为划分单位,确定出当前待绑定组队列;进一步的,在当前待绑定组队列中,确定出当前待绑定作业。为了能够更好地平衡资源队列、组队列及作业的当前占用的集群资源量的情况,可将资源优先级最高的资源队列确定为当前待绑定资源队列;将当前待绑定资源队列对应的至少一个组队列中,组优先级最高的组队列确定为当前待绑定组队列,并将当前待绑定组队列中的作业优先级最高的作业,确定为当前待绑定作业。
本实施例在确定当前待绑定作业时,分别按照资源队列、组队列及作业逐级的顺序,逐层确定出当前待绑定作业;充分考虑到资源队列、组队列及作业的当前占用的集群资源量的情况,有助于将当前实际占用的资源配额比例小的作业确定为当前待绑定作业,先进行预绑定操作,从而提高当前占用的集群资源量的平衡性。
进一步的,每个当前待绑定作业中,可包括至少一个任务,可在该当前待绑定作业的至少一个任务中确定出当前待绑定任务。可选的,确定出当前待绑定任务包括:采用随机确定的方式,在待绑定作业中确定出当前待绑定任务的;或者,确定出当前待绑定任务包括:按照当前待绑定作业中包含的任务的任务优先级顺序,依次确定出当前待绑定任务。
其中,任务优先级可基于任务中预先设定的优先级信息进行确定,也可基于任务的资源申请量占集群总资源量的比例进行确定,比例越小的任务,任务优先级越高;比例越大的任务,任务优先级越低。具体的,可按照任务优先级由高到底的顺序,依次对待绑定作业中的任务进行排序,分别将当前的任务优先级最高的任务确定为当前待绑定任务。
本实施例中,通过按照任务优先级排序,根据任务优先级确定当前待绑定任务,能够在确定当前待绑定任务时考虑到任务的资源申请量,便于基于资源申请量合理地确定出对任务进行绑定的绑定顺序。
在确定出待绑定任务后,需要为待绑定任务分配集群节点,以运行待绑定任务。可选的,在集群中确定出与当前待绑定任务对应的待绑定节点,包括:基于当前待绑定任务的任务资源请求量,在集群中筛选出提供资源量大于或等于任务资源请求量的备选节点;基于预先设定的优选函数,确定备选节点的优选分值;将优选分值最高的备选节点,确定为与当前待绑定任务对应的待绑定节点。
其中,任务资源请求量为运行该当前待绑定任务所需的集群资源量;提供资源量为节点当前剩余的集群资源量。在具体实施中,为确保待绑定节点能够满足正常运行当前待绑定任务,需在集群中筛选出提供资源量大于或等于任务资源请求量的集群节点,作为备选节点。
进一步的,对于存在一个备选节点的情况,则可直接将该唯一备选节点确定为待绑定节点即可。对于存在两个或两个以上的备选节点的情况,则可基于预先设定的优选函数,分别确定各备选节点的优选分值。其中,优选函数可包括LeastRequested函数、BalanceResourceAllocation函数、NodePreferAvoidPods函数、TaintToleration函数、SelectorSpreading函数、InterPodAffinity函数和NodeAffinity函数中的至少一种。基于优选函数计算得到的各备选节点的函数值即可设定为备选节点的优选分值。优选分值可反映出该备选节点被选中的优先程度,优选分值越高,则被选中的优先程度越高;反之,则被选中的优先程度越低。在具体实施中,可将优选分值最高的备选节点,确定为与当前待绑定任务对应的待绑定节点。
本实施例通过在备选节点中确定出待绑定节点,从而筛除掉不能满足当前待绑定任务所需的集群资源量的节点,确保当前待绑定任务在绑定节点后能够正常运行;并且,基于集群的优选策略,确定待绑定节点,有利于提高确定待绑定节点的有效性。
在具体实施中,对各当前待绑定任务确定出对应的待绑定节点后,可为各当前待绑定任务,预绑定对应的待绑定节点,从而便于运行当前待绑定任务。并且,在将当前待绑定作业预绑定至对应的待绑定节点之后,还包括:若当前待绑定作业中已完成预绑定的任务的第二总数量小于第二预设数量,则将已完成预绑定的任务进行解绑定操作,将当前待绑定作业确定为未分配资源的作业;
其中,第二预设数量小于或等于当前待绑定作业中包含的任务的第二总数量。
需要说明的是,对于当前待绑定任务,若集群中的剩余资源量小于当前待绑定任务的任务资源请求量;或者,集群中的各节点的提供资源量均小于任务资源请求量时,说明当前集群中的各节点无法满足当前待绑定任务的运行需求,则该当前绑定任务无法确定出对应的待绑定节点,无法进行预绑定操作。
具体的,若当前待绑定作业中已完成预绑定的任务的第二总数量大于或等于第二预设数量时,说明当前待绑定作业中的大部分任务已完成预绑定操作,则可确定该当前待绑定作业处于就绪状态,并运行已完成预绑定的各任务;若当前待绑定作业中已完成预绑定的任务的第二总数量小于第二预设数量时,说明未完成预绑定的任务仍然数量较大,则可暂不启动对当前待绑定作业中的各任务的运行操作,直到已完成预绑定的任务的第二总数量大于或等于第二预设数量时,再启动运行操作。
进一步的,不启动对当前待绑定作业中的各任务的运行操作时,为节省集群资源,可将已完成预绑定的任务进行解绑定操作,从而释放占用的集群资源,并将当前待绑定作业确定为未分配资源的作业。
S330、在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,将资源优先级最高的第二资源队列确定为当前资源队列。
S340、基于当前资源队列中存储的组信息,确定出组优先级最高的当前组队列;基于当前组队列中存储的作业信息,确定出作业优先级最高的作业作为当前作业,确定当前作业的当前资源请求量。
S350、在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列。
S360、基于待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,并将驱逐集群资源分配至当前作业。
本实施例通过确定第二总数量与第二预设数量之间的大小关系,确定是否启动任务运行操作,有助于提高作业的执行效率;并在暂不启动运行时,对作业中的任务进行解绑定操作,减少对集群资源的占用和资源浪费。
上文中对于作业资源分配方法对应的实施例进行了详细描述,为了使本领域技术人员进一步清楚本方法的技术方案,下文中给出具体的应用场景。
本实施例中,作业资源分配方法可三个过程:1、对提交到集群的作业进行加入队列操作;2、为已完成加入队列操作的作业中的各任务预绑定节点,以运行提已完成加入队列操作的作业;3、当集群资源不足时,启动资源抢占机制,以为当前提交的作业提供集群资源。
在具体实施中,在实施这三个过程之前,可设定各资源队列的Min值和Max值,并基于设定好的Min值和Max值完成集群对应的资源队列的初始化。为了更好地理解本实施例提供的作业资源分配方法,下面对资源队列的Min值和Max值的设定方式进行说明。
在一个应用场景下,现有的技术方案通常按照节点标签划分集群资源,即对各集群节点上添加相应的节点标签,用户组向集群提交的作业只能调度到该用户组拥有权限的集群节点。例如,节点1有标签label-n1,用户组1对应拥有调度权限的节点为节点1,则可将用户组1提交的作业分配至标签label-n1的节点。并且,每个用户组可预先设定资源配额,当用户组提交作业产生的资源请求量超出资源配额时,则提交的作业无法被调度运行。
本实施例中,可在上述现有的技术方案的基础上,提出一种资源队列的Min值和Max值的设定方式,设定方式如下:
1、在确定集群的实际可分配资源时,需要考虑集群资源可分配系数,集群的实际可分配资源为总资源乘以可分配系数,从而考虑到集群的碎片资源不可分配的情况。例如,可分配系数为0.8时,表示集群中20%的资源为碎片资源。
设节点m包含j个标签,分别为标签1、标签2、......标签j,其中,j为正整数。每个标签对应的实际资源可按照节点m对应的集群资源量的1/j,则节点m的对应的任一标签i的可分配资源为:
2、对于某集群,包含标签i,标签i的节点数目为n个,其中,n为正整数;第q个节点拥有的标签数据为N,则标签i在集群范围内可分配资源为包含该标签的所有节点对应的集群资源之和:
3、设用户组g拥有的节点标签包括标签1、标签2、……、标签r,其中,r为正整数,每个用户组针对任一标签i能分配到的资源,可按照组资源配额占拥有标签i的所有用户组资源配额之和的比例进行分配,设用户组g的资源配额为Quotag,拥有标签i的用户组包括用户组g、用户组s、用户组t,则用户组g针对标签i能分配到的资源为:
其中,Quotas为用户组s的资源配额,Quotat为用户组t的资源配额。
设集群有资源队列1、资源队列2、……、资源队列u,共u个;则集群可分配资源为集群中所有资源队列的Min值之和。
5、资源队列的Max值可通过自定义的方式设定;例如,Max值可为资源队列对应的用户组的资源配额之和。需要说明的是,资源队列的Max值可以超卖,即在集群整体比较空闲时,允许资源队列占用的实际资源超过资源队列对应的Max值的预设比例。
本实施例中,设定集群中的各资源队列的Min值和Max值后即完成集群资源队列的初始化,可通过Min-Max机制下的完成对提交至集群的作业的调度和分配。具体实施中,可通过作业准入控制模块,对提交到集群的作业进行加入队列操作;通过作业优先级调度模块,为已完成加入队列操作的作业中的各任务预绑定节点,以运行提已完成加入队列操作的作业。
具体的,作业准入控制模块,用于判断提交到集群的作业是否能够加入到排队队列,判断的依据是作业所属用户组所在的资源队列的资源请求量是否超出资源配额。作业优先级调度模块,用于从排队队列中按照资源队列、组队列、作业以及任务的优先级顺序将作业的所有任务都调度到集群节点上启动运行。
作业准入控制模块的运行流程如图7所示,具体步骤如下:
1、若提交到集群的作业集合不为空,则从提交到集群的作业中选出作业优先级最高的当前待添加作业;
2根据当前待添加作业的字段信息,确定前待添加作业对应的当前待添加用户组;基于当前待添加用户组对应的当前待添加组队列中的字段信息,确定出前待添加组队列对应的当前待添加资源队列。
3、获取当前待添加资源队列的资源配额:
若当前待添加资源队列为默认资源队列,可将当前待添加组队列的资源配额,确定为当前待添加资源队列的资源配额,从而防止用户组过度使用默认资源队列的资源。
若当前待添加资源队列为非默认资源队列,将当前待添加资源队列的Max值作为资源配额。
4、判断当前待添加资源队列的实际占用集群资源的资源使用量与当前待添加作业的资源请求量之和是否超出资源配额:
若资源使用量与当前待添加作业的资源请求量之和大于资源配额,则说明超出资源配额,当前待添加作业不进入排队队列,入队失败,直到执行下一轮调度时再判断能否进入排队;
若资源使用量与当前待添加作业的资源请求量之和小于或等于资源配额,则说明未超出资源配额,当前待添加作业进入排队队列,入队成功。
5、重复执行上述步骤,直到遍历完所有提交到集群的作业。
作业优先级调度模块,用于从排队队列中,确定出资源优先级最高的资源队列作为当前待绑定资源队列,获取当前待绑定资源队列包含的用户组对应的组队列,在各组队列中确定出组优先级最高的当前待绑定组队列;获取当前待绑定组队对应的用户组提交到集群的各作业,确定出作业优先级最高的当前待绑定作业,并按照任务优先级顺序依次确定出当前待绑定任务,以将作业的所有任务调度到集群节点上启动运行,作业的任务数可通过作业的MinMember字段确定。
作业优先级调度模块的运行流程如图8所示,具体步骤如下:
1、依次确定出当前待绑定资源队列、当前待绑定组队列、当前待绑定作业。
2、在当前待绑定作业中确定出任务优先级最高的任务作为当前待绑定任务,为当前待绑定任务确定待绑定节点。可先在集群中的各节点中,筛掉不符合预选策略的节点,如剩余资源不满足任务的资源需求量的节点;在进行优选流程,即为筛选节点后剩余的节点进行优选打分,确定出优选分值最高的节点,为待绑定节点,将当前待绑定任务预绑定至当前待绑定节点。
3、重复执行步骤2,直到当前待绑定作业对应的作业队列为空。判断作业是否处于就绪状态,即至少有X个任务与节点预绑定,其中,X为正整数;若处于就绪状态,则向服务器发起绑定请求,在节点上启动运行任务;若处于未就绪状态,则取消任务与节点之间的预绑定。
4、重复执行步骤1至步骤3,直到遍历完所有处于排队队列中的集群作业。
本实施例中,引入资源队列作为集群的资源管理逻辑对象,可去除掉现有技术中集群的节点标签,实现集群资源共享。
本实施例中,当集群资源不足时,启动资源抢占机制,从而提升集群整体的资源利用率,保证资源队列的Min值资源优先得到保障。当资源队列A的资源使用量大于Min值时,占用保有资源量Min值以外的弹性资源是可以被抢占的。假设资源队列B中的用户组向集群提交作业,当前资源队列的资源使用量小于对应的Min值,在提交的作业因为集群资源不足而调度失败时,则抢占机制就会生效,可对资源队列A中占用的集群资源进行抢占。资源抢占流程可参见图9所示,具体步骤如下:
1、挑选发起抢占的当前作业:
(1)确定出已使用资源量小于或等于设定的保有资源量的资源队列中,资源优先级最高的资源队列,作为当前资源队列;
(2)基于当前资源队列中存储的组信息,确定出组优先级最高的当前组队列,基于当前组队列中存储的作业信息,确定出作业优先级最高的作业作为当前作业。
2、挑选待驱逐作业
(1)确定出已使用资源量超过设定的保有资源量的资源队列中,资源优先级最低的资源队列为待驱逐资源队列;
(2)按照预设的驱逐方式,确定出待驱逐作业;驱逐方式可包括:
优先选择处于就绪状态的任务的第一总数量小于第一预设数量的作业,确定为待驱逐作业;进一步的,还可将弹性训练作业,确定为待驱逐作业;再进一步的,可基于作业的运行时长、调度时间和创建时间,确定出所述待驱逐作业;例如,将运行时长短、调度时间和创建时间晚的作业,优先确定为待驱逐作业。
3、判断待驱逐作业释放后的驱逐集群资源量是否大于或等于当前作业的资源请求量;若大于或等于,则调度运行抢占作业,停止抢占新的作业;若小于,则继续抢占待驱逐资源队列中的下一个待驱逐作业,直到抢占到的资源量大于或等于当前作业的资源请求量为止。
4、重复步骤1,直到遍历完所有可发起抢占的当前作业。
本实施例中,通过设定的资源抢占机制,可高效、公平、合理地为提交的作业分配集群资源,从而保证资源队列的Min值对应的集群资源优先得到保障。
图10是根据本发明实施例提供的一种作业资源分配装置的结构示意图,该装置用于执行上述任意实施例所提供的作业资源分配方法。该装置与上述各实施例的作业资源分配方法属于同一个发明构思,在作业资源分配装置的实施例中未详尽描述的细节内容,可以参考上述作业资源分配方法的实施例。如图10所示,该装置包括:
当前资源请求量确定模块10,用于确定当前待分配资源的当前作业及当前作业的当前资源请求量;
待驱逐资源队列确定模块11,用于在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,剩余资源队列为除当前作业所属的资源队列之外的资源队列;
待驱逐作业确定模块12,用于基于待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,并将驱逐集群资源分配至当前作业。
在本发明实施例中任一可选技术方案的基础上,可选的,资源队列用于存储至少一个用户组的组信息,每个用户组对应一个组队列,组队列用于存储至少一个作业的作业信息;当前资源请求量确定模块10模块包括:
当前资源队列确定单元,用于在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,将资源优先级最高的第二资源队列确定为当前资源队列;
当前组队列确定单元,用于基于当前资源队列中存储的组信息,确定出组优先级最高的当前组队列;
当前作业确定单元,用于基于当前组队列中存储的作业信息,确定出作业优先级最高的作业作为当前作业。
在本发明实施例中任一可选技术方案的基础上,可选的,当前资源队列确定单元,包括:
第二资源队列确定子单元,用于将已使用资源量小于或等于设定的保有资源量的第一资源队列,确定为第二资源队列。
在本发明实施例中任一可选技术方案的基础上,可选的,待驱逐资源队列确定模块11,包括:
待驱逐资源队列确定单元,用于在至少一个剩余资源队列中确定出已使用资源量大于设定的保有资源量的第三资源队列,将资源优先级最低的第三资源队列确定为待驱逐资源队列。
在本发明实施例中任一可选技术方案的基础上,可选的,待驱逐作业确定模块12,包括:
第一待驱逐作业确定单元,用于若在待驱逐资源队列对应的作业中,存在所包括的处于就绪状态的任务的第一总数量小于第一预设数量的第一作业,则在第一作业中确定出待驱逐作业;其中,就绪状态为已被分配集群资源的状态。
在本发明实施例中任一可选技术方案的基础上,可选的,还包括:
弹性训练作业确定模块,用于若在待驱逐资源队列对应的作业中,不存在第一作业,则基于待驱逐资源队列确定出弹性训练作业,在弹性训练作业中确定出待驱逐作业;其中,弹性训练作业是指所包括的待运行任务的数量是根据当前集群的剩余资源确定的作业。
在本发明实施例中任一可选技术方案的基础上,可选的,包括:
第二待驱逐作业确定单元,用于基于弹性训练作业的运行时长、调度时间和创建时间,在弹性训练作业中确定出待驱逐作业。
在本发明实施例中任一可选技术方案的基础上,可选的,还包括:
补充驱逐作业确定模块,用于若待驱逐作业占用的驱逐集群资源的驱逐集群资源量小于当前资源请求量,则在待驱逐资源队列中确定出至少一个补充驱逐作业,直到各补充驱逐作业的补充资源占用量与待驱逐作业的待驱逐资源占用量之和大于或等于当前资源请求量;
补充集群资源释放模块,用于在释放待驱逐作业占用的驱逐集群资源之后,释放至少一个补充驱逐作业占用的补充集群资源,并将补充集群资源分配至当前作业。
在本发明实施例中任一可选技术方案的基础上,可选的,当前资源请求量确定模块10模块还包括:
当前待添加作业确定单元,用于在在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列之前,在提交至集群的各作业中,依次确定出当前待添加作业及当前待添加作业的待添加资源请求量;
加入队列操作单元,用于针对每个当前待添加作业,确定当前待添加作业对应的当前待添加资源队列、当前待添加资源队列的已使用资源量和当前待添加资源队列的资源配额,若待添加资源请求量与当前待添加资源队列的已使用资源量之和,小于当前待添加资源队列的资源配额,则基于当前待添加资源队列对当前待添加作业进行加入队列操作;
加入队列操作包括将当前待添加作业对应的组队列的组信息,添加至当前待添加资源队列中。
在本发明实施例中任一可选技术方案的基础上,可选的,当前待添加作业确定单元,包括:
当前待添加作业确定子单元,用于将提交至集群且未添加至资源队列的作业中,作业优先级最高的作业确定为当前待添加作业。
在本发明实施例中任一可选技术方案的基础上,可选的,当前资源请求量确定模块10模块还包括:
当前待绑定作业确定单元,用于基于当前待添加资源队列对当前待添加作业进行加入队列操作之后,在各已完成加入队列操作的作业中,依次确定出当前待绑定作业;
待绑定节点确定单元,用于针对每个当前待绑定作业,确定出当前待绑定任务,针对每个当前待绑定任务,在集群中确定出与当前待绑定任务对应的待绑定节点,为各当前待绑定任务,预绑定对应的待绑定节点。
在本发明实施例中任一可选技术方案的基础上,可选的,当前待绑定作业确定单元,包括:
当前待绑定任务确定子单元,用于按照当前待绑定作业中包含的任务的任务优先级顺序,依次确定出当前待绑定任务。
在本发明实施例中任一可选技术方案的基础上,可选的,待绑定节点确定单元,包括:
备选节点筛选子单元,用于基于当前待绑定任务的任务资源请求量,在集群中筛选出提供资源量大于或等于任务资源请求量的备选节点;
优选分值确定子单元,用于基于预先设定的优选函数,确定备选节点的优选分值;
待绑定节点确定子单元,用于将优选分值最高的备选节点,确定为与当前待绑定任务对应的待绑定节点。
在本发明实施例中任一可选技术方案的基础上,可选的,当前待绑定作业确定单元,包括:
当前待绑定资源队列确定子单元,用于在各已完成加入队列操作的作业对应的资源队列中,确定出资源优先级最高的资源队列作为当前待绑定资源队列;
当前待绑定组队列确定子单元,用于将当前待绑定资源队列中,组优先级最高的组队列确定为当前待绑定组队列;
当前待绑定作业确定子单元,用于将当前待绑定组队列中,作业优先级最高的作业确定为当前待绑定作业。
在本发明实施例中任一可选技术方案的基础上,可选的,当前待绑定作业确定单元,还包括:
解绑定操作子单元,用于在将当前待绑定作业预绑定至对应的待绑定节点之后,若当前待绑定作业中已完成预绑定的任务的第二总数量小于第二预设数量,则将已完成预绑定的任务进行解绑定操作,将当前待绑定作业确定为未分配资源的作业;
其中,第二预设数量小于或等于当前待绑定作业中包含的任务的第二总数量。
本发明实施例的技术方案,确定当前待分配资源的当前作业及当前作业的当前资源请求量,在当前集群资源的资源剩余量不满足当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;通过在待驱逐资源队列确定出待驱逐作业,释放待驱逐作业占用的驱逐集群资源,从而释放掉占有过多集群资源的待驱逐资源队列的资源,并将驱逐集群资源分配至当前作业,从而及时执行当前作业,实现了增加集群资源分配的平衡性和合理性,提高作业的执行效率的效果。
值得注意的是,上述作业资源分配装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图11是实现本发明实施例的作业资源分配方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图11所示,电子设备20包括至少一个处理器21,以及与至少一个处理器21通信连接的存储器,如只读存储器(ROM)22、随机访问存储器(RAM)23等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器21可以根据存储在只读存储器(ROM)22中的计算机程序或者从存储单元28加载到随机访问存储器(RAM)23中的计算机程序,来执行各种适当的动作和处理。在RAM23中,还可存储电子设备20操作所需的各种程序和数据。处理器21、ROM22以及RAM23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
电子设备20中的多个部件连接至I/O接口25,包括:输入单元26,例如键盘、鼠标等;输出单元27,例如各种类型的显示器、扬声器等;存储单元28,例如磁盘、光盘等;以及通信单元29,例如网卡、调制解调器、无线通信收发机等。通信单元29允许电子设备20通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器21可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器21的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器21执行上文所描述的各个方法和处理,例如作业资源分配方法。
在一些实施例中,作业资源分配方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元28。在一些实施例中,计算机程序的部分或者全部可以经由ROM22和/或通信单元29而被载入和/或安装到电子设备20上。当计算机程序加载到RAM23并由处理器21执行时,可以执行上文描述的作业资源分配方法的一个或多个步骤。备选地,在其他实施例中,处理器21可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行作业资源分配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (18)
1.一种作业资源分配方法,其特征在于,包括:
确定当前待分配资源的当前作业及所述当前作业的当前资源请求量;
在当前集群资源的资源剩余量不满足所述当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,所述剩余资源队列为除所述当前作业所属的资源队列之外的资源队列;
基于所述待驱逐资源队列确定出待驱逐作业,释放所述待驱逐作业占用的驱逐集群资源,并将所述驱逐集群资源分配至所述当前作业。
2.根据权利要求1所述的方法,其特征在于,资源队列用于存储至少一个用户组的组信息,每个所述用户组对应一个组队列,所述组队列用于存储至少一个作业的作业信息;
所述确定当前待分配资源的当前作业,包括:
在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,将资源优先级最高的第二资源队列确定为当前资源队列;
基于所述当前资源队列中存储的组信息,确定出组优先级最高的当前组队列;
基于所述当前组队列中存储的作业信息,确定出作业优先级最高的作业作为所述当前作业。
3.根据权利要求2所述的方法,其特征在于,所述在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列,包括:
将已使用资源量小于或等于设定的保有资源量的第一资源队列,确定为所述第二资源队列。
4.根据权利要求1所述的方法,其特征在于,所述在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列,包括:
在至少一个剩余资源队列中确定出已使用资源量大于设定的保有资源量的第三资源队列,将资源优先级最低的第三资源队列确定为所述待驱逐资源队列。
5.根据权利要求1所述的方法,其特征在于,所述基于所述待驱逐资源队列确定出待驱逐作业,包括:
若在所述待驱逐资源队列对应的作业中,存在所包括的处于就绪状态的任务的第一总数量小于第一预设数量的第一作业,则在所述第一作业中确定出所述待驱逐作业;其中,所述就绪状态为已被分配集群资源的状态。
6.根据权利要求5所述的方法,其特征在于,还包括:
若在所述待驱逐资源队列对应的作业中,不存在所述第一作业,则基于所述待驱逐资源队列确定出弹性训练作业,在所述弹性训练作业中确定出所述待驱逐作业;其中,所述弹性训练作业是指所包括的待运行任务的数量是根据当前集群的剩余资源确定的作业。
7.根据权利要求6所述的方法,其特征在于,所述在所述弹性训练作业中确定出所述待驱逐作业,包括:
基于所述弹性训练作业的运行时长、调度时间和创建时间,在所述弹性训练作业中确定出所述待驱逐作业。
8.根据权利要求5或6所述的方法,其特征在于,还包括:
若所述待驱逐作业占用的驱逐集群资源的驱逐集群资源量小于所述当前资源请求量,则在所述待驱逐资源队列中确定出至少一个补充驱逐作业,直到各所述补充驱逐作业的补充资源占用量与所述待驱逐作业的待驱逐资源占用量之和大于或等于所述当前资源请求量;
在所述释放所述待驱逐作业占用的驱逐集群资源之后,还包括:
释放至少一个所述补充驱逐作业占用的补充集群资源,并将所述补充集群资源分配至所述当前作业。
9.根据权利要求2所述的方法,其特征在于,在所述在各待分配作业对应的第一资源队列中确定出满足预设条件的第二资源队列之前,还包括:
在提交至集群的各作业中,依次确定出当前待添加作业及所述当前待添加作业的待添加资源请求量;
针对每个所述当前待添加作业,确定所述当前待添加作业对应的当前待添加资源队列、所述当前待添加资源队列的已使用资源量和所述当前待添加资源队列的资源配额,若所述待添加资源请求量与所述当前待添加资源队列的已使用资源量之和,小于所述当前待添加资源队列的资源配额,则基于所述当前待添加资源队列对所述当前待添加作业进行加入队列操作;
所述加入队列操作包括将所述当前待添加作业对应的组队列的组信息,添加至所述当前待添加资源队列中。
10.根据权利要求9所述的方法,其特征在于,所述在提交至集群的各作业中,依次确定出当前待添加作业,包括:
将提交至集群且未添加至资源队列的作业中,作业优先级最高的作业确定为所述当前待添加作业。
11.根据权利要求9所述的方法,其特征在于,所述基于所述当前待添加资源队列对所述当前待添加作业进行加入队列操作之后,还包括:
在各已完成加入队列操作的作业中,依次确定出当前待绑定作业;
针对每个所述当前待绑定作业,确定出当前待绑定任务,针对每个所述当前待绑定任务,在集群中确定出与所述当前待绑定任务对应的所述待绑定节点,为各所述当前待绑定任务,预绑定对应的所述待绑定节点。
12.根据权利要求11所述的方法,其特征在于,所述依次确定出当前待绑定作业,包括:
按照所述当前待绑定作业中包含的任务的任务优先级顺序,依次确定出当前待绑定任务。
13.根据权利要求11所述的方法,其特征在于,所述在集群中确定出与所述当前待绑定任务对应的所述待绑定节点,包括:
基于所述当前待绑定任务的任务资源请求量,在所述集群中筛选出提供资源量大于或等于所述任务资源请求量的备选节点;
基于预先设定的优选函数,确定所述备选节点的优选分值;
将所述优选分值最高的备选节点,确定为与所述当前待绑定任务对应的所述待绑定节点。
14.根据权利要求11所述的方法,其特征在于,所述在各已完成加入队列操作的作业中,依次确定出当前待绑定作业,包括:
在各已完成加入队列操作的作业对应的资源队列中,确定出资源优先级最高的资源队列作为当前待绑定资源队列;
将所述当前待绑定资源队列中,组优先级最高的组队列确定为当前待绑定组队列;
将所述当前待绑定组队列中,作业优先级最高的作业确定为当前待绑定作业。
15.根据权利要求12所述的方法,其特征在于,在所述将所述当前待绑定作业预绑定至对应的所述待绑定节点之后,还包括:
若所述当前待绑定作业中已完成预绑定的任务的第二总数量小于第二预设数量,则将所述已完成预绑定的任务进行解绑定操作,将所述当前待绑定作业确定为未分配资源的作业;
其中,所述第二预设数量小于或等于所述当前待绑定作业中包含的任务的第二总数量。
16.一种作业资源分配装置,其特征在于,包括:
当前资源请求量确定模块,用于确定当前待分配资源的当前作业及所述当前作业的当前资源请求量;
待驱逐资源队列确定模块,用于在当前集群资源的资源剩余量不满足所述当前资源请求量的情况下,在至少一个剩余资源队列中确定出已使用资源量超过设定的保有资源量的待驱逐资源队列;其中,所述剩余资源队列为除所述当前作业所属的资源队列之外的资源队列;
待驱逐作业确定模块,用于基于所述待驱逐资源队列确定出待驱逐作业,释放所述待驱逐作业占用的驱逐集群资源,并将所述驱逐集群资源分配至所述当前作业。
17.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的作业资源分配方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-15中任一项所述的作业资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627927.9A CN115858169A (zh) | 2022-12-16 | 2022-12-16 | 一种作业资源分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627927.9A CN115858169A (zh) | 2022-12-16 | 2022-12-16 | 一种作业资源分配方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858169A true CN115858169A (zh) | 2023-03-28 |
Family
ID=85673862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211627927.9A Pending CN115858169A (zh) | 2022-12-16 | 2022-12-16 | 一种作业资源分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858169A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708454A (zh) * | 2023-08-02 | 2023-09-05 | 之江实验室 | 多集群云计算系统及多集群作业分发方法 |
-
2022
- 2022-12-16 CN CN202211627927.9A patent/CN115858169A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708454A (zh) * | 2023-08-02 | 2023-09-05 | 之江实验室 | 多集群云计算系统及多集群作业分发方法 |
CN116708454B (zh) * | 2023-08-02 | 2023-12-05 | 之江实验室 | 多集群云计算系统及多集群作业分发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3239852B1 (en) | Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform | |
US8332862B2 (en) | Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution | |
US9465663B2 (en) | Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects | |
WO2016197716A1 (zh) | 一种作业调度方法和装置 | |
KR101644800B1 (ko) | 컴퓨팅 시스템 및 방법 | |
US10552213B2 (en) | Thread pool and task queuing method and system | |
CN107579926A (zh) | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 | |
CN112783659B (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
US20130061233A1 (en) | Efficient method for the scheduling of work loads in a multi-core computing environment | |
CN112269641A (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN106775493B (zh) | 一种存储控制器及io请求处理方法 | |
CN109992418B (zh) | Sla感知的多租户大数据平台资源优先级调度方法及系统 | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及系统 | |
US8539495B2 (en) | Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN115858169A (zh) | 一种作业资源分配方法、装置、电子设备及存储介质 | |
US10949368B2 (en) | Input/output command rebalancing in a virtualized computer system | |
CN114968565A (zh) | 资源管理方法、装置、电子设备、存储介质及服务器 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN113190359B (zh) | 一种仿真请求处理方法、装置、电子设备及可读存储介质 | |
CN113254179B (zh) | 基于高响应比的作业调度方法、系统、终端、存储介质 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN116244073A (zh) | 混合关键分区实时操作系统的资源感知型任务分配方法 | |
Singh et al. | Market-inspired dynamic resource allocation in many-core high performance computing systems |
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 |