CN113010309B - 集群资源调度方法、装置、存储介质、设备和程序产品 - Google Patents

集群资源调度方法、装置、存储介质、设备和程序产品 Download PDF

Info

Publication number
CN113010309B
CN113010309B CN202110228808.5A CN202110228808A CN113010309B CN 113010309 B CN113010309 B CN 113010309B CN 202110228808 A CN202110228808 A CN 202110228808A CN 113010309 B CN113010309 B CN 113010309B
Authority
CN
China
Prior art keywords
resource
quota
request
current
resources
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
Application number
CN202110228808.5A
Other languages
English (en)
Other versions
CN113010309A (zh
Inventor
田燕
李祥红
张胜卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110228808.5A priority Critical patent/CN113010309B/zh
Publication of CN113010309A publication Critical patent/CN113010309A/zh
Application granted granted Critical
Publication of CN113010309B publication Critical patent/CN113010309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种集群资源调度方法、装置、存储介质、设备和程序产品,其中,集群资源调度方法包括,接收当前使用对象的资源使用请求;判断当前使用对象的基础资源的可用额度是否满足当前使用对象的资源使用请求;当前使用对象的基础资源的可用额度不满足资源使用请求时,判断计算机集群的空闲资源的额度是否满足资源使用请求;当计算机集群的空闲资源的额度满足资源使用请求时,从空闲资源中为当前使用对象分配目标额度的资源,目标额度与资源使用请求相匹配,在计算机集群中存在足量的空闲资源时,可以将空闲资源分配给基础资源的可用额度无法满足其资源使用请求的使用对象,从而充分的利用计算机集群的空闲资源,提高计算机集群的资源利用率。

Description

集群资源调度方法、装置、存储介质、设备和程序产品
技术领域
本公开涉及互联网技术领域,尤其涉及一种集群资源调度方法、装置、存储介质、设备和程序产品。
背景技术
计算机集群(简称集群),可以认为是由多个松散集成的计算机软件或硬件通过网络连接从而协作完成计算任务的一个系统,其中每一个计算机硬件相当于该系统的一个计算节点。利用集群进行计算任务需要消耗集群的资源(包括但不限于占用处理器的一段工作时间,以及占用一定的存储空间)。要使集群的每一个使用对象(指运行于集群的计算机服务,或者具有集群的使用权限的用户)均能够使用集群执行计算任务,就需要对集群的资源进行调度。
现有的调度方法是,为每一个使用对象分配一定配额的基础资源,使用对象可以用基础资源执行计算任务,当使用对象请求执行新的计算任务时,若该使用对象当前使用的资源的额度超过基础资源的配额,就必须等待当前使用资源被释放,直至该使用对象的基础资源的可用额度满足新的计算任务的需求时才能执行新的计算任务。
现有的这种调度方法的缺点在于,集群的空闲资源无法被有效利用,集群的资源利用率较低。
发明内容
本公开提供一种集群资源调度方法、装置、存储介质、设备和程序产品,以至少解决相关技术中计算机集群的资源利用率较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种集群资源调度方法,包括:
接收当前使用对象的资源使用请求;
判断所述当前使用对象的基础资源的可用额度是否满足所述当前使用对象的资源使用请求;其中,所述基础资源是为满足所述当前使用对象的最低使用需求而分配的集群资源;
当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配目标额度的资源;其中,所述目标额度与所述资源使用请求相匹配。
可选的,所述判断当前使用对象的基础资源的可用额度是否满足所述当前使用对象的资源使用请求之后,还包括:
当所述当前使用对象的基础资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第一使用对象释放除对应的基础资源以外的资源,并从释放后的所述计算机集群的空闲资源中,为所述当前使用对象分配所述目标额度的资源;其中,所述第一使用对象为当前使用的资源的额度大于对应的基础资源的配额的使用对象;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前基础额度减去所述目标额度得到的差值,更新所述当前使用对象的基础资源的可用额度;其中,所述分配前基础额度指代为所述当前使用对象分配资源之前所述当前使用对象基础资源的可用额度。
可选的,所述控制第一使用对象释放除对应的基础资源以外的资源,包括:
控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述无保障资源为优先级低于所述基础资源的优先级的集群资源;集群资源的优先级表征集群资源被分配给集群的使用对象的先后顺序;
当所有无保障资源均被释放、且所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制所述第一使用对象释放超用资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述超用资源为,优先级高于所述无保障资源的优先级、且低于所述基础资源的优先级的集群资源。
可选的,所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求之前,还包括:
判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制第一使用对象释放对应额度的超用资源,直至所述计算机集群的可分配额度满足所述资源使用请求;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求。
可选的,所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求之前,还包括:
判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求;
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述当前使用对象的超用资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的无保障资源的可用额度是否满足所述资源使用请求;
当所述当前使用对象的无保障资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前无保障额度减去所述目标额度得到的差值,更新所述当前使用对象的无保障资源的可用额度;其中,所述分配前无保障额度是为所述当前使用对象分配资源之前,所述当前使用对象的无保障资源的可用额度;
当所述当前使用对象的无保障资源的可用额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
可选的,所述从所述空闲资源中为所述当前使用对象分配资源,包括:
从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
可选的,所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求之后,还包括:
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第二使用对象释放对应额度的无保障资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述第二使用对象为当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象;
从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
可选的,所述判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求之后,还包括:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为:所述计算机集群的资源总额与所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和的差值;
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求。
根据本公开实施例的第二方面,提供一种集群资源调度装置,包括:
接收单元,被配置为执行接收当前使用对象的资源使用请求;
第一判断单元,被配置为执行判断所述当前使用对象的基础资源的可用额度是否满足所述当前使用对象的资源使用请求;
第二判断单元,被配置为执行当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
分配单元,被配置为执行当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配目标额度的资源;其中,所述目标额度与所述资源使用请求相匹配。
可选的,所述第二判断单元还被配置为执行:
当所述当前使用对象的基础资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
其中,所述装置还包括:
控制单元,被配置为执行当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第一使用对象释放除对应的基础资源以外的资源;
所述分配单元,还被配置为执行从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配与所述资源使用请求相匹配的资源;其中,所述第一使用对象为当前使用的资源的额度大于对应的基础资源的配额的使用对象;
所述分配单元,还被配置为执行当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
更新单元,被配置为执行以分配前基础额度减去所述目标额度得到的差值,更新所述当前使用对象的基础资源的可用额度;其中,所述分配前基础额度指代为所述当前使用对象分配资源之前所述当前使用对象基础资源的可用额度。
可选的,所述控制单元控制第一使用对象释放除对应的基础资源以外的资源时,具体执行:
控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述无保障资源为优先级低于所述基础资源的优先级的集群资源;集群资源的优先级表征集群资源被分配给集群的使用对象的先后顺序;
当所有无保障资源均被释放、且所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制所述第一使用对象释放超用资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述超用资源为,优先级高于所述无保障资源的优先级、且低于所述基础资源的优先级的集群资源。
可选的,所述第二判断单元还被配置为执行:
判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
其中,所述控制单元还被配置为执行:
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制第一使用对象释放对应额度的超用资源,直至所述计算机集群的可分配额度满足所述资源使用请求。
可选的,所述第一判断单元还被配置为执行:
当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求;
当所述当前使用对象的超用资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的无保障资源的可用额度是否满足所述资源使用请求;
所述第二判断单元还被配置为执行:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述当前使用对象的无保障资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
所述分配单元还被配置为执行:
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前无保障额度减去所述目标额度得到的差值,更新所述当前使用对象的无保障资源的可用额度;其中,所述分配前无保障额度是为所述当前使用对象分配资源之前,所述当前使用对象的无保障资源的可用额度;
当所述当前使用对象的无保障资源的可用额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
可选的,所述分配单元从所述空闲资源中为所述当前使用对象分配与所述资源使用请求相匹配的资源时,具体执行:
从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
可选的,所述控制单元还被配置为执行:
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第二使用对象释放对应额度的无保障资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述第二使用对象为当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象;
所述分配单元还被配置为执行,从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
可选的,所述第二判断单元还被配置为执行:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为:所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
所述控制单元还被配置为执行,当所述计算机集群的可分配额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如本公开实施例第一方面的任意一项提供的集群资源调度方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例第一方面的任意一项提供的集群资源调度方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品被执行时,用于实现本公开实施例的第一方面的任意一项提供的集群资源调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在计算机集群中存在足量的空闲资源时,可以将空闲资源分配给对应的第一资源无法满足其资源使用请求的使用对象,从而充分的利用计算机集群的空闲资源,提高计算机集群的资源利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种计算机集群的架构示意图;
图2是根据一示例性实施例示出的一种集群资源调度方法的流程图;
图3是根据一示例性实施例示出的一种利用基础资源的可用额度为使用对象分配资源的方法的流程图;
图4是根据一示例性实施例示出的另一种利用基础资源的可用额度为使用对象分配资源的方法的流程图;
图5是根据一示例性实施例示出的另一种集群资源调度方法的流程图;
图6是根据一示例性实施例示出的一种集群资源调度装置的结构框图;
图7是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
为了便于理解本申请提供的集群资源调度方法,首先图1说明目前常见的计算机集群的架构。一个计算机集群可以理解为通过网络连接的多个计算机硬件(或者说计算机设备)组成的一个系统,目前常见的计算机集群是如图1所示的异构计算机集群,组成异构计算机集群的各个计算机硬件的类型不完全相同,例如,一个异构计算机集群可以包括若干台个人使用的家用电脑,或者便携式电脑,还可以包括多台服务器,同时,计算机设备的硬件配置和型号也可以不完全相同,例如,可能有的计算机设备配置有GPU(GraphicsProcessing Unit,图形处理器),而有的计算机设备则未配置图形处理器。
如图1所示,计算机集群中可以设置有调度中心,该调度中心可以理解为运行于计算机集群的特定服务器上的计算机程序,调度中心可以实时监控当前计算机集群整体的资源使用情况,以及计算机集群的各个使用对象的资源使用情况,并基于以上资源使用情况,控制各个使用对象使用或者释放对应的计算机资源。
计算机集群(以下简称集群)的使用对象,可以指代运行在计算机集群上的服务,或者由多个相互关联的服务组成的服务组。服务可以理解为用于按一定的方式处理用户提供的待处理数据的计算机程序的集合,用户可以向计算机集群上传待处理数据,对应的服务基于用户提供的待处理数据建立一个计算任务,然后根据这个计算任务的需求建立若干个由集群中计算机设备的处理器(即CPU)运行的进程,并占用计算机设备的一定空间的内存(即随机存取存储器,Random Access Memory,RAM),通过运行这些进程完成对应的计算任务。
集群的使用对象,也可以指代注册到集群的,或者说具有集群的使用权限的用户(或者多个用户组成的用户组),如前文所述,执行一个计算任务需要占用集群的一定量的资源,而计算任务是由服务响应于用户提供的待处理数据而建立的,因此,执行计算任务时占用的资源,既可以认为是建立该计算任务的服务使用的资源,也可以认为是提供对应的待处理数据的用户使用的资源。
需要说明的是,尽管集群的使用对象可以有上述两种定义,调度中心对集群的资源进行调度时一般会基于其中的一种定义进行调度,而不会两种定义混合使用。也就是说,调度中心可以统一以服务(或者服务组)为单位进行资源的调度,例如规定每个服务(或者服务组)最多可以使用多少资源,也可以统一以用户(或者用户组)为单位进行资源的调度,例如规定用户(或者用户组)最多可以使用多少资源。
一个特定的集群可以有多种类型的资源,例如,集群中各计算机设备的CPU和GPU可运行的进程,可用的内存,向集群外的设备传输数据所用的网络带宽等,均可以认为是集群的几种资源。
可以理解的,一个集群的资源的总额一般是固定的,例如,一个集群的所有CPU和GPU可能最多能同时运行50000个进程,那么,该集群的进程资源的总额(不妨记为X1)就是50000。集群中所有计算机设备的可用内存之和为100GB,那么集群的内存资源的总额(不妨记为X2)就是100GB。集群中个计算机设备的网络带宽之和为10GB/s,则集群的带宽资源的总额(不妨记为X3)就是10GB/s。
在集群资源的总额的限制下,为了让集群的各个使用对象均能够使用集群执行一定量的计算任务,就需要调度中心进行合理的调度,下面请参考图2,本申请实施例提供一种集群资源调度方法,该方法可以包括:
本申请任一实施例提供的资源的调度方法,可以由集群的调度中心执行。
S201、接收当前使用对象的资源使用请求。
资源使用请求,至少包括,当前使用对象所要执行的计算任务需要的资源的类型,以及对应类型的资源的额度。
需要说明的是,集群可以同时执行当前使用对象的多个计算任务,也就是说,在执行步骤S201时,集群可能正在执行当前使用对象的若干个计算任务,也就是说当前使用对象就使用(或者说占用)了集群的对应额度的资源。除正在执行的计算任务以外,当前使用对象有新的计算任务需要执行时,就会向集群的调度中心发送这个新的计算任务对应的资源使用请求。
当前使用对象指代用户时,用户可以根据自身的需求向集群上传一份待处理数据,从而触发对应的服务建立计算任务并向调度中心发送资源使用请求。
当前使用对象指代服务时,服务可以响应与用户上传的待处理数据而建立计算任务,并向调度中心发送资源使用请求。
例如,用户甲上传了一份待处理数据,需要由集群的服务Y进行处理,服务Y基于这份待处理数据确定对应的计算任务,并根据待处理数据的数据量以及具体的处理方式,确定执行该计算任务,需要建立m个进程,并且执行过程中需要占用nKB的内存,其中m和n均为正整数。
若该集群以服务为单位进行资源的调度,则上述资源使用请求可以包括以下信息:
服务Y,请求的进程数量:m,请求的内存空间(KB):n。
若该集群以用户为单位进行资源的调度,则上述资源使用请求可以包括:
用户甲,请求的进程数量:m,请求的内存空间(KB):n。
通过上述资源使用请求,调度中心就可以确定该资源使用请求对应的当前使用对象,以及该资源使用请求所请求的资源的类型以及额度。
S202、判断基础资源的可用额度是否满足当前使用对象的资源使用请求。
步骤S202中的基础资源,是指分配给当前使用对象的基础资源。
为了让每一个使用对象均能够使用计算机集群,调度中心会预先给集群的每一个使用对象设定一个基础资源的配额,若将使用对象记为i,则使用对象i的基础资源的配额可以记为Qi,进一步的,为了区分不同类型的基础资源的配额,可以用Qi1表示基础进程资源的配额,Qi2表示基础内存资源的配额,Qi3表示基础带宽资源的配额。
需要说明的是,为使用对象设置基础资源的目的在于,使每一个使用对象在有需要的时候均能够至少使用等于该使用对象的基础资源的配额的资源。也就是说,一个使用对象的基础资源,可以认为是,在分配计算机集群的资源时,为了满足这个使用对象的最低使用需求而分配给这个使用对象的一部分集群资源。
为了确保这一效果,在设置每一个使用对象的基础资源的配额时,应当控制集群中某一类型的资源的总额,大于或等于所有使用对象的该类型的基础资源的配额之和。
例如,假设集群由M个使用对象,则设定每个使用对象的基础进程资源的配额Qi1时,应当确保设定的结果满足下述公式:
Figure BDA0002957994670000111
当一个使用对象当前使用的资源的额度小于对应的基础资源的配额时,该使用对象当前使用的资源均属于该使用对象的基础资源,对应的,这种情况下,该使用对象的基础资源的可用额度,就是对应的基础资源的配额,减去该使用对象当前使用的资源的额度后得到的差值。
当一个使用对象当前使用的资源的额度大于或等于对应的基础资源的配额时,那些超出基础资源的配额的资源,就是该使用对象使用的除基础资源以外的资源。在这种情况下,可以认为该使用对象的基础资源已用尽,即基础资源的可用额度为0。
综上,判断当前使用对象的基础资源的可用额度是否满足资源使用请求,其执行过程可以是:
首先识别出资源使用请求中请求使用的每一种资源的类型,以及资源使用请求记载的每一类型的资源的额度,也就是当前使用对象请求使用的每一类型的资源的额度。例如,识别出请求的进程数量:m,表示当前使用对象需要新建并运行m个进程来执行对应的计算任务,识别出请求的内存空间为nKB,表示执行对应的计算任务时需要占用nKB的内存。
对每一类型的资源,将当前使用对象的该类型的基础资源的可用额度和资源使用请求中记载的该类型资源的额度进行比较,得到对应的比较结果。
若每一类型的资源的比较结果均为,当前使用对象的对应类型的基础资源的可用额度大于或等于资源使用请求记载的该类型的资源的额度,则判断出当前使用对象的基础资源的可用额度满足当前使用对象的资源使用请求,此时执行步骤S203。
反之,对于记载于资源使用请求中的所有类型,若存在至少一个类型,其对应的比较结果为,当前使用对象的该类型的基础资源的余小于资源使用请求中记载的该类型的资源的额度,则判断出当前使用对象的基础资源的可用额度不满足当前使用对象的资源使用请求,此时执行步骤S204。
S203、利用当前使用对象的基础资源的可用额度为当前使用对象分配目标额度的资源。
其中,目标额度指代与资源使用请求相匹配的额度。例如,资源使用请求所需要的资源为nKB的内存空间,以及m个进程,那么步骤S203中的目标额度就是nKB,m个进程,步骤S203相当于,将nKB的内存空间以及m个进程分配给当前使用对象使用。
后续类似的资源分配步骤的执行过程和上述过程一致,不再详述。
S204、判断计算机集群的空闲资源的额度是否满足资源使用请求。
计算机集群的空闲资源,指代,集群中当前尚未被使用的资源。
具体来说,若集群最多可以同时运行10000个进程,而当前正在运行的进程的数量为7000,就说明集群当前还可以再运行3000个进程,换言之,也就是集群当前的空闲进程资源的额度为3000。
另外,假设集群总共有10GB的内存,当前已经占用的内存的大小为9.5GB,则集群当前的空闲内存资源的额度为0.5GB。
步骤S204所述判断的具体过程与步骤S202类似,即对于资源使用请求所请求的每一类型的资源,判断集群中该类型的空闲资源的额度是否大于或等于资源使用请求所请求的额度,若资源使用请求记载的每一类型的集群的空闲资源的额度均大于资源使用请求所请求的额度,则判断出空闲资源的额度满足资源使用请求,反之,若存在至少一个资源使用请求记载的类型的空闲资源的额度小于资源使用请求所请求的额度,则判断出空闲资源的额度不满足资源使用请求。
若集群的空闲资源的额度满足资源使用请求,执行步骤S205,若集群的空闲资源的额度仍然不满足资源使用请求,则执行步骤S206。
S205、从集群的空闲资源中为当前使用对象分配目标额度的资源。
步骤S205,可以理解为,允许当前使用对象使用集群的空闲资源,允许使用的额度与资源使用请求中记载的额度一致。
例如,假设资源使用请求请求运行的进程数量为m,请求使用的内存空间为nKB,则在空闲资源的额度能够满足资源使用请求的情况下,调度中心可以向提出该资源使用请求的服务发送至少一个目标计算机标识,使得提出该资源使用请求的服务可以在对应的目标计算机上建立并利用目标计算机的处理器运行共计m个进程,并在进程运行期间使用目标计算机上共计nKB的未被使用的内存,通过运行这些进程完成针对用户提供的待处理数据的计算任务。
在当前使用对象的基础资源的可用额度大于0,即当前使用对象的基础资源的配额尚未用完,但是基础资源的可用额度不满足资源使用请求的情况下,若执行了步骤S205,直接从集群的空闲资源中当前使用对象分配了与资源使用请求相匹配的资源,则可以认为分配给当前使用对象的资源,包含其基础资源中剩余的一部分资源,而除了剩余的这部分基础资源以外的部分则来自于集群的空闲资源。所以在这种情况下分配了为当前使用对象分配了资源之后,需要将当前使用对象的基础资源的可用额度清零。
若当前使用对象指代集群中的某个服务,则步骤S205,可以理解为,允许这个服务使用与其资源使用请求相匹配的资源处理当前需要处理的数据。
若当前使用对象指代集群内的某个用户,则步骤S205,可以理解为,允许收到该用户上传的待处理数据的服务使用与资源使用请求相匹配的资源处理该用户本次上传的待处理数据。
S206、控制当前使用对象的资源使用请求处于等待状态。
控制资源使用请求处于等待状态,具体可以包括,拒绝为当前使用对象分配与资源使用请求相匹配的资源,并将收到的资源使用请求写入等待队列,可选的,在执行步骤S206时,还可以向当前使用对象发送拒绝分配资源的提示信息。
与步骤S205相对的,拒绝为当前使用对象分配资源,可以理解为,不允许当前使用对象使用其在资源使用请求中请求的资源。
若当前使用对象指代集群中的某个服务,则拒绝为当前使用对象分配资源,可以理解为,不允许该服务使用其在资源使用请求中所请求的资源来处理数据。
若当前使用对象指代集群的某个用户,则拒绝为当前使用对象分配资源,可以理解为,不允许集群的任意一个服务使用与资源使用请求相匹配的资源处理该用户上传的待处理数据。
对于等待队列中的资源使用请求,调度中心可以实时地判断当前使用对象的基础资源的可用额度是否满足该资源使用请求,以及实时地判断集群的空闲资源的额度是否满足该资源使用请求,若判断出当前使用对象的基础资源的可用额度满足该资源使用请求,则执行前述步骤S203,若判断出当前使用对象基础资源的可用额度不满足该资源使用请求,但是集群的空闲资源的额度满足该资源使用请求,则执行前述步骤S205。
一方面,本方案为集群的每一个使用对象设定了对应的基础资源的配额,以此来确保每个使用对象在有需要时均能够至少使用集群中与基础资源的配额对应资源,从而满足每个使用对象的基本使用需求。
另一方面,在整个集群执行的计算任务较少,集群相对空闲的情况下,即集群的空闲资源的额度能够满足当前使用对象的资源使用请求的情况下,本实施例提供的调度方法允许当前使用对象使用超出基础资源的配额的资源,或者说允许当前使用对象允许使用除基础资源以外的资源,通过这种方式可以避免在集群相对空闲时集群中的资源被长期闲置的情况,充分利用集群的空闲资源,提高集群的资源利用率。
参考前述实施例的步骤S203,本申请提供的资源调度方法在当前使用对象的基础资源的可用额度能够满足当前使用对象的资源使用请求时,会利用当前使用对象的基础资源的可用额度为当前使用对象分配与资源使用请求相匹配的资源,请参考图3,该步骤的具体执行过程可以包括以下步骤:
S301、判断计算机集群的空闲资源的额度是否满足资源使用请求。
步骤S301的具体执行过程与图2对应的实施例中的步骤S204一致,此处不再详述。
若判断出集群的空闲资源的额度满足资源使用请求,则执行步骤S302,反之,若判断出集群的空闲资源的额度不满足资源使用请求,则执行步骤S303。
S302、从计算机集群的空闲资源中为当前使用对象分配目标额度的资源。
步骤S302的具体执行过程与步骤图2所示的实施例中的步骤S205一致,此处不再详述。
S303、按预设的控制策略控制第一使用对象释放除对应的基础资源以外的资源,直至释放后集群的空闲资源的额度满足资源使用请求。
释放后集群的空闲资源,指代,执行步骤S301时集群原有的空闲资源,以及执行步骤S303时第一使用对象释放的资源的集合。
上述第一使用对象,指代,当前使用的资源的额度,超过对应的基础资源的配额的使用对象。
例如,假设使用对象指代集群的用户,用户甲的基础资源的配额包括,100个进程,以及1GB的内存,而当前集群中共计运行有150个用于处理用户甲提供的待处理数据(这些待处理数据可以是用户甲分多次上传的,也可以是用户甲一次性上传的)的进程,这些进程运行时共计占用了2GB的内存,可以发现,用户甲当前使用的资源的额度大于其基础资源的配额,因此,用户甲就是一个第一使用对象。
由于在设定每个使用对象的基础资源的配额时,一般会控制所有使用对象的基础资源的配额之和不大于集群的资源的总额,因此,在当前使用对象的基础资源的可用额度可以满足其资源使用请求,而集群的空闲资源的额度不满足资源使用请求的情况下,集群中一般会有至少一个使用对象当前使用的资源超过对应的基础资源的配额,换言之,会存在至少一个第一使用对象。
当集群中只存在一个第一使用对象时,执行步骤S303时只需要控制这个第一使用对象释放当前使用的资源,释放的资源的额度应当满足,被释放的资源的额度,和执行步骤S301是集群原有的空闲资源的额度之和,大于或等于当前使用对象的资源使用请求所请求的资源的额度。
按预设的控制策略控制第一使用对象释放资源,可以理解为,按预设的控制策略停止第一使用对象的一部分正在运行的进程,并清空这些被停止的进程所占用的内存。
可以理解的,资源被释放后的计算机设备,其处理器将可运行当前使用对象所请求的进程,并提供对应大小的内存以支持这些进程的运行。
在只有一个第一使用对象时,一方面,上述控制策略可以是,将集群中正在运行的属于第一使用对象的进程,依据运行时长排序,然后按运行时长由短至长逐一停止属于第一使用对象的进程,直至释放后集群的空闲资源的额度满足资源使用请求为止。
另一方面,上述控制策略也可以是,向第一使用对象发送资源释放命令,资源释放命令中可以记载第一使用对象至少需要释放的资源的额度,使得第一使用对象根据自身的情况,例如,根据当前运行的各个进程在相应业务上的优先级从低到高逐一停止对应的进程,并清空内存。
在存在多个第一使用对象时,上述控制策略可以是,调度中心预先为集群的每一个使用对象设定一个资源使用优先级,由此,在执行步骤S303时,可以将多个第一使用对象依据资源使用的优先级从低到高进行排序,在释放资源时,首先按前述控制单个第一使用对象的方法控制优先级最低的第一使用对象释放资源,若优先级最低的第一使用对象释放了除基础资源以外的所有资源后,集群的空闲资源仍不满足当前使用对象的资源使用请求,在继续控制资源使用的优先级次低的第一使用对象释放资源,以此类推,其中资源使用优先级最高的第一使用对象,只有在其他第一使用对象均释放了除对应的基础资源以外的资源之后,才会释放自身使用的资源。
需要说明的是,在步骤S303中,每一个第一使用对象所释放的,仅仅是自身使用的资源中超出基础资源的部分,而不需要释放自身使用的基础资源,结合前述例子,用户甲当前使用的进程共计有150个,占用内存2GB,但释放资源时最多只需要释放超出基础资源的部分,也就是最多只需要停止当前运行的150个进程中任意50个进程,以及从占用的2GB内存中情况1GB的内存,剩余的100个进程以及1GB的内存可以继续使用。
S304、从释放后的计算机集群的空闲资源中为当前使用对象分配目标额度的资源。
步骤S304的具体执行过程与前述步骤S302一致,两者的区别仅仅在于,步骤S302中分配的,是执行步骤S301时集群原有的空闲资源,而步骤S304分配的,既包括执行步骤S301时集群原有的空闲资源,也包括在步骤S303中第一使用对象释放的资源。
如步骤S303和步骤S304所述的过程,可以理解为,在基础资源的可用额度可以满足当前使用对象的资源使用请求的前提下,当前使用对象可以抢占集群中第一使用对象所使用的除对应的基础资源以外的资源。
S305、以分配前基础额度减去目标额度的差值,更新当前使用对象的基础资源的可用额度。
分配前基础额度,是指执行步骤S302或步骤S304之前,当前使用对象的基础资源的可用额度,也就是为当前使用对象分配目标额度的资源之前的基础资源可用额度。
在执行本实施例之前,当前使用对象i的基础资源的可用额度,等于当前使用对象i的基础资源的配额Qi,减去当前使用对象在执行本实施例之前使用的资源的额度,将此时的可用额度记为可用额度1。
通过执行本实施例所述的方法,当前使用对象使用的资源的额度增加了,具体增加了在步骤S302或步骤S304中分配给当前使用对象的资源的目标额度(记为k),因此,在执行步骤S305时,需要用原本的基础资源的可用额度1,减去本次分配给当前使用对象的资源的额度k,得到可用额度2,将可用额度2,作为本次分配完成之后,当前使用对象的基础资源的可用额度。
换言之,步骤S305也可以理解为:以当前使用对象的基础资源的可用额度减去分配给当前使用对象的资源的额度后的可用额度,更新当前使用对象的基础资源的可用额度。
在如图2所示的资源调度方法中,有可能会出现一部分使用对象使用集群中过多的资源(即使用的资源的额度超过对应的基础资源的配额),导致集群的空闲资源无法满足其他使用对象使用基础资源的需求的情况。
例如,假设集群有20个使用对象,在第一个时间段内,只有第1至第10个使用对象在使用集群,并且第一个时间段内这10个使用对象所要执行的计算任务较多,导致需要使用的资源的额度超过这10个使用对象的基础资源的配额,依据图2所示的方法,在第一个时间段内调度中心就会给这10个使用对象分配总额超过对应的基础资源的配额的资源,导致第一个时间段内集群的大部分资源由第1至第10个使用对象使用,也就是说,在第一个时间段内,第11至第20个使用对象未使用集群,或者使用的资源远少于对应的基础资源配额,相当于对应的基础资源闲置,因此调度中心将第一个时间段内这些闲置的基础资源分配给第1至第10个使用对象。
而在第一个时间段结束,进入第二个时间段后,第11至第20个使用对象需要执行的计算任务也增多,导致需要使用的资源的额度接近对应的基础资源的配额,由于第一个时间段内集群的大部分资源由第1至第10个使用对象使用,此时集群的空闲资源的额度并不能满足第11至第20个使用对象使用对应配额的基础资源的需求,此时就可以通过执行如图3所示的方法将第1至第10个使用对象使用的超出对应的基础资源的配额的资源(或者说除基础资源以外的资源)释放出来并分配给第11至第20个使用对象。
如图3所示的实施例的方法,可以在这种情况下释放第一使用对象使用的超出基础资源以外的资源,将第一使用对象使用的超出基础资源以外的资源分配给使用的资源的额度少于对应的基础资源的配额的使用对象,从而保证集群的每个使用对象,均能够在有需要的情况使用指定配额的基础资源,满足每个使用对象对基础资源的使用需求。
总而言之,如图3所示的实施例的效果在于,当任意一个使用对象的基础资源被其他使用对象占用,导致这个使用对象无法使用指定配额的基础资源时,可以通过如图3所示的方法从其他使用对象占用的资源的抢占对应额度的基础资源,从而保证集群的每个使用对象在任意时刻均能够使用对应配额的基础资源。
在本申请的另一个实施例中,为了提供一种更灵活的资源分配方案,可以进一步将集群中每一使用对象使用的超出基础资源以外的资源,划分为超用资源和无保障资源两部分。其中,超用资源的优先比基础资源的优先级低,并且比无保障资源的优先级高。也就是说,按优先级高低排序时,基础资源>超用资源>无保障资源。
本申请中所定义的优先级,用于表征资源被分配给对应的使用对象使用时的先后顺序,其中,优先级高的资源将优先分配给使用对象使用,优先级低的资源则在优先级高的资源用完后再分配给使用对象使用。
例如,当前使用对象同时配置了基础资源,超用资源和无保障资源,当前使用对象提出资源使用请求时,若优先级最高的基础资源尚有剩余(即基础资源的可用额度可以满足资源使用请求),就从基础资源中为当前使用对象分配目标额度的资源,若基础资源用尽,优先级次高的超用资源尚有剩余,则从超用资源中为当前使用对象分配目标额度的资源,在超用资源也用尽的情况下,才从优先级最低的无保障资源中为当前使用对象分配目标额度的资源。
与基础资源的配额类似,每一个使用对象i都会设定一个超用资源的配额(记为Ri),与基础资源的配额类似,一个使用对象在不同的类型的资源上可以有对应的超用资源的配额,例如超用进程资源的配额记为Ri1,超用内存资源的配额记为Ri2等。无保障资源的配额可以设定,也可以不设定,使用对象i的无保障资源的配额可以记为Bi,类似的,针对不同类型的无保障资源的配额可以记为Bi1,Bi2等,不再详述。
对于一个使用对象而言,使用对象i当前使用的资源的额度P小于或等于基础资源的配额Qi时,当前使用的所有资源均为使用对象i的基础资源。使用对象i当前使用的资源的额度P大于基础资源的配额Qi,但是小于或等于基础资源的配额Qi和超用资源的配额Ri之和,换言之,超出基础资源的配额Qi的部分小于或等于超用资源的配额Ri时,使用对象i使用的资源包括基础资源Qi,以及超用资源P-Qi两部分。使用对象i当前使用的资源P大于基础资源的配额Qi和超用资源的配额Ri之和时,使用对象i使用的,除基础资源Qi和超用资源Ri以外的资源,就是使用对象i当前使用的无保障资源,无保障资源的额度为P-Qi-Ri,即当前使用的资源的额度,减去基础资源的配额和超用资源的配额,得到的结果就是使用的无保障资源的额度。
需要说明的是,集群的所有使用对象的基础资源的配额和超用资源的配额的和,可以大于集群的资源的总额,进一步的,在设定了无保障资源的配额的情况下,集群的所有使用对象的基础资源的配额、超用资源的配额以及无保障资源的配额的和,也可以大于集群的资源的总额。
在划分了上述三种优先级的资源的情况下,如图3所示的实施例中,当前使用对象的基础资源的可用额度满足当前使用对象的资源使用请求,并且需要抢占第一使用对象所使用的超出基础资源以外的资源时,可以优先抢占第一使用对象所使用的优先级最低的资源,也就是无保障资源,在仅仅抢占无保障资源无法满足资源使用请求时,再抢占第一使用对象的超用资源。
具体的,在划分了上述三种优先级的资源的情况下,如图2所示的实施例中利用当前使用对象的基础资源的可用额度为当前使用对象分配目标额度的资源的步骤,其具体执行过程可以包括如图4所示的步骤:
S401、判断计算机集群的空闲资源的额度是否满足资源使用请求。
若计算机集群的空闲资源的额度满足资源使用请求,则执行步骤S402,反之,若计算机集群的空闲资源的额度不满足资源使用请求,则执行步骤S403。
S402、从计算机集群的空闲资源中为当前使用对象分配目标额度的资源。
S403、控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者集群的空闲资源的额度满足资源使用请求。
步骤S403的具体执行过程与图3所示的实施例中的步骤S303类似,首先从集群的至少一个第一使用对象中识别当前使用的资源包含无保障资源的第一使用对象,也就是识别出当前使用的资源的额度大于对应的基础资源的配额和超用资源的配额之和的第一使用对象,然后按步骤S303所述的控制方法控制这部分第一使用对象释放当前使用的无保障资源,例如,停止超出基础资源的配额和超用资源的配额之和的进程,以及清空超出基础资源的配额和超用资源的配额之和的内存等。
若所有无保障资源均被释放,或者释放一部分无保障资源后判断集群的空闲资源的额度已经满足资源使用请求,则执行步骤S404。
S404、判断释放后集群的空闲资源的额度是否满足资源使用请求。
若释放后集群的空闲资源的额度满足资源使用请求,则执行步骤S406,若释放后集群的空闲资源的额度仍不满足资源使用请求,表明此时仅仅释放集群中所有的无保障资源并不足以满足当前使用对象使用基础资源的需求,因此,需要执行步骤S405,继续控制第一使用对象释放超用资源。
S405、控制第一使用对象释放超用资源,直至释放后的集群的空闲资源的额度满足资源使用请求。
步骤S405的具体执行过程与前述步骤S403和步骤S303类似,即通过逐步停止每个第一使用对象超出基础资源的配额的进程,清空内存等手段逐渐释放超用资源,以使得释放后的集群的空闲资源的额度满足资源使用请求。具体过程可以结合前述步骤,此处不再详述。
S406、从释放后的集群的空闲资源中为当前使用对象分配目标额度的资源。
S407、以分配前基础额度减去目标额度的差值,更新当前使用对象的基础资源的可用额度。
步骤S403至步骤S406所述的过程,可以理解为,在当前使用对象的基础资源的可用额度满足资源使用请求,但是集群的空闲资源并不满足当前使用对象的资源使用请求的情况下,可以优先抢占优先级最低的无保障资源,在所有的无保障资源均被抢占后,若空闲资源的额度仍不满足资源使用请求,则当前使用对象可以继续抢占优先级低于基础资源的优先级的超用资源。
根据设定的资源优先级由低至高抢占其他使用对象使用的资源的作用在于,对于使用的资源超出自身的基础资源的使用对象,可以根据不同种类的资源的优先级将这些资源分配给自身的计算任务,其中无保障资源分配给重要程度最低的计算任务,超用资源分配给重要程度较高的计算任务,这样在发生图4所示的资源抢占的过程时,每一个使用的资源超出自身的基础资源的使用对象可以依据重要程度中止各项计算任务并释放对应的资源,其中占用无保障资源的重要程度最低的计算任务最先释放,若仍不满足条件在释放重要程度较高的计算任务的超用资源,从而尽可能地保证重要程度较高的计算任务的运行。
可选的,若集群的每一个使用对象使用的所有无保障资源和所有超用资源均被释放之后,集群的空闲资源的额度仍然不满足当前使用对象的资源使用请求,则可以认为设定基础资源的配额时出错,设定的基础资源的配额并不满足前述条件,此时,为了避免集群过载,可以控制当前使用对象的资源使用请求处于等待状态,并输出基础资源的配额设定错误的提示信息,从而更正各个使用对象的基础资源的配额。
可选的,仍然参考图4,在执行本实施例所提供的方法的步骤S401之前,还可以执行如步骤S408和步骤S409所述的预判断过程,具体如下:
S408、判断集群的可分配额度是否满足资源使用请求。
其中,可分配额度为:集群的资源总额与已使用额度的差值。已使用额度,是指,集群中所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和。执行步骤S408时,可以将集群中每一个使用对象当前使用的基础资源的额度,以及每一个使用对象当前使用的超用资源的额度累加,得到当前使用的基础资源和超用资源总额,然后用集群的资源的总额,减去当前使用的基础资源和超用资源总额,得到集群的可分配额度。
步骤S408与前述实施例中判断集群的空闲资源的额度是否满足资源使用请求相似,也就是将资源使用请求所请求的每一类型的资源的可分配额度,和资源使用请求所请求的该类型的资源的额度进行比较,若每一类型的资源的可分配额度均大于或等于资源使用请求所请求的资源的额度,则判断出可分配额度满足资源使用请求。反之,若存在至少一个资源使用请求所请求的类型的资源,其可分配额度小于资源使用请求所请求的额度,则判断出可分配额度不满足资源使用请求。
判断出集群的可分配额度满足资源使用请求时,直接执行前述步骤S401;判断出集群的可分配额度不满足资源使用请求时,执行步骤S409。
S409、控制第一使用对象释放对应额度的超用资源,直至计算机集群的可分配额度满足资源使用请求。
可选的,若每一个使用对象使用的所有超用资源均被释放后,计算机集群的可分配额度仍然不满足资源使用请求,则可以认为设定基础资源的配额时出错,设定的基础资源的配额并不满足前述条件,此时,为了避免集群过载,可以控制当前使用对象的资源使用请求处于等待状态,并输出基础资源的配额设定错误的提示信息,从而更正各个使用对象的基础资源的配额。
步骤S409执行完后,继续执行前述步骤S401。
根据可分配额度的定义,可以理解,当集群的可分配额度不满足资源使用请求时,即使释放集群的每一个使用对象所使用的无保障资源,释放后集群的空闲资源的额度也无法满足资源使用请求,换言之这种情况下必须释放一部分超用资源。通过执行步骤S408和步骤S409所述的预判断过程,可以提前发现这一情况并指示对应的使用对象预先执行释放相应的超用资源的操作,使对应的使用对象有更多时间确定释放哪部分超用资源并提前对要释放的超用资源所对应的计算任务进行备份和保存。
请参考图5,在划分了上述三种优先级的资源的情况下,可以将如图2所示的实施例中,在判断出当前使用对象的基础资源的可用额度不满足资源使用请求之后执行的步骤S204至步骤S206替换为如图5所示的步骤:
S501、判断超用资源的可用额度是否满足资源使用请求。
步骤S501的超用资源,是指,给当前使用对象配置的超用资源,相应的,超用资源的可用额度,是指,当前使用对象的超用资源的可用额度。
步骤S501的具体执行过程和前述步骤S202类似,即首先确定当前使用对象当前使用的超用资源的额度,然后用当前使用对象的超用资源的配额减去当前使用对象现在使用的超用资源的额度,得到当前使用对象的超用资源的可用额度,通过比较对应类型的超用资源的可用额度和资源使用请求所请求的资源的额度,判断当前使用对象的超用资源的可用额度是否满足资源使用请求。具体过程可以参考步骤S202此处不再详述。
若判断出当前使用对象的超用资源的可用额度满足资源使用请求,则执行步骤S502,若判断出当前使用对象的超用资源的可用额度不满足资源使用请求,则执行步骤S503。
S502、利用当前使用对象的超用资源的可用额度为当前使用对象分配目标额度的资源。
S503、判断当前使用对象是否允许使用无保障资源。
若当前使用对象不允许使用无保障资源,则执行步骤S506,若当前使用对象允许使用无保障资源,则执行步骤S504。
由于无保障资源的优先级最低,在其他使用对象产生资源使用请求,并且其他使用对象的基础资源的可用额度或超用资源的可用额度可以满足资源使用请求的情况下很容易被抢占,因此,若当前使用对象本次发送的资源使用请求所请求的资源需要用于执行较重要的计算任务,则当前使用对象可以选择不允许使用无保障资源,以避免对应的资源被频繁的抢占。
S504、判断空闲资源的额度是否满足资源使用请求。
若集群的空闲资源的额度满足资源使用请求,则执行步骤S505,若集群的空闲资源的额度不满足资源使用请求,则执行步骤S506。
S505、从空闲资源中为当前使用对象分配目标额度的资源。
S506、控制资源使用请求处于等待状态。
可选的,为了控制集群中每个使用对象可以使用的资源的上限,可以为每一个使用对象设定一个无保障资源的配额。设定无保障资源的配额的情况下,可以在前述步骤S503中,判断出当前使用对象允许使用无保障资源的情况下,由原本执行步骤S504,变更为执行如下判断:
判断当前使用对象的无保障资源的可用额度是否满足资源使用请求。
若当前使用对象的无保障资源的可用额度满足资源使用请求,则继续执行前述步骤S504,若当前使用对象的无保障资源的可用额度不满足资源使用请求,则不再执行步骤S504,而直接执行步骤S506。
另外,为使用对象设定了无保障资源的配额的情况下,在执行步骤S505时,还需要执行:
以当前使用对象的分配前无保障额度,减去目标额度,然后用得到的差值更新当前使用对象的无保障资源的可用额度。
分配前无保障额度,是指,为当前使用对象分配目标额度的资源之前,当前使用对象的无保障资源的可用额度。
在执行上述更新步骤时,若当前使用对象的超用资源的可用额度为0,则分配给当前使用对象的无保障资源的额度,就是本次分配给当前使用对象的资源的额度。若当前使用对象的超用资源的可用额度大于0,这种情况下可以认为本次分配给当前使用对象的资源一部分是超用资源,一部分是无保障资源,假设本次分配给当前使用对象的资源的额度为k,此时当前使用对象的超用资源的可用额度为r,则此时步骤S5025中分配给当前使用对象的无保障资源的额度,就等于本次分配给当前使用对象的资源的额度,减去当前使用对象的超用资源的可用额度,也就是k-r,并且,这种情况下还需要将当前使用对象的超用资源的可用额度设置为0。
为每个使用对象设定无保障资源的配额并执行对应的判断的原因在于,控制每一个使用对象所能够使用的资源的额度的上限。具体来说,由于基础资源,超用资源和无保障资源之间的优先级的关系,当一个使用对象正在使用无保障资源,且无保障资源的可用额度无法满足该使用对象本次的资源使用请求时,该使用对象i当前使用的对象已经接近其基础资源的配额Qi,超用资源的配额Ri以及无保障资源的配额Bi之和,此时如果继续为该使用对象分配与资源使用请求匹配的资源,会导致该使用对象使用的资源的额度大于这三个配额之和。而对于一个集群而言,为一个使用对象分配过多的使用资源,有可能存在安全隐患,因此,需要通过设置无保障资源的配额,控制一个使用对象最多能够使用的资源的额度上限,从而防止为一个使用对象分配过多的资源。
步骤S502中,利用当前使用对象的超用资源的可用额度为当前使用对象分配与资源使用请求相匹配的资源的执行过程,与图3所示的方法类似,仍然参考图5,该过程可以包括如下步骤
S5021、判断空闲资源的额度是否满足当前使用对象的资源使用请求。
若集群的空闲资源的额度满足资源使用请求,则执行步骤S5022,若集群的空闲资源的额度不满足资源使用请求,则执行步骤S5023。
S5022、从空闲资源中为当前使用对象分配目标额度的资源。
S5023、控制第二使用对象释放对应额度的无保障资源,直至集群的空闲资源的额度满足资源使用请求。
第二使用对象,指代当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象。
与前述第一使用对象类似,集群可以有至少一个第二使用对象。
S5024、从释放后的集群的空闲资源中为当前使用对象分配目标额度的资源。
可选的,若每一个使用对象使用的无保障资源均被释放后,集群的空闲资源仍然不满足当前使用对象的资源使用请求,可以控制资源使用请求处于等待状态,并输出相应的错误提示信息。
S5025、以分配前超用额度减去目标额度的差值,更新当前使用对象的超用资源的可用额度。
分配前超用额度,是指,判断出当前使用对象超用资源的可用额度满足资源使用请求之后,为当前使用对象分配目标额度的资源之前,当前使用对象的超用资源的可用额度。
举例来说,假设给当前使用对象分配目标额度的资源之前,当前使用对象的超用资源的可用额度记为可用额度3,分配的目标额度为额度k,那么,分配完成后,在步骤S5025中,需要将可用额度3减去额度k,把得到的差值(记为可用额度4)记为分配之后,当前使用对象超用资源的可用额度。
步骤S5025,也可以理解为,以当前使用对象的超用资源的可用额度减去分配给当前使用对象的超用资源的额度后的可用额度,更新当前使用对象的超用资源的可用额度。
在执行步骤S5025时,若当前使用对象的基础资源的可用额度为0,则分配给当前使用对象的超用资源的额度,就是本次分配给当前使用对象的资源的额度。若当前使用对象的基础资源的可用额度大于0,这种情况下可以认为本次分配给当前使用对象的资源一部分是基础资源,一部分是超用资源,假设本次分配给当前使用对象的资源的额度为k,此时当前使用对象的基础资源的可用额度为q,则此时步骤S5025中分配给当前使用对象的超用资源的额度,就等于本次分配给当前使用对象的资源的额度,减去当前使用对象的基础资源的可用额度,也就是k-q,并且,这种情况下还需要将当前使用对象的基础资源的可用额度设置为0。
步骤S5023和步骤S5024所述的过程,可以认为是,由于无保障资源的优先级低于超用资源的优先级,在当前使用对象的超用资源的可用额度可以满足当前使用对象的资源使用请求、且集群的空闲资源的额度不满足当前使用对象的资源使用请求的情况下,当前使用对象可以抢占集群的第二使用对象当前使用的无保障资源。以满足自身使用超用资源的需求。
在步骤S5021至步骤S5025所述的,利用当前使用对象的超用资源的可用额度为当前使用对象分配与资源使用请求相匹配的资源的过程中,一方面在集群的空闲资源可以满足资源使用请求时,直接将这些相应额度的空闲资源分配给当前使用对象使用,而不需要抢占其他使用对象当前使用的无保障资源,尽可能避免其他使用对象当前利用无保障资源运行的计算任务被中止。
另一方面,在集群的空闲资源不满足资源使用请求时,适当抢占其他使用对象的无保障资源来满足当前使用对象的资源使用请求。如前文所述,占用超用资源运行的计算任务的重要程度高于占用无保障资源运行的计算任务,上述抢占无保障资源的方案,可以在集群的资源总量不足的情况下,通过终止其他使用对象重要程度最低的计算任务的方式优先保障当前使用对象的重要程度较高的计算任务的运行,根据计算任务的重要程度合理调配集群的资源。
可选的,在执行步骤S5021之前,可以执行如下的预判断过程:
判集群的可分配额度是否满足资源使用请求。
可分配额度的定义与前文一致,即:集群的资源总额与所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和的差值。
当集群的可分配额度不满足资源使用请求时,不需要执行步骤S5021,可以直接控制资源使用请求处于等待状态。
当集群的可分配额度满足资源使用请求时,可以执行步骤S5021所述的判断计算机集群的空闲资源的额度是否满足资源使用请求。
在执行步骤S5021之前执行上述预判断过程的目的在于:
在可分配额度不满足资源使用请求的情况下,即使释放每一个使用对象所使用的无保障资源,释放后集群的空闲资源也无法满足当前使用对象的资源使用请求,并且,在利用当前使用对象的超用资源的可用额度为当前使用对象分配资源时,又无法抢占其他使用对象正在使用的超用资源。也就是说,可分配额度不满足资源使用请求的情况下控制其他使用对象释放当前使用的无保障资源,只会导致其他使用对象利用无保障资源执行的计算任务被终止,并且也无法满足当前使用对象的资源使用请求。通过在执行步骤S5021之前执行上述预判断过程,就可以预先发现可分配额度不满足资源使用请求的情况,并在发现这种情况时不再执行后续控制其他使用对象释放当前使用的无保障资源的动作,从而避免上述问题。
也就是说,通过执行上述预判断的过程,可以在释放无保障资源之前预先识别本次释放的无保障资源是否能被当前使用对象使用,当通过预判断发现集群的可分配额度不满足资源使用请求时,可以认为本次释放的无保障资源不可能被当前使用对象使用(因为释放后集群的空闲资源也无法满足当前使用对象的资源使用请求),就不再释放无保障资源,防止这部分无保障资源被释放而又无法发挥作用,避免浪费集群资源。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图6为本申请实施例提供的一种集群资源调度装置的结构框图,该装置可以包括以下单元:
接收单元601,被配置为执行接收当前使用对象的资源使用请求。
第一判断单元602,被配置为执行判断当前使用对象的基础资源的可用额度是否满足当前使用对象的资源使用请求。
第二判断单元603,被配置为执行当当前使用对象的基础资源的可用额度不满足资源使用请求时,判断计算机集群的空闲资源的额度是否满足资源使用请求;
分配单元604,被配置为执行当计算机集群的空闲资源的额度满足资源使用请求时,从空闲资源中为当前使用对象分配目标额度的资源。
目标额度,用于指代与收到的资源使用请求相匹配的额度。
可选的,第二判断单元603还被配置为执行:
当当前使用对象的基础资源的可用额度满足资源使用请求时,判断计算机集群的空闲资源的额度是否满足资源使用请求;
其中,集群资源调度装置还包括:
控制单元605,被配置为执行当计算机集群的空闲资源的额度不满足资源使用请求时,控制第一使用对象释放除对应的基础资源以外的资源。
分配单元604,还被配置为执行从释放后的计算机集群的空闲资源中为当前使用对象分配目标额度的资源;其中,第一使用对象指代当前使用的资源的额度大于对应的基础资源的配额的使用对象。
分配单元604,还被配置为执行当计算机集群的空闲资源的额度满足资源使用请求时,从计算机集群的空闲资源中为当前使用对象分配目标额度的资源。
集群资源调度装置还包括:
更新单元606,被配置为执行以当前使用对象的分配前基础额度减去目标额度的差值,更新当前使用对象的基础资源的可用额度。
分配前基础额度,是指,为当前使用对象分配目标额度的资源之前,当前使用对象的基础资源的可用额度。
可选的,控制单元605控制第一使用对象释放除对应的基础资源以外的资源时,具体执行:
控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者计算机集群的空闲资源的额度满足资源使用请求;
当所有无保障资源均被释放、且计算机集群的空闲资源的额度不满足资源使用请求时,控制第一使用对象释放超用资源,直至计算机集群的空闲资源的额度满足资源使用请求。
其中,超用资源是优先级低于基础资源的优先级的集群资源,无保障资源是优先级低于超用资源的优先级的集群资源。资源的优先级,用于表征资源被分配给集群的使用对象的先后顺序。
可选的,第二判断单元603还被配置为执行:
判断计算机集群的可分配额度是否满足资源使用请求;其中,可分配额度为计算机集群的资源总额与已使用额度的差值,即计算机集群的资源总额的,减去已使用额度,得到的结果就是可分配额度。已使用额度,是指,集群中所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和。
当计算机集群的可分配额度满足资源使用请求时,执行判断计算机集群的空闲资源的额度是否满足资源使用请求。
其中,控制单元605还被配置为执行:
当计算机集群的可分配额度不满足资源使用请求时,控制第一使用对象释放对应额度的超用资源,直至计算机集群的可分配额度满足资源使用请求。
可选的,第一判断单元602还被配置为执行:
当当前使用对象的基础资源的可用额度不满足资源使用请求时,判断当前使用对象的超用资源的可用额度是否满足资源使用请求;
当当前使用对象的超用资源的可用额度不满足资源使用请求时,判断当前使用对象的无保障资源的可用额度是否满足资源使用请求;
第二判断单元603还被配置为执行:
当当前使用对象的超用资源的可用额度满足资源使用请求时,执行判断计算机集群的空闲资源的额度是否满足资源使用请求;
当当前使用对象的无保障资源的可用额度满足资源使用请求时,判断计算机集群的空闲资源的额度是否满足资源使用请求。
分配单元604还被配置为执行:
当计算机集群的空闲资源的额度满足资源使用请求时,从空闲资源中为当前使用对象分配目标额度的资源,并以当前使用对象的分配前无保障额度减去目标额度的差值,更新当前使用对象的无保障资源的可用额度;
分配前无保障额度,是指,为当前使用对象分配目标额度的资源之前,当前使用对象的无保障资源的可用额度。
当前使用对象的无保障资源的可用额度不满足资源使用请求时,控制资源使用请求处于等待状态。
可选的,分配单元604从空闲资源中为当前使用对象分配与资源使用请求相匹配的资源时,具体执行:
从空闲资源中为当前使用对象分配目标额度的资源,并以当前使用对象的分配前超用额度减去目标额度而得到的差值,更新当前使用对象的超用资源的可用额度。
当前使用对象的分配前超用额度,是指,为当前使用对象分配目标额度的资源之前,当前使用对象的超用资源的可用额度。
可选的,控制单元605还被配置为执行:
当计算机集群的空闲资源的额度不满足资源使用请求时,控制第二使用对象释放对应额度的无保障资源,直至计算机集群的空闲资源的额度满足资源使用请求;其中,第二使用对象为当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象;
分配单元604还被配置为执行,从释放后的计算机集群的空闲资源中为当前使用对象分配目标额度的资源;
更新单元606还被配置为执行,以当前使用对象的分配前超用额度减去目标额度而得到的差值,更新当前使用对象的超用资源的可用额度。
可选的,第二判断单元603还被配置为执行:
当当前使用对象的超用资源的可用额度满足资源使用请求时,判断计算机集群的可分配额度是否满足资源使用请求;其中,可分配额度为计算机集群的资源总额与已使用额度的差值。已使用额度,是指所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和。
当计算机集群的可分配额度满足资源使用请求时,执行当当前使用对象的超用资源的可用额度满足资源使用请求时,判断计算机集群的空闲资源的额度是否满足资源使用请求;
控制单元605还被配置为执行,当计算机集群的可分配额度不满足资源使用请求时,控制资源使用请求处于等待状态。
本申请提供的集群资源调度装置至少具有以下有益效果:
在计算机集群中存在足量的空闲资源时,可以将空闲资源分配给对应的第一资源无法满足其资源使用请求的使用对象,从而充分的利用计算机集群的空闲资源,提高计算机集群的资源利用率。
图7是根据一示例性实施例示出的一种用于执行前述集群资源调度方法的电子设备的框图,该电子设备包括处理器701,和用于存储所述处理器可执行指令的存储器702。
其中,处理器701被配置为执行所述指令,以实现如本公开任一实施例提供的集群资源调度方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由图7所示的电子设备的处理器701执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例提供一种计算机程序产品,该计算机程序产品被执行时,用于实现本公开任一实施例提供的集群资源调度方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (17)

1.一种集群资源调度方法,其特征在于,包括:
接收当前使用对象的资源使用请求;
判断所述当前使用对象的基础资源的可用额度是否满足所述当前使用对象的资源使用请求;其中,所述基础资源是为满足所述当前使用对象的最低使用需求而分配的集群资源;
当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配目标额度的资源;其中,所述目标额度与所述资源使用请求相匹配;
判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求;所述超用资源为,优先级高于无保障资源的优先级、且低于所述基础资源的优先级的集群资源;所述无保障资源为优先级低于所述基础资源的优先级的集群资源;
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述当前使用对象的超用资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的无保障资源的可用额度是否满足所述资源使用请求;
当所述当前使用对象的无保障资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前无保障额度减去所述目标额度得到的差值,更新所述当前使用对象的无保障资源的可用额度;其中,所述分配前无保障额度是为所述当前使用对象分配资源之前,所述当前使用对象的无保障资源的可用额度;
当所述当前使用对象的无保障资源的可用额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
2.根据权利要求1所述的方法,其特征在于,所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求之后,还包括:
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第一使用对象释放除对应的基础资源以外的资源,并从释放后的所述计算机集群的空闲资源中,为所述当前使用对象分配所述目标额度的资源;其中,所述第一使用对象为当前使用的资源的额度大于对应的基础资源的配额的使用对象;
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前基础额度减去所述目标额度得到的差值,更新所述当前使用对象的基础资源的可用额度;其中,所述分配前基础额度指代为所述当前使用对象分配资源之前所述当前使用对象基础资源的可用额度。
3.根据权利要求2所述的方法,其特征在于,所述控制第一使用对象释放除对应的基础资源以外的资源,包括:
控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,集群资源的优先级表征集群资源被分配给集群的使用对象的先后顺序;
当所有无保障资源均被释放、且所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制所述第一使用对象释放超用资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求。
4.根据权利要求2所述的方法,其特征在于,所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求之前,还包括:
判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制第一使用对象释放对应额度的超用资源,直至所述计算机集群的可分配额度满足所述资源使用请求;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求。
5.根据权利要求1所述的方法,其特征在于,所述从所述空闲资源中为所述当前使用对象分配所述目标额度的资源之后,还包括:
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
6.根据权利要求1所述的方法,其特征在于,所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求之后,还包括:
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第二使用对象释放对应额度的无保障资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述第二使用对象为当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象;
从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
7.根据权利要求1所述的方法,其特征在于,所述判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求之后,还包括:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为:所述计算机集群的资源总额与所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和的差值;
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求。
8.一种集群资源调度装置,其特征在于,包括:
接收单元,被配置为执行接收当前使用对象的资源使用请求;
第一判断单元,被配置为执行判断所述当前使用对象的基础资源的可用额度是否满足所述当前使用对象的资源使用请求;
第二判断单元,被配置为执行当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
分配单元,被配置为执行当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配目标额度的资源;其中,所述目标额度与所述资源使用请求相匹配;
所述第一判断单元还被配置为执行:
当所述当前使用对象的基础资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的超用资源的可用额度是否满足所述资源使用请求;所述超用资源为,优先级高于无保障资源的优先级、且低于所述基础资源的优先级的集群资源;所述无保障资源为优先级低于所述基础资源的优先级的集群资源;
当所述当前使用对象的超用资源的可用额度不满足所述资源使用请求时,判断所述当前使用对象的无保障资源的可用额度是否满足所述资源使用请求;所述第二判断单元还被配置为执行:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,执行所述判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
当所述当前使用对象的无保障资源的可用额度满足所述资源使用请求时,判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
所述分配单元还被配置为执行:
当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前无保障额度减去所述目标额度得到的差值,更新所述当前使用对象的无保障资源的可用额度;其中,所述分配前无保障额度是为所述当前使用对象分配资源之前,所述当前使用对象的无保障资源的可用额度;
当所述当前使用对象的无保障资源的可用额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
9.根据权利要求8所述的装置,其特征在于,所述第二判断单元还被配置为执行:
所述装置还包括:
控制单元,被配置为执行当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第一使用对象释放除对应的基础资源以外的资源;
所述分配单元,还被配置为执行从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配与所述资源使用请求相匹配的资源;其中,所述第一使用对象为当前使用的资源的额度大于对应的基础资源的配额的使用对象;
所述分配单元,还被配置为执行当所述计算机集群的空闲资源的额度满足所述资源使用请求时,从所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
更新单元,被配置为执行以分配前基础额度减去所述目标额度得到的差值,更新所述当前使用对象的基础资源的可用额度;其中,所述分配前基础额度指代为所述当前使用对象分配资源之前所述当前使用对象基础资源的可用额度。
10.根据权利要求9所述的装置,其特征在于,所述控制单元控制第一使用对象释放除对应的基础资源以外的资源时,具体执行:
控制第一使用对象释放无保障资源,直至所有无保障资源均被释放,或者所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,集群资源的优先级表征集群资源被分配给集群的使用对象的先后顺序;
当所有无保障资源均被释放、且所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制所述第一使用对象释放超用资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求。
11.根据权利要求9所述的装置,其特征在于,所述第二判断单元还被配置为执行:
判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述判断所述计算机集群的空闲资源的额度是否满足所述资源使用请求;
其中,所述控制单元还被配置为执行:
当所述计算机集群的可分配额度不满足所述资源使用请求时,控制第一使用对象释放对应额度的超用资源,直至所述计算机集群的可分配额度满足所述资源使用请求。
12.根据权利要求8所述的装置,其特征在于,所述分配单元从所述空闲资源中为所述当前使用对象分配所述目标额度的资源之后,具体执行:
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
13.根据权利要求9所述的装置,其特征在于,所述控制单元还被配置为执行:
当所述计算机集群的空闲资源的额度不满足所述资源使用请求时,控制第二使用对象释放对应额度的无保障资源,直至所述计算机集群的空闲资源的额度满足所述资源使用请求;其中,所述第二使用对象为当前使用的资源的额度大于对应的基础资源的配额与超用资源的配额之和的使用对象;
所述分配单元还被配置为执行,从释放后的所述计算机集群的空闲资源中为所述当前使用对象分配所述目标额度的资源;
以分配前超用额度减去所述目标额度得到的差值,更新所述当前使用对象的超用资源的可用额度;其中,所述分配前超用额度是为所述当前使用对象分配资源之前,所述当前使用对象的超用资源的可用额度。
14.根据权利要求9所述的装置,其特征在于,所述第二判断单元还被配置为执行:
当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断所述计算机集群的可分配额度是否满足所述资源使用请求;其中,所述可分配额度为:所述计算机集群的资源总额与已使用额度的差值;所述已使用额度为所有使用对象当前使用的基础资源的额度和当前使用的超用资源的额度之和;
当所述计算机集群的可分配额度满足所述资源使用请求时,执行所述当所述当前使用对象的超用资源的可用额度满足所述资源使用请求时,判断计算机集群的空闲资源的额度是否满足所述资源使用请求;
所述控制单元还被配置为执行,当所述计算机集群的可分配额度不满足所述资源使用请求时,控制所述资源使用请求处于等待状态。
15.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的集群资源调度方法。
16.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的集群资源调度方法。
17.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至7任意一项所述的集群资源调度方法。
CN202110228808.5A 2021-03-02 2021-03-02 集群资源调度方法、装置、存储介质、设备和程序产品 Active CN113010309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110228808.5A CN113010309B (zh) 2021-03-02 2021-03-02 集群资源调度方法、装置、存储介质、设备和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110228808.5A CN113010309B (zh) 2021-03-02 2021-03-02 集群资源调度方法、装置、存储介质、设备和程序产品

Publications (2)

Publication Number Publication Date
CN113010309A CN113010309A (zh) 2021-06-22
CN113010309B true CN113010309B (zh) 2022-10-25

Family

ID=76402136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110228808.5A Active CN113010309B (zh) 2021-03-02 2021-03-02 集群资源调度方法、装置、存储介质、设备和程序产品

Country Status (1)

Country Link
CN (1) CN113010309B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143327B (zh) * 2021-12-09 2024-04-09 深圳前海微众银行股份有限公司 集群资源配额分配方法、装置及电子设备
CN114327841B (zh) * 2022-03-16 2022-06-21 上海闪马智能科技有限公司 一种资源调度方法、装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216782A (zh) * 2014-08-19 2014-12-17 东南大学 高性能计算和云计算混合环境中的动态资源管理方法
CN105959395A (zh) * 2016-06-15 2016-09-21 徐州医科大学 一种集群自反馈式负载均衡调度系统及方法
CN106897872A (zh) * 2016-12-08 2017-06-27 阿里巴巴集团控股有限公司 资源调度方法及装置、支付方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148871B (zh) * 2011-03-18 2013-07-10 浪潮(北京)电子信息产业有限公司 存储资源调度方法和装置
CN102958166B (zh) * 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
US9471390B2 (en) * 2013-01-16 2016-10-18 International Business Machines Corporation Scheduling mapreduce jobs in a cluster of dynamically available servers
CN104778079B (zh) * 2014-01-10 2018-07-20 国际商业机器公司 用于调度、执行的装置和方法以及分布式系统
CN106648906A (zh) * 2017-01-16 2017-05-10 杭州星数科技有限公司 容器云资源智能回收与启用的系统及方法
CN107423134B (zh) * 2017-07-13 2020-01-10 中国科学院高能物理研究所 一种大规模计算集群的动态资源调度方法
CN107577534A (zh) * 2017-08-31 2018-01-12 郑州云海信息技术有限公司 一种资源调度方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216782A (zh) * 2014-08-19 2014-12-17 东南大学 高性能计算和云计算混合环境中的动态资源管理方法
CN105959395A (zh) * 2016-06-15 2016-09-21 徐州医科大学 一种集群自反馈式负载均衡调度系统及方法
CN106897872A (zh) * 2016-12-08 2017-06-27 阿里巴巴集团控股有限公司 资源调度方法及装置、支付方法及装置

Also Published As

Publication number Publication date
CN113010309A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN108701059B (zh) 多租户资源分配方法和系统
US9537726B2 (en) System and method for providing threshold-based access to compute resources
US7665090B1 (en) System, method, and computer program product for group scheduling of computer resources
RU2454704C2 (ru) Способ и система для выполнения программных приложений и машиночитаемый носитель
CN109936604B (zh) 一种资源调度方法、装置和系统
KR100420421B1 (ko) 계산환경의 논리 프로세서들을 관리하는 방법, 시스템 및 기록매체
US9262224B2 (en) Resource management via iterative negotiation
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US20140237477A1 (en) Simultaneous scheduling of processes and offloading computation on many-core coprocessors
CN108123980B (zh) 一种资源调度方法及系统
KR20010050505A (ko) Cpu 지원 관리 방법 및 시스템, 프로그램 기억 장치
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
CN109992418B (zh) Sla感知的多租户大数据平台资源优先级调度方法及系统
KR20010050504A (ko) 계산 환경의 코프로세서내에서의 비동기 요청들의 관리방법 및 시스템, 프로그램 기억 장치
US20100042723A1 (en) Method and system for managing load in a network
CN105718316A (zh) 一种作业调度的方法及装置
CN112783659B (zh) 一种资源分配方法、装置、计算机设备及存储介质
US20220195434A1 (en) Oversubscription scheduling
CN112749002A (zh) 一种集群资源动态管理的方法和装置
WO2016041446A1 (zh) 一种资源分配方法、装置及设备
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
CN113760549B (zh) 一种pod部署方法及装置
CN116244073A (zh) 混合关键分区实时操作系统的资源感知型任务分配方法
CN111813564B (zh) 集群资源管理方法、装置及容器集群管理系统
EP2413240A1 (en) Computer micro-jobs

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