CN114968565A - 资源管理方法、装置、电子设备、存储介质及服务器 - Google Patents
资源管理方法、装置、电子设备、存储介质及服务器 Download PDFInfo
- Publication number
- CN114968565A CN114968565A CN202210534119.1A CN202210534119A CN114968565A CN 114968565 A CN114968565 A CN 114968565A CN 202210534119 A CN202210534119 A CN 202210534119A CN 114968565 A CN114968565 A CN 114968565A
- Authority
- CN
- China
- Prior art keywords
- resource
- queue
- task
- resources
- scheduled
- 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
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/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/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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了资源管理方法、装置、电子设备、存储介质及服务器,涉及云计算技术领域,尤其涉及云计算集群的资源管理技术领域。实现方案为:在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;从所述第二队列的任务中筛选出目标任务;在该目标任务的资源占用量和剩余资源量能够满足该待调度任务所需的资源量的情况下,回收该目标任务的目标资源并分配给该待调度任务。本实施例支持不同队列之间抢占资源,这样集群资源可以根据用户需求灵活调度,从而提高集群资源的利用率。
Description
技术领域
本公开涉及云计算技术领域,尤其涉及云计算集群的资源管理技术领域。
背景技术
随着云计算技术的发展提出了云原生的概念,云原生是一种可以充分利用云计算优势构建和运行应用的方式。利用云原生技术重塑企业的软件生产流水线,可以加大业务组件的复用程度,将软件交付周期降低到小时甚至分钟级别,从而提升业务的市场嗅觉灵敏度,增强市场反应能力。
然而,在云原生多租户环境下,集群资源无法充分利用,从而导致集群资源浪费。故此,如何提高云计算的集群资源利用率仍有待解决。
发明内容
本公开提供了一种资源管理方法、装置、电子设备、存储介质及服务器。
根据本公开的第一方面,提供了一种资源管理方法,包括:
在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;
从所述第二队列的任务中筛选出目标任务;
在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
根据本公开的第二方面,提供了一种资源管理装置,包括:
队列选取模块,用于在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;
目标任务选取模块,用于从所述第二队列的任务中筛选出目标任务;
调度模块,用于在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述第一方面的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行前述第一方面的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现前述第一方面的方法。
根据本公开的第六方面,提供了一种服务器,该服务器包括前述第三方面的电子设备。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
本实施例提供的方案,本实施例支持不同队列之间抢占资源,这样一个队列的资源不局限于本队列的用户使用,该队列的资源还可以被其他用户抢占使用,由此集群资源可以根据用户需求灵活调度,从而提高集群资源的利用率。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开一实施例的资源管理方法的流程示意图;
图2是根据本公开一实施例的多层资源的示意图;
图3是根据本公开另一实施例的资源管理方法的另一流程示意图;
图4是根据本公开一实施例的资源管理装置的一种组成结构示意图;
图5是根据本公开另一实施例的资源管理装置的另一种组成结构示意图;
图6是用来实现本公开实施例的资源管理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
云计算的集群资源供多用户使用。每个用户都可以将自己的任务提交给集群进行处理。由此,如何有效利用集群资源值得关注。为了提高资源利用率,本公开第一方面实施例提供一种资源管理方法,该方法中集群资源总量可划分到一个或多个队列集合中,队列集合中每个队列配置有相应的资源。同一队列集合内的队列可以互相抢占资源。下面以第一队列为例对本公开实施例提供的资源管理方法进行说明,需要说明的是第一队列可以是其所在队列集合中的任一队列。如图1所示,包括:
步骤S101,在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列。
一个队列中的任务包括已调度任务和待调度任务。已调度任务为已经分配了资源的任务,待调度任务为已在队列排队等待分配资源的任务。
步骤S102,从所述第二队列的任务中筛选出目标任务。
其中,第一队列和第二队列同属于一个队列集合。
步骤S103,在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
由此可见,本实施例支持不同队列之间抢占资源,这样一个队列的资源不局限于本队列的用户使用,该队列的资源还可以被其他用户抢占使用,由此集群资源可以根据用户需求灵活调度,从而提高集群资源的利用率。
在一些实施例中,为了灵活管理资源,提高资源利用率,本公开提出了基于多用户的多层级弹性资源管理。本公开实施例将所述队列集合的资源划分成多个层级,得到所述队列集合;其中,每个层级包括至少一个队列,且每个层级的资源与上一层级的资源为继承关系。如图2所示,为本公开实施例提供的一种多层级资源的资源树的示意图。在图2中多层级资源采用树形结构表示,根部队列a的资源为队列集合的资源总量。队列a为第一层级,第二层级的队列包括队列a1和队列a2,表示队列a的资源划分为队列a1的资源和队列a2的资源。在图2中,第三层级的队列包括队列a11、队列a12、队列a21、队列a22和队列a23。其中,队列a11和队列a12表示将队列a1的资源划分为队列a11和队列a12各自的资源。队列a21、队列a22和队列a23的表示将队列a2的资源划分为队列a21、队列a22和队列a23各自的资源。由此可见,第二层级的队列a1和队列a2继承第一层级队列a的资源,第三层级的队列a11和队列a12继承自第二层级队列a1的资源,队列a21、队列a22和队列a23继承第二层级队列a2的资源。
每个用户可以分配到资源树的根节点,也可以分配到资源树的叶子节点上,基于资源树对用户的分配方式比较灵活。
为了满足不同用户需求,本公开实施例中,不同队列的资源可具有不同的资源类型。资源类型可包括独占资源和共享资源。独占资源,为指定用户可用的资源,该指定用户可以为一个用户也可以为多个用户。共享资源,为多用户可共享的资源。资源树中可允许存在多个队列均为独占资源,不同队列可对应不同的用户。同一用户若具有多个队列,且这多个队列均为独占资源时,这多个队列可构成该用户的独占资源池。队列集合的共享资源可构建共享资源池,一个共享资源池下还可以划分出多个层级,得到多个共享资源池。其中,资源树中每个节点可理解为一个队列。
综上,独占资源和共享资源的队列数不受限制,可根据用户的业务需求配置。
一个队列的资源类型是共享资源还是独占资源可基于该队列的标签确定。在初始阶段,集群中各队列的资源类型均为共享资源。随着用户的加入,为其分配资源后可根据用户的配置将该用户的资源类型调整为独占资源。例如,用户从集群中申请独占指定数量的资源,则为该用户分配指定数量的资源后,分配的这些资源构成该用户的队列,在该队列的标签上标记为该用户的独占资源。
无论是独占资源还是共享资源队列,一个用户提交的任务默认由该用户的队列中的资源进行处理,用于调度资源的调度器会根据该用户的队列对其进行资源调度。
继续以图2为例,假设队列a1为独占资源,队列a11为独占资源,队列a12设置为共享资源。当用户A拥有队列a1的资源时,可将队列a11的独占资源分配给用户A的部门1,其他部门2共享队列a12的资源。在处理部门1的任务时,默认基于队列a11的资源容量进行任务调度,在处理其他部门2的任务时,默认基于队列a12的资源容量进行调度。如果资源不足时,部门1的任务可抢占其他部门2的资源。
在例如,以图2为例,根节点(即队列a)为集群的资源总量,假设队列a下的队列a1为独占资源,队列a2为共享资源,在队列a1下的队列a11为独占资源,队列a12为共享资源,则队列a11和队列a12可构成队列集合,队列a11和队列a12的用户可抢占队列a12的共享资源。队列a2及其下的队列a21、队列a22以及队列a23均为共享资源,队列a21、队列a22和队列a23可构成队列集合,这个队列集合的用户可抢占队列a2内的所有共享资源。
需要说明的是,队列集合包括哪些队列可根据业务需求确定,队列集合限定了资源范围。
此外,用户可根据业务需求配置资源类型,也可以对资源类型进行调整,由此实现对资源类型的灵活配置、按需配置。
需要说明的是,本公开实施例中对资源层级的划分并不限定,图2仅用于说明本公开实施例提供的资源划分方法。而且,本公开实施例中并不局限于图2所示的一颗资源树。本公开实施例中还可以支持多颗资源树,每颗资源树可看做本公开实施例中的一个队列集合。一个集群的资源总量,可划分出不同的资源树,从而得到不同的队列集合。
综上可见,多层级的资源划分方式,能够调度多粒度的资源,多粒度的资源,便于灵活的回收和调度资源,从而实现弹性资源管理,提高资源利用率。
除了资源类型这一属性外,本公开实施例中,为了保证队列的资源能够满足任务的需求,每个队列还设置有资源量下限这一属性。资源量下限用于衡量一个队列是否可抢占其他队列的资源。
判断是否需要抢占其他队列的资源时,需要考虑队列的资源占用量情况。一个队列的任务可包括已在该队列调度的已调度任务和即将调度资源的待调度任务。已调度任务会占用资源,基于此,针对前文所述的第一队列的待调度任务,判断其是否需要跨队列抢占资源时,可实施为:
确定所述第一队列中已调度任务的资源占用量与所述待调度任务所需的资源量的总和;
在所述总和大于所述第一队列的资源量下限和/或所述队列结合的资源充足的情况下,确定所述待调度任务不需要跨队列抢占资源;
在所述总和小于所述第一队列的资源量下限且队列集合的剩余资源不足的情况下,确定所述待调度任务需要跨队列抢占资源。
例如,继续以图2为例。假设第一队列为队列a21,队列a21中的资源占用量为s1、待调度任务所需的资源量为s2,两者的总和s=s1+s2。当s小于队列a21的资源量下限b121时,说明队列a21自己的资源未被自己完全占用,且有一部分资源被其他队列抢占,此时,队列a21可以抢占其他队列占用的资源,以保证自己任务的运行。
本实施例中,当集群资源不足时,若队列中已占用资源量和待调度任务所需的资源量之和小于资源量下限时,说明队列的资源被其他队列抢占使用,应该保证该队列的任务优先执行,故此可抢占其他队列的资源。由此,本实施例提供的资源抢占条件能够公平的抢占其他队列的资源,从而实现对不同队列的资源的合理调度。
需要说明的是,本公开实施例中的资源量下限可根据业务需求配置。一种可能的实施方式中,可在确保队列的任务基本安全的最低资源消耗的基础上,来设置资源量下限。例如,确保任务基本安全的最低资源消耗的资源量为d,则资源量下限可设置为在d附近且大于等于d。
对于具有继承关系的父子队列而言,同一父队列若有多个子队列,这多个子队列的资源量下限之和需要小于或等于父队列的资源量下限。继续以图2为例。队列a是队列a1和队列a2的父队列,队列a1和队列a2是队列a的子队列。假设队列a的资源量下限为b0,则队列a1和队列a2的资源量下限之和需小于或等于b0。图2中,队列a1的资源量下限为b11,队列a2的资源量下限为b12,则配置时,可配置为b11+b12=b0。由此,父子队列都能够保证自身任务安全运行所需的最低资源消耗。
资源量下限还可以衡量一个队列的任务超发情况。例如当一个队列的资源占用量超过资源量下限时,这时候该队列的待调度任务都属于超发任务。基于资源量下限可以衡量一个队列的任务超发程度,以便于进行任务控制。
在任务控制这一方面,如图2所示,本公开实施例还为每个队列设置了资源量上限这一属性。资源量上限用于限制队列上任务的资源消耗上限,由此避免某个队列无止境的抢占其他队列的资源。与资源量下限设置不同,队列的资源量上限原则上不超过父队列的资源量上限即可。
基于资源量上限,本实施例可合理调度队列集合内的资源。例如,基于待调度任务,可确定第一队列的已调度任务的资源占用量和待调度任务所需的资源量的总和,如果该总和超过所述第一队列的所述资源量上限,说明第一队列的任务超发过多,需要限制该队列的资源消耗。在该总和未超过所述第一队列的资源量上限的情况下,说明待调度任务可执行,则调度所述队列集合的资源;若调度成功,则说明队列集合的剩余资源充足,可执行待调度任务。若调度失败,则会接收到调度失败的消息,可响应于该调度失败的消息,确定所述队列集合的剩余资源不足。之后可基于前文所述的方式判断待调度任务是否需要跨队列抢占资源。
由此,本实施例中采用资源量上限能够限制一个队列的资源消耗,避免一个队列占用过多资源。且通过尝试调度队列集合的资源的方式,可准确判断资源是否充足。
需要说明的是,判断资源是否充足的方式还可以采用其他方式,例如,可维护队列集合的剩余资源量,当剩余资源量能够满足待调度任务所需的资源量时说明资源充足,否则说明资源不充足。
此外,确定第一队列的已调度任务的资源占用量和待调度任务所需的资源量的总和后,在所述总和大于等于所述第一队列的资源量下限且小于所述第一队列的资源量上限的情况下,在所述第一队列内筛选任务优先级低于所述待调度任务的待抢占任务;
在筛选到所述待抢占任务、且所述待抢占任务的资源占用量和所述剩余资源量满足所述待调度任务所需的资源量的情况下,回收所述待抢占任务的资源并分配给所述待调度任务。
由此,可保证高优先级的任务能够及时被执行。
此外,当待抢占任务的资源占用量和所述剩余资源量无法满足所述待调度任务所需的资源量的情况下,可保留待调度任务,等待一段时间重新进行资源抢占。
在一些实施方式中,为了更加高效的利用资源,本实施例中对一些指定硬件资源还可以划分成多个资源片。可采用虚拟化隔离技术将指定硬件资源虚拟出多个资源片。
每个资源片都有相应的资源信息,例如资源片类型、标识和使用情况等。其中,资源片类型用于表示该资源片属于何种硬件资源,例如属于GPU(Graphics ProcessingUnit,图形处理器),资源片的标识用于唯一标识该资源片以便于进行资源调度、资源片的使用情况例如描述该资源片的使用率或描述该资源片是否被占用等。
这多个资源片的资源信息可存储到分布式缓存中,以便于调度器能够基于资源片的粒度调度指定硬件资源。
在资源调度层面,针对待调度任务而言,在回收第二队列的目标资源之后,若目标资源为指定硬件资源且划分为多个资源片,则可以从所述多个资源片中调度出至少一个资源片处理所述第一队列的待调度任务。由此,将指定硬件资源划分为多个资源片,在调度和回收时能够更细粒度的管理指定硬件资源,从而提高指定硬件资源的利用率。
例如,指定硬件资源可以为GPU、AI(Artificial Intelligence,人工智能)加速卡等昂贵的硬件资源。以GPU为例,将GPU整卡算力、显存资源进行细分(例如分成100份),由此多个任务可按照新的资源粒度并行使用这一张GPU的资源,使得昂贵的硬件资源得以充分的利用。实施时,资源上报组件可采集GPU的资源信息,并将该资源信息同步到集群的分布式缓存中,以便于调度器在调度时可基于资源片的粒度调度GPU。
在调度时,对于指定硬件资源,调度器可监听集群中指定硬件资源的资源信息。待调度任务需要调度该指定硬件资源时,依据指定硬件资源的硬件拓扑亲和性,得到指定硬件资源的评分列表,该评分列表中记录有各指定硬件资源的评分。
在使用硬件拓扑亲和性进行评分时,可获取指定硬件资源的与其他硬件资源之间的连接方式,然后基于连接方式确定指定硬件资源的评分。两个硬件资源之间的连接方式可有多种,连接方式不同,相应的分值不同。例如指定硬件资源1和其他硬件之间具有第一连接方式,第一连接方式对应分值为m1,则指定硬件资源1的分值为m1。指定硬件资源2与其他硬件之间具有两种连接方式,分别为第二连接方式和第三连接方式,这两种连接方式的评分分别为m2和m3,则指定硬件资源2的评分为(m2+m3),若(m2+m3)大于m1,则说明指定硬件资源2的评分高于指定硬件资源1。可总结为,预先配置不同连接方式的评分,基于指定硬件资源的各连接方式的评分之和得到指定硬件资源的评分。
在评分时,还可以按照指定硬件资源组进行评分。继续以GPU为例,如1台设备上具有8张GPU卡,编号依次为0-7。其中,编号为0-3的为第一组指定硬件资源组,编号为4-7的为另一组指定硬件资源组。每两个卡(GPU卡和其他卡)之间连接方式可能有多种,不同连接方式通信速度可能有差别。一个GPU组的多种连接方式的打分总和代表这个GPU组的分值。
评分的分值越高可代表通信能力越强。故此,在为待调度任务选择指定硬件资源或指定硬件资源组时,按照评分从高到低的顺序依次尝试进行资源调度。
在另一些实施例中,每个队列还可以具有抢占属性。该抢占属性用于标记该队列的资源是否允许被抢占。如图2所示,抢占属性为Ture时,表示队列的资源允许被抢占,抢占属性为False时,说明队列的资源不允许被抢占。以图2中的共享资源队列a2为例,其子队列包括队列a21、队列a22和队列a23。其中,队列a21和队列a23的抢占属性为Ture,即允许被抢占。队列a22的抢占属性为False,表示不允许被抢占。由此,在抢占资源时,需要从允许被抢占的队列中获得资源。
针对待调度任务而言,选取用于抢占资源的第二队列时,从所述队列集合中,选取资源占用量大于资源量阈值且抢占属性为允许抢占的队列作为所述第二队列。其中资源量阈值可以根据需求设置,资源量阈值可以与资源量下限相同。
本实施例中,队列的抢占属性丰富了资源的属性,可以进一步按需的进行资源调度。当优先从占用资源量大且允许被抢占的资源时,能够进一步保证资源的抢占秩序,合理利用资源。
此外,本公开实施例可以按需指定第二队列进行资源抢占。可实施为由集群资源管理员来指定第二队列。例如用户将待调度任务提交到任务队列,若确定该待调度任务需要跨队列抢占资源时,该待调度任务分配给集群资源管理员,由集群资源管理员指定哪个或哪些队列作为第二队列供待调度任务抢占资源。此外,还可以设置预设的规则来确定第二队列。例如,默认从用户所在队列集合的共享资源中抢占资源。综上,在选取第二队列时,可以不仅要求第二队列的资源允许被抢占,且第二队列的资源占用量大于资源量阈值,还可以进一步要求第二队列的资源类型为共享资源。由此,抢占资源时,均在共享资源之间进行抢占,可保持独占资源的独立性和专用性。
当然,在另一些实施例中,同一独占资源若存在多个指定用户,则这多个指定用户也可以互相抢占独占资源。
选出的第二队列可以是资源树中一个节点也可以是多个节点。当选出第二队列之后,需要从第二队列中筛选出目标任务。该目标任务可以是第二队列中的一个任务也可以是多个任务,实施时,可基于第二队列中任务的重要程度,从第二队列中筛选出多个候选任务,然后从候选任务中优先选择重要程度低的任务作为目标任务。如果抢占一个候选任务的资源能够满足待调度任务的资源需求,则目标任务为这一个候选任务,如果抢占一个候选任务的资源不能满足待调度任务的资源需求,则可以基于任务的重要程度选取多个候选任务作为目标任务。
需要说明的是,选取的目标任务若属于同一目标队列,则抢占目标任务的目标资源后,目标队列的剩余占用资源量应不小于目标队列的资源量下限,由此保证目标队列中任务的正常运行。
为便于系统性理解本公开提供的资源管理方法,下面结合图3对该方法进行说明,包括:
1)抢占者筛选
开启本周期的资源抢占后,在步骤S301,筛选出已在队列中排队但由于队列集合的资源不足无法调度的任务构建抢占者队列。
第一队列的用户创建任务后,任务会添加到第一队列中。第一队列中尚未调度到资源的待调度任务会进行排序。如按照任务优先级、待调度任务的历史记录中的资源使用率、待调度任务的创建时间等参数进行排序,得到待调度任务的调度顺序。基于调度顺序,确定为待调度任务调度资源时,先确定第一队列的已调度任务的资源占用量和待调度任务所需的资源量的总和,若该总和小于第一队列的资源量上限,则尝试为待调度任务调度资源,若调度失败,则该待调度任务作为抢占者添加到抢占者队列中。队列集合中任一队列都按照第一队列的方式筛选出抢占者添加到抢占者队列中。
步骤302,判断抢占者队列是否为空,若为空则结束操作;若不为空,则执行步骤303。
步骤303,从抢占者队列中选择出一个待调度任务。
步骤304,判断待调度任务是否需要跨队列抢占资源。
其中,如果待调度任务所需的资源量和第一队列的已调度任务的资源占用量之间的总和小于第一队列的资源量下限,则待调度任务需要跨队列抢占资源。如果待调度任务所需的资源量和已调度任务的资源占用量之间的总和大于或等于第一队列的资源量下限,需要在步骤S305中,在队列内进行资源抢占。
在队列内进行资源抢占时,可以根据任务优先级确定是否抢占队列内的任务的资源,若找到任务优先级低于待调度任务的待抢占任务,且待抢占任务的资源占用量和剩余资源量满足待调度任务所需的资源量,则抢占成功。回收队列内的待抢占任务的资源并分配给待调度任务。若找不到任务优先级小于待调度任务的待抢占任务,亦或者找到了待抢占任务,但待抢占任务的资源占用量和剩余资源量不能满足待调度任务所需的资源量,则抢占失败,待调度任务留在抢占者队列中,等待下一周期的抢占。
执行完步骤S305之后,在步骤S306中,进行下一轮资源抢占。
2)资源回收
如果在步骤S304中确定执行跨队列资源抢占,则在步骤S307中,从队列集合中筛选出资源占用量超过资源量下限且允许抢占的第二队列。
其中,还可以要求第二队列的资源类型为共享资源。第二队列的数量可以有至少一个,为便于执行,每次选择一个队列作为第二队列进行任务抢占。
步骤S308,对第二队列中的任务进行打分。打分的方式例如根据任务优先级、任务创建时间进行打分。
步骤S309,按照第二队列的任务得分,从第二队列中筛选出候选任务。任务得分代表任务的重要程度,例如,任务得分越高代表该任务越重要,由此可筛选出得分小于得分阈值的任务作为候选任务。也可以按照得分到由低到高的顺序筛选出设定数量的任务作为候选任务。
步骤S310,对候选任务进行排序得到候选任务序列。
其中,按照候选任务的得分对候选任务进行排序,越不重要的任务排序越靠前,以便于抢占不重要的任务的资源。
3)资源抢占
步骤S311,判断候选任务队列是否为空,若为空则在步骤S316中,确定抢占失败,并返回执行步骤S306进行下一轮抢占;若候选任务队列不为空,则执行步骤S312。
步骤S312,从候选任务队列中选择一个候选任务作为目标任务。
步骤S313,确定目标任务的目标资源和队列集合的剩余资源是否满足待调度任务的资源需求,该剩余资源的资源量为目标任务的资源占用量和空闲资源的资源量之和,若剩余满足则执行步骤S314,若不满足则继续在候选任务队列中追加候选任务到目标任务中进行抢占。例如,若抢占候选任务1的资源仍不满足待调度任务的需求,则从候选任务队列中追加候选任务2,此时,候选任务1和候选任务2构成目标任务。若候选任务队列中所有候选任务的资源都被抢占也无法满足待调度任务的资源需求,则结束操作,待调度任务保留在抢占者队列中并等待下一周期开始资源抢占。
步骤S314,抢占成功,并标记待调度任务抢占位置。其中,分布式任务调度中,每个任务包括多个子任务,在进行资源抢占时一个任务抢占另一个任务的资源。因为存在多个任务抢占资源的情况,故此,待调度任务如果成功抢占资源,则需要通过标记抢占位置的方式,将待调度任务和目标任务的目标资源关联起来,以便于确定待调度任务抢占了哪些资源。
步骤S315,根据步骤S314标记的抢占位置,抢占目标任务的目标资源。
本公开第二方面实施例提供一种资源管理装置,如图4所示,包括:
队列选取模块401,用于在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;
目标任务选取模块402,用于从所述第二队列的任务中筛选出目标任务;
调度模块403,用于在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
在图4的基础上,如图5所示,所述装置还包括:
判断模块404,用于确定所述第一队列中已调度任务的资源占用量与所述待调度任务所需的资源量的总和;
在所述总和小于所述第一队列的资源量下限且队列集合的剩余资源不足的情况下,确定所述待调度任务需要跨队列抢占资源,其中,所述第一队列和所述第二队列包含在所述队列集合中。
所述判断模块404还用于:
在所述总和未超过所述第一队列的资源量上限的情况下,调度所述队列集合的资源;
响应于调度失败的消息,确定所述队列集合的剩余资源不足。
其中,所述目标资源为指定硬件资源,所述指定硬件资源具有多个资源片,所述调度模块403还用于:
从所述多个资源片中调度出至少一个资源片处理所述待调度任务。
所述队列选取模块401,用于:
从所述队列集合中,选取资源占用量大于资源量阈值且抢占属性为允许抢占的队列作为所述第二队列。
所述装置还包括:
资源划分模块405,用于将所述队列集合的资源划分成多个层级,得到所述队列集合,并得到所述队列集合中各队列的资源类型;
其中,每个层级包括至少一个队列,且每个层级的资源与上一层级的资源为继承关系;所述队列集合中各队列的资源类型包括独占资源或共享资源。
所述调度模块403还用于:
在所述总和大于等于所述第一队列的资源量下限且小于所述第一队列的资源量上限的情况下,在所述第一队列内筛选任务优先级低于所述待调度任务的待抢占任务;
在筛选到所述待抢占任务、且所述待抢占任务的资源占用量和所述剩余资源量满足所述待调度任务所需的资源量的情况下,回收所述待抢占任务的资源并分配给所述待调度任务。
本实施例支持不同队列之间抢占资源,这样一个队列的资源不局限于本队列的用户使用,该队列的资源还可以被其他用户抢占使用,由此集群资源可以根据用户需求灵活调度,从而提高集群资源的利用率。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储电子设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
电子设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的资源管理方法。例如,在一些实施例中,资源管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行资源管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源管理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种资源管理方法,包括:
在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;
从所述第二队列的任务中筛选出目标任务;
在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
2.根据权利要求1所述的方法,还包括:
确定所述第一队列中已调度任务的资源占用量与所述待调度任务所需的资源量的总和;
在所述总和小于所述第一队列的资源量下限且队列集合的剩余资源不足的情况下,确定所述待调度任务需要跨队列抢占资源,其中,所述第一队列和所述第二队列包含在所述队列集合中。
3.根据权利要求2所述的方法,所述方法还包括:
在所述总和未超过所述第一队列的资源量上限的情况下,调度所述队列集合的资源;
响应于调度失败的消息,确定所述队列集合的剩余资源不足。
4.根据权利要求2所述的方法,其中,所述目标资源为指定硬件资源,所述指定硬件资源具有多个资源片,所述方法还包括:
从所述多个资源片中调度出至少一个资源片处理所述待调度任务。
5.根据权利要求2所述的方法,所述选取第二队列,包括:
从所述队列集合中,选取资源占用量大于资源量阈值且抢占属性为允许抢占的队列作为所述第二队列。
6.根据权利要求2所述的方法,所述方法还包括:
将所述队列集合的资源划分成多个层级,得到所述队列集合,并得到所述队列集合中各队列的资源类型;
其中,每个层级包括至少一个队列,且每个层级的资源与上一层级的资源为继承关系;所述队列集合中各队列的资源类型为独占资源或共享资源。
7.根据权利要求3所述的方法,所述方法还包括:
在所述总和大于等于所述第一队列的资源量下限且小于所述第一队列的资源量上限的情况下,在所述第一队列内筛选任务优先级低于所述待调度任务的待抢占任务;
在筛选到所述待抢占任务、且所述待抢占任务的资源占用量和所述剩余资源量满足所述待调度任务所需的资源量的情况下,回收所述待抢占任务的资源并分配给所述待调度任务。
8.一种资源管理装置,包括:
队列选取模块,用于在确定第一队列的待调度任务,需要跨队列抢占资源的情况下,选取第二队列;
目标任务选取模块,用于从所述第二队列的任务中筛选出目标任务;
调度模块,用于在所述目标任务的资源占用量和剩余资源量能够满足所述待调度任务所需的资源量的情况下,回收所述目标任务的目标资源并分配给所述待调度任务。
9.根据权利要求8所述的装置,还包括:
判断模块,用于确定所述第一队列中已调度任务的资源占用量与所述待调度任务所需的资源量的总和;
在所述总和小于所述第一队列的资源量下限且队列集合的剩余资源不足的情况下,确定所述待调度任务需要跨队列抢占资源,其中,所述第一队列和所述第二队列包含在所述队列集合中。
10.根据权利要求9所述的装置,所述判断模块还用于:
在所述总和未超过所述第一队列的资源量上限的情况下,调度所述队列集合的资源;
响应于调度失败的消息,确定所述队列集合的剩余资源不足。
11.根据权利要求9所述的装置,其中,所述目标资源为指定硬件资源,所述指定硬件资源具有多个资源片,所述调度模块还用于:
从所述多个资源片中调度出至少一个资源片处理所述待调度任务。
12.根据权利要求9所述的装置,所述队列选取模块,用于:
从所述队列集合中,选取资源占用量大于资源量阈值且抢占属性为允许抢占的队列作为所述第二队列。
13.根据权利要求9所述的装置,所述装置还包括:
资源划分模块,用于将所述队列集合的资源划分成多个层级,得到所述队列集合,并得到所述队列集合中各队列的资源类型;
其中,每个层级包括至少一个队列,且每个层级的资源与上一层级的资源为继承关系;所述队列集合中各队列的资源类型为独占资源或共享资源。
14.根据权利要求10所述的装置,所述调度模块还用于:
在所述总和大于等于所述第一队列的资源量下限且小于所述第一队列的资源量上限的情况下,在所述第一队列内筛选任务优先级低于所述待调度任务的待抢占任务;
在筛选到所述待抢占任务、且所述待抢占任务的资源占用量和所述剩余资源量满足所述待调度任务所需的资源量的情况下,回收所述待抢占任务的资源并分配给所述待调度任务。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-7中任一项所述的方法。
18.一种服务器,包括如权利要求15所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534119.1A CN114968565A (zh) | 2022-05-17 | 2022-05-17 | 资源管理方法、装置、电子设备、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534119.1A CN114968565A (zh) | 2022-05-17 | 2022-05-17 | 资源管理方法、装置、电子设备、存储介质及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968565A true CN114968565A (zh) | 2022-08-30 |
Family
ID=82983448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210534119.1A Pending CN114968565A (zh) | 2022-05-17 | 2022-05-17 | 资源管理方法、装置、电子设备、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968565A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097681A (zh) * | 2023-10-16 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 网络资源的调度方法、装置和存储介质及电子设备 |
CN117234740A (zh) * | 2023-11-13 | 2023-12-15 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
-
2022
- 2022-05-17 CN CN202210534119.1A patent/CN114968565A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097681A (zh) * | 2023-10-16 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 网络资源的调度方法、装置和存储介质及电子设备 |
CN117097681B (zh) * | 2023-10-16 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 网络资源的调度方法、装置和存储介质及电子设备 |
CN117234740A (zh) * | 2023-11-13 | 2023-12-15 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
CN117234740B (zh) * | 2023-11-13 | 2024-02-20 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
Abdulhamid et al. | Fault tolerance aware scheduling technique for cloud computing environment using dynamic clustering algorithm | |
CN110727512B (zh) | 集群资源调度方法、装置、设备及储存介质 | |
CN109565515B (zh) | 分布式资源管理系统中的动态租户结构调整的系统、设备和过程 | |
US9852035B2 (en) | High availability dynamic restart priority calculator | |
CN108549583B (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
CN114968565A (zh) | 资源管理方法、装置、电子设备、存储介质及服务器 | |
US20130227127A1 (en) | Schedule management method and schedule management server | |
US11526382B2 (en) | Cascading job scheduling in guests | |
WO2022105659A1 (zh) | 应用容器管理方法、装置及设备 | |
CN112114973A (zh) | 一种数据处理方法及装置 | |
CN108028806B (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
US10949368B2 (en) | Input/output command rebalancing in a virtualized computer system | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN116157778A (zh) | 共享物理主机上混合集中分布式调度的系统和方法 | |
CN115858169A (zh) | 一种作业资源分配方法、装置、电子设备及存储介质 | |
CN114327897A (zh) | 一种资源分配方法、装置及电子设备 | |
CN114168294A (zh) | 编译资源分配方法、装置、电子设备及存储介质 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
Hu et al. | Low latency big data processing without prior information | |
Postoaca et al. | h-Fair: asymptotic scheduling of heavy workloads in heterogeneous data centers | |
CN112308304B (zh) | 工作流执行时间优化方法及装置 | |
Phan | Energy-efficient straggler mitigation for big data applications on the clouds |
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 |