CN115357386A - 一种资源分配方法、装置、计算机设备及存储介质 - Google Patents
一种资源分配方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115357386A CN115357386A CN202210999939.8A CN202210999939A CN115357386A CN 115357386 A CN115357386 A CN 115357386A CN 202210999939 A CN202210999939 A CN 202210999939A CN 115357386 A CN115357386 A CN 115357386A
- Authority
- CN
- China
- Prior art keywords
- partition
- resource
- allocated
- resources
- task
- 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种资源分配方法、装置、计算机设备及存储介质,其中,该方法包括:确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种资源分配方法、装置、计算机设备及存储介质。
背景技术
在资源分配时(如对企业内部各部门进行资源分配),通常会出现部分分配对象(如部门、小组、虚拟分区等)占有过多资源过长时间的情况,而其他分配对象资源不足,只能长时间等待该部分分配对象使用完占有的资源后再进行使用。
相关技术中,通常按照人工确定的分配比例分配总资源,但是由于各分配对象执行的任务和各任务所需的资源是实时变化的,采用这种方法经常会出现部分分配对象资源不足,而其他分配对象资源过多的情况。因此,如何公平分配资源成为亟待解决的问题。
发明内容
本公开实施例至少提供一种资源分配方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种资源分配方法,包括:
确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
上述方法中,可以基于虚拟分区的资源阈值、在虚拟分区中执行的各任务的任务属性以及虚拟分区的当前占用资源数量,确定多个虚拟分区中的待分配分区以及待分配分区对应的待分配资源数量,以保证当前占用资源数量较少的虚拟分区能够作为待分配分区,还可以基于多个虚拟分区的资源阈值和当前占用资源数量,确定多个虚拟分区中的资源分配分区,以保证当前占用资源数量较多的虚拟分区能够作为资源分配分区,最后通过确定的待分配资源数量,将资源分配分区的资源分配给待分配分区,使得资源分配分区可以将过多的资源适量地分给待分配分区,从而实现公平分配资源。
一种可能的实施方式中,所述方法还包括根据以下方法确定多个虚拟分区的资源阈值,包括:
确定所述多个虚拟分区的预设权重以及所述多个虚拟分区对应的分配资源总数;
基于所述多个虚拟分区的预设权重和所述多个虚拟分区对应的分配资源总数,确定各虚拟分区对应的初始资源阈值;
基于所述初始资源阈值、在所述虚拟分区中执行的各任务的任务属性、以及所述虚拟分区的当前占用资源数量,确定所述多个虚拟分区的资源阈值。
采用这种方法,由于资源阈值是根据预设权重、分配资源总数和任务属性确定的,而分配资源总数和任务属性可以根据虚拟分区内的任务的变化而变化,因此各个虚拟分区的资源阈值也会随着各个虚拟分区内任务的执行状况动态变化,由此可以使所述资源阈值更加公平合理。
一种可能的实施方式中,所述任务属性包括在所述虚拟分区执行的各任务的任务运行状态和各任务对应的资源需求量;
所述基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区,包括:
确定包含待执行任务的第一候选分区;
针对任一第一候选分区,在该第一候选分区的任一待执行任务的资源需求量与该第一候选分区的当前占用资源数量之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
采用这种方法,可以通过资源阈值筛选能够接收资源的待分配分区,使得具有较大资源需求量的任务的虚拟分区不能够作为待分配分区接收资源,在一定程度上减少了虚拟分区抢占较多资源的情况发生。
一种可能的实施方式中,所述基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区,包括:
确定所述当前占用资源数量超过所述资源阈值的第二候选分区;
基于所述第二候选分区,确定所述资源分配分区。
采用这种方法,可以通过资源阈值精确地筛选出占用过多资源的虚拟分区,并将占用过多资源的虚拟分区作为资源分配分区,提升了资源分配的公平性。
一种可能的实施方式中,所述基于所述第二候选分区,确定所述资源分配分区,包括:
在所述第二候选分区有多个的情况下,针对任一第二候选分区,确定该第二候选分区的当前占用资源数量与资源阈值的目标比例;
基于所述目标比例,确定所述资源分配分区。
采用这种方法,可以将超额占用资源的超额程度最高的候选分区作为资源分配分区,提升了资源分配的合理性和公平性。
一种可能的实施方式中,确定所述待分配分区对应的待分配资源数量,包括:
确定所述待分配分区的待执行任务中的第一目标任务;
基于所述第一目标任务对应的任务属性中的资源需求量,确定所述待分配资源数量。
采用这种方法,可以根据第一目标任务的实际的资源需求量,精准地获取资源,以供第一目标任务使用,提升了资源分配的准确性。
一种可能的实施方式中,所述确定所述待分配分区的待执行任务中的第一目标任务,包括:
确定所述待分配分区的待执行任务中,对应的资源需求量与所述当前占用资源数量之和不超过所述待分配分区的资源阈值的第一候选任务;
基于所述第一候选任务的任务属性,从所述第一候选任务中确定所述第一目标任务。
采用这种方法,可以在一定程度上保证所述待分配分区在为第一目标任务分配资源后,当前占用资源不会超过资源阈值,从而避免了待分配分区获取过多的资源,提升了资源分配的公平性和合理性。
一种可能的实施方式中,所述按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区,包括:
基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务;
将所述第二目标任务占用的资源分配至所述待分配分区。
采用这种方法,可以根据任务属性和待分配资源数量确定适合分配资源的第二目标任务。
一种可能的实施方式中,所述任务的任务属性包括历史执行时间、资源需求量、资源占用权限;
所述基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务,包括:
确定所述资源分配分区中正在执行的、资源占用权限为目标权限的第二候选任务;
基于所述第二候选任务的历史执行时间、资源需求量以及所述待分配资源数量,确定所述第二目标任务。
采用这种方法,由于第二目标任务在分配资源之前已经利用占用的资源进行了一段时间的计算,在将占用的资源分配给待分配分区后,之前计算的内容难以保存,因此,将历史执行时间较短的任务优先作为第二目标任务,可以减少计算资源的浪费。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区之后,按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之前,所述方法还包括:
确定所述待分配分区满足预设条件的时长超过预设时长;
其中,所述预设条件包括:
所述待分配分区存在待执行任务,且所述待分配分区的当前占用资源数量小于所述待分配分区的资源阈值。
采用这种方法,通过设置预设时长可以减少资源的变动频率,提升用户体验,并且通过预设条件的限制可以确保待分配分区在满足预设条件的时长超过预设时长之前始终需要接收分配资源,更加公平地进行资源分配。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量之后,所述方法还包括:
确定所述多个虚拟分区中的闲置资源数量;
在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
采用这种方法,可以在有闲置资源的情况下,使待分配分区优先使用闲置资源,减少正在使用的资源的变动,提升了用户体验。
一种可能的实施方式中,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之后,所述方法还包括:
确定获得分配资源后的虚拟分区是否满足所述预设条件;
若是,则重新确定所述待分配资源数量和所述资源分配分区,并为所述获得分配资源后的虚拟分区再次进行资源分配。
采用这种方法,可以对当前占用资源过少的虚拟分区进行多次分配,以提升资源分配的公平性。
第二方面,本公开实施例还提供一种资源分配装置,包括:
第一确定模块,用于确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
第二确定模块,用于基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
分配模块,用于按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
一种可能的实施方式中,所述第一确定模块,还用于根据以下方法确定多个虚拟分区的资源阈值:
确定所述多个虚拟分区的预设权重以及所述多个虚拟分区对应的分配资源总数;
基于所述多个虚拟分区的预设权重和所述多个虚拟分区对应的分配资源总数,确定各虚拟分区对应的初始资源阈值;
基于所述初始资源阈值、在所述虚拟分区中执行的各任务的任务属性、以及所述虚拟分区的当前占用资源数量,确定所述多个虚拟分区的资源阈值。
一种可能的实施方式中,所述任务属性包括在所述虚拟分区执行的各任务的任务运行状态和各任务对应的资源需求量;
所述第二确定模块,在基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区时,用于:
确定包含待执行任务的第一候选分区;
针对任一第一候选分区,在该第一候选分区的任一待执行任务的资源需求量与该第一候选分区的当前占用资源数量之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
一种可能的实施方式中,所述第二确定模块,在基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区时,用于:
确定所述当前占用资源数量超过所述资源阈值的第二候选分区;
基于所述第二候选分区,确定所述资源分配分区。
一种可能的实施方式中,所述第二确定模块,在基于所述第二候选分区,确定所述资源分配分区时,用于:
在所述第二候选分区有多个的情况下,针对任一第二候选分区,确定该第二候选分区的当前占用资源数量与资源阈值的目标比例;
基于所述目标比例,确定所述资源分配分区。
一种可能的实施方式中,所述第二确定模块,在确定所述待分配分区对应的待分配资源数量时,用于:
确定所述待分配分区的待执行任务中的第一目标任务;
基于所述第一目标任务对应的任务属性中的资源需求量,确定所述待分配资源数量。
一种可能的实施方式中,所述第二确定模块,在确定所述待分配分区的待执行任务中的第一目标任务时,用于:
确定所述待分配分区的待执行任务中,对应的资源需求量与所述当前占用资源数量之和不超过所述待分配分区的资源阈值的第一候选任务;
基于所述第一候选任务的任务属性,从所述第一候选任务中确定所述第一目标任务。
一种可能的实施方式中,所述分配模块,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区时,用于:
基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务;
将所述第二目标任务占用的资源分配至所述待分配分区。
一种可能的实施方式中,所述任务的任务属性包括历史执行时间、资源需求量、资源占用权限;
所述第二确定模块,在基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务时,用于:
确定所述资源分配分区中正在执行的、资源占用权限为目标权限的第二候选任务;
基于所述第二候选任务的历史执行时间、资源需求量以及所述待分配资源数量,确定所述第二目标任务。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区之后,按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之前,所述第二确定模块,还用于:
确定所述待分配分区满足预设条件的时长超过预设时长;
其中,所述预设条件包括:
所述待分配分区存在待执行任务,且所述待分配分区的当前占用资源数量小于所述待分配分区的资源阈值。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量之后,所述第二确定模块,还用于:
确定所述多个虚拟分区中的闲置资源数量;
在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
一种可能的实施方式中,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之后,所述分配模块,还用于:
确定获得分配资源后的虚拟分区是否满足所述预设条件;
若是,则重新确定所述待分配资源数量和所述资源分配分区,并为所述获得分配资源后的虚拟分区再次进行资源分配。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述资源分配装置、计算机设备、及计算机可读存储介质的效果描述参见上述资源分配方法的说明,这里不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种资源分配方法的流程图;
图2示出了本公开实施例所提供的一种资源分配装置的架构示意图;
图3示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
在资源分配时(如对企业内部各部门进行资源分配),通常会出现部分分配对象(如部门、小组、虚拟分区等)占有过多资源过长时间的情况,而其他分配对象资源不足,只能长时间等待该部分分配对象使用完占有的资源后再进行使用。
相关技术中,通常按照人工确定的分配比例分配总资源,但是由于各分配对象执行的任务和各任务所需的资源是实时变化的,采用这种方法经常会出现部分分配对象资源不足,而其他分配对象资源过多的情况。因此,如何公平分配资源成为亟待解决的问题。
基于上述研究,本公开提供了一种资源分配方法、装置、计算机设备及存储介质,可以基于虚拟分区的资源阈值、在虚拟分区中执行的各任务的任务属性以及虚拟分区的当前占用资源数量,确定多个虚拟分区中的待分配分区以及待分配分区对应的待分配资源数量,以保证当前占用资源数量较少的虚拟分区能够作为待分配分区,还可以基于多个虚拟分区的资源阈值和当前占用资源数量,确定多个虚拟分区中的资源分配分区,以保证当前占用资源数量较多的虚拟分区能够作为资源分配分区,最后通过确定的待分配资源数量,将资源分配分区的资源分配给待分配分区,使得资源分配分区可以将过多的资源适量地分给待分配分区,从而实现公平分配资源。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种资源分配方法进行详细介绍,本公开实施例所提供的资源分配方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如为服务器。在一些可能的实现方式中,该资源分配方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的资源分配方法的流程图,所述方法包括步骤101~步骤103,其中:
步骤101、确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
步骤102、基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
步骤103、按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
以下是针对上述步骤的详细说明:
针对步骤101、
具体的,所述资源可以是装置、设备,如图形处理器(graphics processing unit,GPU)、中央处理器(central processing unit,CPU)。
所述虚拟分区(VPar)可以用于通过占用的资源执行至少一个任务,实际应用中,一个虚拟分区可以对应一个部门、一个小组等群体。
所述任务示例性的可以是计算机项目(如图像处理、数据分析),所述虚拟分区的资源阈值为所述虚拟分区能够占用的资源的限度,如5个GPU,通过所述资源阈值可以限制各虚拟分区所能占用的资源的最大数量。
所述任务属性可以包括以下至少一种:在所述虚拟分区执行的各任务的任务运行状态、各任务对应的资源需求量、各任务的历史执行时间、各任务的资源占用权限。
其中,所述任务运行状态可以包括待执行状态和正在执行状态,处于执行中状态的任务为执行中任务,处于待执行状态的任务为待执行任务,任一任务的资源需求量表示执行该任务所需的资源数量,如任务A的资源需求量为2,任一任务的历史执行时间表示该任务自创建以来总共的执行时间,如任务A在1月1日创建并执行了3小时,在1月3日执行了2小时,则任务A的历史执行时间为5小时,所述各任务的资源占用权限示例性的可以包括不可分配权限和可分配权限,还可以按照权限等级高低分为一级权限、二级权限、三级权限。通过设置资源占用权限可以限定哪些任务可以分配资源、哪些任务可以接收资源,并对一些重要的任务(如下文中的受保护任务)占用的资源进行保护,防止被其它任务抢占。
所述虚拟分区的当前占用资源数量表示该虚拟分区正在使用的资源数量(即该虚拟分区中各任务正在使用的资源总量),如虚拟分区A中的执行中任务包括任务1、任务2、任务3,任务1的资源需求量为1,任务2的资源需求量为2,任务3的资源需求量为3,则虚拟分区A的当前占用资源数量为6。
这里,由于所述受保护任务正在使用的资源不参与资源的分配(这里指对当前占用的资源的再次分配),在所述虚拟分区中执行的各任务中包括资源占用权限为不可分配权限的受保护任务时,所述虚拟分区的当前占用资源数量不包括所述受保护任务正在使用的资源,延续上例,如果任务3为受保护任务,则所述虚拟分区的当前占用资源数量为任务1和任务2的资源需求量之和,为3。
在一种可能的实施方式中,在确定多个虚拟分区的资源阈值时,可以先确定所述多个虚拟分区的预设权重以及所述多个虚拟分区对应的分配资源总数,然后基于所述多个虚拟分区的预设权重、所述多个虚拟分区对应的分配资源总数、在所述虚拟分区中执行的各任务的任务属性、以及所述虚拟分区的当前占用资源数量,确定所述多个虚拟分区的资源阈值。
其中,所述多个虚拟分区的预设权重可以是人工预设的,或者,所述预设权重可以是根据各虚拟分区的任务数量、各虚拟分区的规模(如虚拟分区对应的部门的人数)、各虚拟分区的预算等确定的。
由于所述受保护任务不参与资源分配,所述多个虚拟分区对应的分配资源总数为:所述多个虚拟分区的资源总和减去所述多个虚拟分区中的受保护任务的资源需求量;示例性的,如果某集群的资源总和(即该集群下所有虚拟分区的资源总和)为10,该集群内共有2个虚拟分区:虚拟分区A和虚拟分区B,虚拟分区A中的受保护任务的资源需求量为1,虚拟分区B中的受保护任务的资源需求量为2,则该集群的分配资源总数为10-1-2=7。
这里,需要说明的是,各个虚拟分区的任务是由各个虚拟分区的用户端主动提交的,多个虚拟分区的资源总和是不变的,但是由于各个虚拟分区提交的受保护任务可能会发生变化,因此多个虚拟分区对应的分配资源总数可能是动态变化的,多个虚拟分区的当前占用资源随着各任务的创建、撤销、任务运行状态的变化也是动态变化的,相应的,各个虚拟分区的资源阈值也是动态变化的值。
以下为确定所述多个虚拟分区的资源阈值的一种具体的实施方法,分为步骤A1~A5。
A1、可以先基于所述多个虚拟分区的预设权重,确定所述多个虚拟分区的资源占有比例,然后基于所述多个虚拟分区的资源占有比例和所述分配资源总数,确定所述多个虚拟分区的初始资源阈值。
具体的,针对任一虚拟分区,所述资源占有比例可以用该虚拟分区的预设权重除以其他虚拟分区的预设权重之和,在确定所述初始资源阈值时,可以是用所述资源占有比例乘以所述分配资源总数。
示例性的,如果某集群内共有3个虚拟分区:虚拟分区A、虚拟分区B和虚拟分区C,虚拟分区A的预设权重为1,虚拟分区B的预设权重为2,虚拟分区C的预设权重为0,则虚拟分区A的资源占有比例为 虚拟分区B的资源占有比例为虚拟分区C的资源占有比例为0÷(1+2+0)=0。如果该集群的分配资源总数为18,则虚拟分区A的初始资源阈值为虚拟分区B的初始资源阈值为虚拟分区C的初始资源阈值为18×0=0。
A2、基于所述初始资源阈值和所述多个虚拟分区的资源需求量之和,确定所述多个虚拟分区的待确定资源阈值;其中,所述资源需求量之和为所述虚拟分区中执行的除了受保护任务外的其他任务的资源需求量的和。
具体的,针对任一虚拟分区,可以先确定该虚拟分区的资源需求量之和,在该虚拟分区的初始资源阈值大于或等于该虚拟分区的资源需求量之和的情况下,将该虚拟分区的资源需求量之和作为该虚拟分区的待确定资源阈值;在该虚拟分区的初始资源阈值小于该虚拟分区的资源需求量之和的情况下,将该虚拟分区的初始资源阈值作为该虚拟分区的待确定资源阈值。
这里,如果不存在虚拟分区的初始资源阈值大于或等于该虚拟分区的资源需求量之和的情况,则可以直接将待确定资源阈值作为各虚拟分区的资源阈值,如果存在,在按照上述步骤确定一次待确定资源阈值之后,由于一部分虚拟分区的初始资源阈值大于资源需求量之和,因此会有部分资源空闲,而另一部分虚拟分区的资源需求量之和可能大于初始资源阈值,则这部分虚拟分区的资源需求量无法得到满足,因此还可以对闲置的资源进行二次分配。
A3、针对初始资源阈值大于或等于资源需求量之和的各虚拟分区,将各虚拟分区的初始资源阈值与资源需求量之和的差值作为空闲资源数量。
A4、针对初始资源阈值小于资源需求量之和的各虚拟分区(以下称为目标虚拟分区),重新确定所述目标虚拟分区的初始资源阈值以及资源需求量之和。
具体的,在重新确定目标虚拟分区的初始资源阈值时,可以先基于目标虚拟分区的预设权重,重新确定所述目标虚拟分区的资源占有比例,即针对任一目标虚拟分区,用该目标虚拟分区的预设权重除以其他目标虚拟分区的预设权重之和,然后用重新确定的资源占有比例乘以所述空闲资源数量,得到该目标虚拟分区重新确定的初始资源阈值。
在重新确定资源需求量之和时,针对任一目标虚拟分区,将所述资源需求量之和、与初始资源阈值(这里为A4中重新确定初始资源阈值之前确定的初始资源阈值)的差值,作为重新确定的资源需求量之和。
A5、比较各目标虚拟分区的重新确定的初始资源阈值、与重新确定的资源需求量之和,检测是否存在所述初始资源阈值大于所述资源需求量之和的虚拟分区。
如果是,则返回执行A2的步骤;
如果否,则针对任一虚拟分区,将该虚拟分区的待确定资源阈值相加,得到该虚拟分区的资源阈值。这里,在任一虚拟分区的初始资源阈值大于或等于所述资源需求量之和时,则可以计算该虚拟分区的资源阈值。
示例性的,某集群内共有三个虚拟分区:虚拟分区1、虚拟分区2和虚拟分区3,如果虚拟分区1的初始资源阈值为6、资源需求量之和为5,则虚拟分区1的待确定资源阈值为5,虚拟分区2的初始资源阈值为12,资源需求量之和为10,则虚拟分区2的待确定资源阈值为10,虚拟分区3的初始资源阈值为0,资源需求量之和为4,则虚拟分区3的待确定资源阈值为0。
延续上例,虚拟分区1和虚拟分区2的初始资源阈值大于资源需求量之和,虚拟分区1的空闲资源的数量为6-5=1,,虚拟分区2的空闲资源的数量为12-10=2,则该集群的空闲资源的数量为1+2=3,虚拟分区3的待确定资源阈值为0,因此虚拟分区3的资源需求量之和为4-0=4,(这里,由于只有虚拟分区3仍需再次确定待确定资源阈值,因此无须计算虚拟分区3的初始资源阈值,可以直接将空闲资源分配给虚拟分区3)由于空闲资源的数量3小于虚拟分区3的资源需求量之和4,因此将3个资源全部分配给虚拟分区3,则最终虚拟分区1的资源阈值为5,虚拟分区2的资源阈值为10,虚拟分区3的资源阈值为3。
采用这种方法,由于资源阈值是根据预设权重、分配资源总数和任务属性确定的,而分配资源总数和任务属性可以根据虚拟分区内的任务的变化而变化,因此各个虚拟分区的资源阈值也会随着各个虚拟分区内任务的执行状况动态变化,由此可以使所述资源阈值更加公平合理。
在一种可能的实施方式中,由于所述多个虚拟分区的任务情况变动(如任务完成资源释放、任务撤销、任务创建)会导致多个虚拟分区的分配资源总数变动,进而会使资源阈值发生变化,因此可以每隔预设时间(如30秒)重新确定所述多个虚拟分区的资源阈值,以使所述多个虚拟分区的资源阈值实时进行更新。
针对步骤102、
其中,所述待分配分区为接收资源的分区,所述资源能分配分区为发送资源的分区,所述资源分配分区用于将正在使用的部分资源分配至所述待分配分区,从而能够将占用资源过多的虚拟分区的资源分配给占用资源较少的虚拟分区。
这里,所述资源分配分区可以为至少一个,即可以将多个资源分配分区的资源分配至同一待分配分区。
在一种可能的实施方式中,在所述任务属性包括在所述虚拟分区执行的各任务的任务运行状态和各任务对应的资源需求量的情况下,在基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区时,可以先确定包含待执行任务的第一候选分区,然后针对任一第一候选分区,在该第一候选分区的任一待执行任务的资源需求量与该第一候选分区的当前占用资源数量之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
具体的,由于所述待分配分区为资源不足的虚拟分区,所述待分配分区内至少包括一个等待资源的待执行任务,因此可以先确定包含待执行任务的第一候选分区;然后为了通过资源阈值限制各分区所能获取的资源数量,防止各分区获取太多资源,需要使各分区在获取资源后,当前占用资源仍不超过资源阈值,因此可以将第一候选分区的任一待执行任务的资源需求量与该分区的当前占用资源数量求和,在求和结果不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
若某一虚拟分区分配资源较少,但是该虚拟分区并不包含待执行任务,则说明该虚拟分区当前分配的资源足够该资源分区使用,因此可以先不将该虚拟分区作为待分配分区。
针对任一第一候选分区,可以依次将该第一候选分区中的各待执行任务的资源需求量与当前占用资源求和,在检测到任一求和结果不超过该第一候选分区的资源阈值的情况下,确定该第一候选分区为待分配分区。或者,可以先确定该第一候选分区内资源需求量最小的待执行任务,如果资源最小的待执行任务的资源需求量、与该第一候选分区的当前占用资源之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区作为待分配分区。
示例性的,第一候选分区A包括三个待执行任务,待执行任务1的资源需求量为10,待执行任务2的资源需求量为5,待执行任务3的资源需求量为20,第一候选分区A的当前占用资源为40,第一候选分区A的资源阈值为45,由于40+5=45,则第一候选分区A可以确定为待分配分区。第一候选分区B包括两个待执行任务,待执行任务4的资源需求量为20,待执行任务5的资源需求量为30,第一候选分区B的当前占用资源为50,第一候选分区B的资源阈值为60,由于50+20>60且50+30>60,所以第一候选分区B不能确定为待分配分区。
采用这种方法,可以通过资源阈值筛选能够接收资源的待分配分区,使得具有较大资源需求量的任务的虚拟分区不能够作为待分配分区接收资源,在一定程度上减少了虚拟分区抢占较多资源的情况发生。
实际应用中,由于所述多个虚拟分区的资源阈值的频繁变动、当前占用资源数量的变动、待执行任务的变动,从而使待分配分区和资源分配分区会经常发生变动,或者说在为某一虚拟分区再次分配资源之前,该虚拟分区自身的资源足够该虚拟分区使用(如某些任务执行完成,则会多出来空闲资源),这样在基于频繁变动的待分配分区和资源分配分区分配资源,就会导致同一资源频繁变更归属的虚拟分区和执行的任务,导致各任务都只能用该资源执行很短的时间,从而不能完成。
因此,为了降低资源变动的频率,在一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区之后,按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之前,还可以确定所述待分配分区满足预设条件的时长超过预设时长。
具体的,针对任一虚拟分区,可以在确定该虚拟分区为待分配分区之后,对该虚拟分区进行计时,并实时检测该虚拟分区是否满足预设条件,在检测到该虚拟分区不满足预设条件时,停止计时,并不再将该虚拟分区作为待分配分区,若该虚拟分区始终满足预设条件,且计时超过了预设时长,则可以按照所述待分配资源数量将所述资源分配分区的资源分配至该虚拟分区。
这里,需要注意的是,所述资源分配分区可以在确定所述待分配分区时确定,也可以在所述待分配分区满足预设条件的时长超过预设时长之后确定。
在计时过程中,由于所述待分配分区的资源阈值和当前占用资源数量会实时发生改变,所述待分配分区可能在计时到达预设时长之前已经不需要接收资源了,因此可以通过预设条件筛选出最终仍需要接收资源的待分配分区。在一种可能的实施方式中,所述预设条件可以包括:所述待分配分区存在待执行任务,且所述待分配分区的当前占用资源数量小于所述待分配分区的资源阈值。这样,可以保证待分配分区中包括需要分配资源的待执行任务,并且待分配分区的当前占用资源数量小于资源阈值,提升了资源分配的公平性。
在另一种可能的实施方式中,所述预设条件可以包括:所述待分配分区存在待执行任务,且所述待分配分区的任一待执行任务的资源需求量与所述待分配分区的当前占用资源数量之和,不超过该待分配分区的资源阈值。
这里,在设置所述预设时长时,如果所述预设时长越长,则资源分配的频率越低,所述预设时长越短,则所述资源分配的频率越高,因此可以通过调整预设时长,对资源的变动频率进行调控。
在一种可能的实施方式中,在检测到预设时间内资源分配次数高于第一预设次数时,降低所述预设时长;在检测到预设时间内资源分配次数低于第二预设次数时,提高所述预设时长。其中,在降低或者提高所述预设时长时,可以是按照预设时间长度(如30分钟)对当前的预设时长进行加减。
采用这种方法,通过设置预设时长可以减少资源的变动频率,提升用户体验,并且通过预设条件的限制可以确保待分配分区在满足预设条件的时长超过预设时长之前始终需要接收分配资源,更加公平地进行资源分配。
在一种可能的实施方式中,在确定所述待分配分区对应的待分配资源数量时,可以先确定所述待分配分区的待执行任务中的第一目标任务,然后基于所述第一目标任务对应的任务属性中的资源需求量,确定所述待分配资源数量。
具体的,所述待分配分区中包含至少一个待执行任务,因此可以先从所述至少一个待执行任务中筛选出待分配的第一目标任务,然后将该第一目标任务的资源需求量作为待分配资源数量,向资源分配分区索取待分配资源数量的资源。
这样,可以根据第一目标任务的实际的资源需求量,精准地获取资源,以供第一目标任务使用,提升了资源分配的准确性。
在一种可能的实施方式中,待分配分区可以优先使用未被占用的资源,而不抢占其它任务正在使用的资源,即在确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量之后,还可以先确定所述多个虚拟分区中的闲置资源数量,并在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
其中,所述闲置资源为未被占用的资源,在任一任务完成后,该任务执行时占用的资源会释放成为所述闲置资源。具体的,可以实时对所述多个虚拟分区中的闲置资源数量进行检测,在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
在一种可能的实施方式中,在所述待分配分区有多个的情况下,可以将所述闲置资源分配给等待时间最长的待分配分区;其中,所述等待时间为所述待分配分区在确定后未被分配资源的时间,所述等待时间示例性的可以是上述待分配分区满足预设条件的时长。
在另一种可能的实施方式中,如果各待分配分区的待分配资源数量都大于所述闲置资源数量,随着各任务占用的资源的释放,所述闲置资源数量会逐渐变大,可以实时比较所述闲置资源数量与各待分配分区的待分配资源数量,在任一待分配分区的待分配资源数量不大于所述闲置资源数量时,将所述闲置资源分配给该待分配分区。
采用这种方法,可以在有闲置资源的情况下,使待分配分区优先使用闲置资源,减少正在使用的资源的变动,提升了用户体验。
在一种可能的应用场景中,如果某待分配分区的某一待执行任务的资源需求量为50,当前占有资源数量为10,资源阈值为15,如果不对该待分配分区中的待执行任务进行筛选,直接根据该待执行任务获取资源,那么在接收资源后,该带份匹配分区的当前占有资源数量就会变为60,远超资源阈值,这显然是不合理。
因此,在一种可能的实施方式中,在确定所述待分配分区的待执行任务中的第一目标任务时,可以先确定所述待分配分区的待执行任务中,对应的资源需求量与所述当前占用资源数量之和不超过所述待分配分区的资源阈值的第一候选任务;然后基于所述第一候选任务的任务属性,从所述第一候选任务中确定所述第一目标任务。
具体的,针对任一待分配分区,可以依次计算该待分配分区中的各待执行任务的资源需求量与当前占用资源数量之和,并将该计算结果与该待分配分区的资源阈值进行比较,在任一待执行任务的资源需求量与所述待分配分区的当前占用资源之和不超过所述待分配分区的资源阈值的情况下,将该待执行任务作为所述第一目标任务。
或者,可以计算该待分配分区中的所有待执行任务的资源需求量与当前占用资源数量之和,并将该计算结果与该待分配分区的资源阈值进行比较,将计算结果小于所述资源阈值、且对应的资源需求量最大(或最小)的待执行任务作为所述第一目标任务。
示例性的,某待分配分区中包含三个待执行任务,待执行任务1的资源需求量为10、待执行任务2的资源需求量为5,待执行任务3的资源需求量为3,该待分配分区的当前占用资源数量为10、资源阈值为15,则可以先确定资源需求量与所述当前占用资源数量之和小于资源阈值的待执行任务包括:待执行任务2和待执行任务3,其中,待执行任务2的资源需求量最大,因此,将待执行任务2作为所述第一目标任务。
采用这种方法,可以在一定程度上保证所述待分配分区在为第一目标任务分配资源后,当前占用资源不会超过资源阈值,从而避免了待分配分区获取过多的资源,提升了资源分配的公平性和合理性。
在一种可能的实施方式中,在基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区时,可以先确定所述当前占用资源数量超过所述资源阈值的候选分区,然后基于所述候选分区,确定所述资源分配分区。
具体的,为了使占用资源过多的虚拟分区能够将超额的资源分给其他虚拟分区,因此可以比较各虚拟分区的当前占用资源数量和资源阈值,当任一虚拟分区的当前占用资源数量超过资源阈值时,则表明该虚拟分区占用了超额的资源,因此可以将该虚拟分区作为候选分区。这里,如果所述候选分区仅有一个的情况下,可以将所述候选分区直接作为所述资源分配分区。
采用这种方法,可以通过资源阈值精确地筛选出占用过多资源的虚拟分区,并将占用过多资源的虚拟分区作为资源分配分区,提升了资源分配的公平性。
在一种可能的实施方式中,在基于所述候选分区,确定所述资源分配分区时,可以在所述候选分区有多个的情况下,针对任一候选分区,确定该候选分区的当前占用资源数量与资源阈值的目标比例,然后基于所述目标比例,确定所述资源分配分区。
具体的,可以先计算出各候选分区的目标比例,然后将所述目标比例最大的候选分区作为所述资源分配分区。示例性的,如果候选分区1的当前占用资源为6、资源阈值为5,候选分区2的当前占用资源为15、资源阈值为10,候选分区3的当前占用资源为25、资源阈值为20,则候选分区1的目标比例为1.2,候选分区2的目标比例为1.5,候选分区3的目标比例为1.25,1.5>1.25>1.2,因此将目标比例最大的候选分区2作为所述资源分配分区。
采用这种方法,可以将超额占用资源的超额程度最高的候选分区作为资源分配分区,提升了资源分配的合理性和公平性。
或者,可以在计算出各候选分区的目标比例之后,将所述目标比例最大且超过预设阈值的候选分区作为所述资源分配分区。这样,可以在多个候选分区的超额程度较小的情况下,不将所述多个候选分区作为资源分配分区,减少了资源的变动频率。
在另一种可能的实施方式中,在基于所述候选分区,确定所述资源分配分区时,可以在所述候选分区有多个的情况下,针对任一候选分区,确定该候选分区的当前占用资源数量与资源阈值之间的目标差值,然后将所述目标差值最大的候选分区作为所述资源分配分区。
采用这种方法,可以将超额占用资源最多的候选分区作为资源分配分区,提升了资源分配的合理性和公平性。
在一种可能的实施方式中,如果在确定任一所述待分配分区后,该待分配分区中可分配的资源(如后文中所述的资源占用权限为目标权限的执行中任务的资源)小于所述待分配资源数量,可以继续按照上述方法确定更多的资源分配分区,直到所述资源分配分区中可分配的资源不小于所述待分配资源数量,或者,可以按照上述方法同时确定多个资源分配分区。
具体的,在基于所述候选分区,确定所述资源分配分区时,可以在所述候选分区有多个的情况下,针对任一候选分区,确定该候选分区的当前占用资源数量与资源阈值的目标比例,然后基于所述目标比例,确定至少一个资源分配分区。
针对步骤103、
具体的,可以从所述资源分配分区获取所述待分配资源数量的资源、分配至待分配分区。
由于所述资源分配分区内包含至少一个执行中任务,因此需要确定释放哪个任务的资源分配给待分配分区,在一种可能的实施方式中,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区时,可以先基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务;然后将所述第二目标任务占用的资源分配至所述待分配分区。其中,所述第二目标任务占用的资源即为所述第二目标任务的资源需求量。
采用这种方法,可以根据任务属性和待分配资源数量确定适合分配资源的第二目标任务。
在一种可能的实施方式中,在所述任务的任务属性包括历史执行时间、资源需求量、资源占用权限的情况下,在基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务时,可以先确定所述资源分配分区中正在执行的、资源占用权限为目标权限的第二候选任务;然后基于所述第二候选任务的历史执行时间、资源需求量以及所述待分配资源数量,确定所述第二目标任务。
具体的,可以先对所述资源分配分区中各任务的任务运行状态和权限进行检测,筛选出任务运行状态为正在执行状态、且资源占用权限为目标权限的第二候选任务,所述目标权限可以包括分配资源的权限,示例性的,所述目标权限可以是上述可分配权限,则资源占用权限为不可分配权限的受保护任务则不能作为第二目标任务。
在所述第二候选任务仅有一个的情况下,可以直接将该第二候选任务作为所述第二目标任务,在所述第二候选任务为至少两个的情况下,可以将所述第二候选任务按照历史执行时间由短到长进行排序,根据所述待分配资源数量,将资源需求量能够达到所述待分配资源数量、且历史执行时间最短的至少一个第二候选任务作为所述第二目标任务。
示例性的,资源分配分区A包括五个第二候选任务,将所述五个第二候选任务按照历史执行时间排序后,所述五个第二候选任务以及对应的历史执行时间和资源需求量分别为:“任务1、1小时、1”,“任务2、2小时、2”,“任务3、3小时、3”、“任务4、1天、4”,“任务5、2天、5”,如果所述待分配资源数量为2,则历史执行时间最短的任务1和任务2的资源需求量共计为3,满足了待分配资源数量,则将任务1和任务2作为所述第二目标任务,如果所述待分配资源数量为5,则将任务1、任务2、任务3作为所述第二目标任务。
这样,由于第二目标任务在分配资源之前已经利用占用的资源进行了一段时间的计算,在将占用的资源分配给待分配分区后,之前计算的内容难以保存,因此,将历史执行时间较短的任务优先作为第二目标任务,可以减少计算资源的浪费。
在一种可能的实施方式中,在所述待分配分区有多个的情况下,可以将所述资源分配分区的资源分配至所述等待时间最长的待分配分区。
这里,在所述待分配分区有多个的情况下,对于其它如何确定优先被分配资源的待分配分区,本方案在此不做限制。
在一种可能的方式中,在所述资源分配分区的资源小于所属待分配资源数量的情况下,可以等待至所述资源分配分区的资源不小于所述待分配资源数量,再将所述资源分配分区的资源分配至所述待分配分区。这里,所述资源分配分区的资源可以是多个资源分配分区中可分配的资源的总和。
在一种可能的实施方式中,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之后,还可以确定获得分配资源后的虚拟分区是否满足所述预设条件;若是,则重新确定所述待分配资源数量和所述资源分配分区,并为所述获得分配资源后的虚拟分区再次进行资源分配。
具体的,由于所述待分配分区中包括至少一个待执行任务,因此,在为所述待分配分区分配资源后,所述获得分配资源后的虚拟分区仍有可能满足所述预设条件,这里,所述预设条件可以是:该虚拟分区存在待执行任务,且该虚拟分区的当前占用资源数量小于该虚拟分区的资源阈值;或者,该虚拟分区存在待执行任务,且该虚拟分区的任一待执行任务的资源需求量与该虚拟分区的当前占用资源数量之和,不超过该待分配分区的资源阈值。
在检测到所述获得分配资源后的虚拟分区仍满足预设条件后,可以按照上文中所述的方法重新确定所述待分配资源数量和所述资源分配分区,并按照重新确定的待分配资源数量,将重新确定的资源分配分区的资源分配至该虚拟分区。
采用这种方法,可以对当前占用资源过少的虚拟分区进行多次分配,以提升资源分配的公平性。
本公开实施例提供的资源分配方法,可以基于虚拟分区的资源阈值、在虚拟分区中执行的各任务的任务属性以及虚拟分区的当前占用资源数量,确定多个虚拟分区中的待分配分区以及待分配分区对应的待分配资源数量,以保证当前占用资源数量较少的虚拟分区能够作为待分配分区,还可以基于多个虚拟分区的资源阈值和当前占用资源数量,确定多个虚拟分区中的资源分配分区,以保证当前占用资源数量较多的虚拟分区能够作为资源分配分区,最后通过确定的待分配资源数量,将资源分配分区的资源分配给待分配分区,使得资源分配分区可以将过多的资源适量地分给待分配分区,从而实现公平分配资源。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与资源分配方法对应的资源分配装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述资源分配方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种资源分配装置的架构示意图,所述装置包括:第一确定模块201、第二确定模块202、分配模块203;其中,
第一确定模块201,用于确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
第二确定模块202,用于基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
分配模块203,用于按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
一种可能的实施方式中,所述第一确定模块201,还用于根据以下方法确定多个虚拟分区的资源阈值:
确定所述多个虚拟分区的预设权重以及所述多个虚拟分区对应的分配资源总数;
基于所述多个虚拟分区的预设权重和所述多个虚拟分区对应的分配资源总数,确定各虚拟分区对应的初始资源阈值;
基于所述初始资源阈值、在所述虚拟分区中执行的各任务的任务属性、以及所述虚拟分区的当前占用资源数量,确定所述多个虚拟分区的资源阈值。
一种可能的实施方式中,所述任务属性包括在所述虚拟分区执行的各任务的任务运行状态和各任务对应的资源需求量;
所述第二确定模块202,在基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区时,用于:
确定包含待执行任务的第一候选分区;
针对任一第一候选分区,在该第一候选分区的任一待执行任务的资源需求量与该第一候选分区的当前占用资源数量之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
一种可能的实施方式中,所述第二确定模块202,在基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区时,用于:
确定所述当前占用资源数量超过所述资源阈值的第二候选分区;
基于所述第二候选分区,确定所述资源分配分区。
一种可能的实施方式中,所述第二确定模块202,在基于所述第二候选分区,确定所述资源分配分区时,用于:
在所述第二候选分区有多个的情况下,针对任一第二候选分区,确定该第二候选分区的当前占用资源数量与资源阈值的目标比例;
基于所述目标比例,确定所述资源分配分区。
一种可能的实施方式中,所述第二确定模块202,在确定所述待分配分区对应的待分配资源数量时,用于:
确定所述待分配分区的待执行任务中的第一目标任务;
基于所述第一目标任务对应的任务属性中的资源需求量,确定所述待分配资源数量。
一种可能的实施方式中,所述第二确定模块202,在确定所述待分配分区的待执行任务中的第一目标任务时,用于:
确定所述待分配分区的待执行任务中,对应的资源需求量与所述当前占用资源数量之和不超过所述待分配分区的资源阈值的第一候选任务;
基于所述第一候选任务的任务属性,从所述第一候选任务中确定所述第一目标任务。
一种可能的实施方式中,所述分配模块203,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区时,用于:
基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务;
将所述第二目标任务占用的资源分配至所述待分配分区。
一种可能的实施方式中,所述任务的任务属性包括历史执行时间、资源需求量、资源占用权限;
所述第二确定模块202,在基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务时,用于:
确定所述资源分配分区中正在执行的、资源占用权限为目标权限的第二候选任务;
基于所述第二候选任务的历史执行时间、资源需求量以及所述待分配资源数量,确定所述第二目标任务。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区之后,按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之前,所述第二确定模块202,还用于:
确定所述待分配分区满足预设条件的时长超过预设时长;
其中,所述预设条件包括:
所述待分配分区存在待执行任务,且所述待分配分区的当前占用资源数量小于所述待分配分区的资源阈值。
一种可能的实施方式中,在确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量之后,所述第二确定模块202,还用于:
确定所述多个虚拟分区中的闲置资源数量;
在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
一种可能的实施方式中,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之后,所述分配模块203,还用于:
确定获得分配资源后的虚拟分区是否满足所述预设条件;
若是,则重新确定所述待分配资源数量和所述资源分配分区,并为所述获得分配资源后的虚拟分区再次进行资源分配。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图3所示,为本公开实施例提供的计算机设备300的结构示意图,包括处理器301、存储器302、和总线303。其中,存储器302用于存储执行指令,包括内存3021和外部存储器3022;这里的内存3021也称内存储器,用于暂时存放处理器301中的运算数据,以及与硬盘等外部存储器3022交换的数据,处理器301通过内存3021与外部存储器3022进行数据交换,当计算机设备300运行时,处理器301与存储器302之间通过总线303通信,使得处理器301在执行以下指令:
确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的资源分配方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的资源分配方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
Claims (15)
1.一种资源分配方法,其特征在于,包括:
确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括根据以下方法确定多个虚拟分区的资源阈值,包括:
确定所述多个虚拟分区的预设权重以及所述多个虚拟分区对应的分配资源总数;
基于所述多个虚拟分区的预设权重和所述多个虚拟分区对应的分配资源总数,确定各虚拟分区对应的初始资源阈值;
基于所述初始资源阈值、在所述虚拟分区中执行的各任务的任务属性、以及所述虚拟分区的当前占用资源数量,确定所述多个虚拟分区的资源阈值。
3.根据权利要求1或2所述的方法,其特征在于,所述任务属性包括在所述虚拟分区执行的各任务的任务运行状态和各任务对应的资源需求量;
所述基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区,包括:
确定包含待执行任务的第一候选分区;
针对任一第一候选分区,在该第一候选分区的任一待执行任务的资源需求量与该第一候选分区的当前占用资源数量之和,不超过该第一候选分区的资源阈值的情况下,将该第一候选分区确定为所述待分配分区。
4.根据权利要求1~3任一所述的方法,其特征在于,所述基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区,包括:
确定所述当前占用资源数量超过所述资源阈值的第二候选分区;
基于所述第二候选分区,确定所述资源分配分区。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第二候选分区,确定所述资源分配分区,包括:
在所述第二候选分区有多个的情况下,针对任一第二候选分区,确定该第二候选分区的当前占用资源数量与资源阈值的目标比例;
基于所述目标比例,确定所述资源分配分区。
6.根据权利要求1~5任一所述的方法,其特征在于,确定所述待分配分区对应的待分配资源数量,包括:
确定所述待分配分区的待执行任务中的第一目标任务;
基于所述第一目标任务对应的任务属性中的资源需求量,确定所述待分配资源数量。
7.根据权利要求6所述的方法,其特征在于,所述确定所述待分配分区的待执行任务中的第一目标任务,包括:
确定所述待分配分区的待执行任务中,对应的资源需求量与所述当前占用资源数量之和不超过所述待分配分区的资源阈值的第一候选任务;
基于所述第一候选任务的任务属性,从所述第一候选任务中确定所述第一目标任务。
8.根据权利要求1~7任一所述的方法,其特征在于,所述按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区,包括:
基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务;
将所述第二目标任务占用的资源分配至所述待分配分区。
9.根据权利要求8所述的方法,其特征在于,所述任务的任务属性包括历史执行时间、资源需求量、资源占用权限;
所述基于所述资源分配分区中执行的各任务的任务属性和所述待分配资源数量,确定所述资源分配分区中待释放的第二目标任务,包括:
确定所述资源分配分区中正在执行的、资源占用权限为目标权限的第二候选任务;
基于所述第二候选任务的历史执行时间、资源需求量以及所述待分配资源数量,确定所述第二目标任务。
10.根据权利要求1~9任一所述的方法,其特征在于,在确定所述多个虚拟分区中的待分配分区之后,按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之前,所述方法还包括:
确定所述待分配分区满足预设条件的时长超过预设时长;
其中,所述预设条件包括:
所述待分配分区存在待执行任务,且所述待分配分区的当前占用资源数量小于所述待分配分区的资源阈值。
11.根据权利要求1~10任一所述的方法,其特征在于,在确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量之后,所述方法还包括:
确定所述多个虚拟分区中的闲置资源数量;
在所述闲置资源数量不小于所述待分配资源数量的情况下,将所述闲置资源分配给所述待分配分区。
12.根据权利要求10所述的方法,其特征在于,在按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区之后,所述方法还包括:
确定获得分配资源后的虚拟分区是否满足所述预设条件;
若是,则重新确定所述待分配资源数量和所述资源分配分区,并为所述获得分配资源后的虚拟分区再次进行资源分配。
13.一种资源分配装置,其特征在于,包括:
第一确定模块,用于确定多个虚拟分区的资源信息,其中,所述资源信息包括所述虚拟分区的资源阈值、在所述虚拟分区中执行的各任务的任务属性以及所述虚拟分区的当前占用资源数量;
第二确定模块,用于基于各虚拟分区的资源信息,确定所述多个虚拟分区中的待分配分区以及所述待分配分区对应的待分配资源数量;以及基于所述多个虚拟分区的资源阈值和当前占用资源数量,确定所述多个虚拟分区中的资源分配分区;
分配模块,用于按照所述待分配资源数量将所述资源分配分区的资源分配至所述待分配分区。
14.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至12任一项所述的资源分配方法的步骤。
15.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至12任一项所述的资源分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210999939.8A CN115357386A (zh) | 2022-08-19 | 2022-08-19 | 一种资源分配方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210999939.8A CN115357386A (zh) | 2022-08-19 | 2022-08-19 | 一种资源分配方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357386A true CN115357386A (zh) | 2022-11-18 |
Family
ID=84002981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210999939.8A Pending CN115357386A (zh) | 2022-08-19 | 2022-08-19 | 一种资源分配方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357386A (zh) |
-
2022
- 2022-08-19 CN CN202210999939.8A patent/CN115357386A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11275609B2 (en) | Job distribution within a grid environment | |
US9141432B2 (en) | Dynamic pending job queue length for job distribution within a grid environment | |
CN108234581B (zh) | 一种资源的调度方法和服务器 | |
CN103369041B (zh) | 基于云计算的资源分配方法及装置 | |
CN107295090B (zh) | 一种资源调度的方法和装置 | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
CN111966500A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
JP2018077852A (ja) | バーストモード制御 | |
CN112269641A (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN105718316A (zh) | 一种作业调度的方法及装置 | |
CN112261115B (zh) | 一种资源分配的方法、装置及计算机存储介质 | |
CN114896068A (zh) | 资源分配方法、资源分配装置、电子设备及存储介质 | |
CN109783236B (zh) | 用于输出信息的方法和装置 | |
CN112559130A (zh) | 容器分配方法、装置、电子设备及存储介质 | |
CN113765949A (zh) | 资源分配的方法以及装置 | |
CN110618855A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN115357386A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN116880968A (zh) | 一种作业调度方法及调度系统 | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
CN116260876A (zh) | 基于K8s的AI应用调度方法、装置及电子设备 | |
CN112073498B (zh) | 一种资源分配方法及装置 | |
US10180858B2 (en) | Parallel computing device, parallel computing system, and job control method | |
CN115002049A (zh) | 资源分配的方法及装置 | |
CN114884900A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |