一种集群资源的动态分配方法、装置、设备及存储介质与流程

文档序号:26139268发布日期:2021-08-03 14:22阅读:125来源:国知局
一种集群资源的动态分配方法、装置、设备及存储介质与流程

本发明涉及资源管理技术领域,尤其涉及一种集群资源的动态调度方法、装置、设备及存储介质。



背景技术:

随着企业业务的不断拓展和多元化,数据也在呈指数型增长。越来越多的公司选择以分布式系统基础架构(hadoop)生态搭建数据仓库,并在大数据集群上架设了越来越多相对复杂的应用办公场景需求,服务器资源紧跟着越来越紧张。

目前相关企业为防止出现数据与集群资源混乱无序的状态,广泛采用集群的多租户注册资源管理方式,主要通过调整框架另一种资源协调者(yetanotherresourcenegotiator,yarn)实现多租户资源管理。

目前的集群资源管理方法无法动态的调度集群资源,造成集群资源的利用率低。



技术实现要素:

本发明实施例提供一种集群资源的动态分配方法、装置、设备及存储介质,能够动态地调整集群资源的分配,从而提高集群资源的利用率。

第一方面,本发明实施例提供一种集群资源的动态分配方法,该方法包括:

获取多个队列的资源需求信息和资源配置数据,资源配置数据包括队列最小资源;根据资源需求信息和资源配置数据确定多个队列的状态;当多个队列中的至少一个队列的状态为饥饿模式时,根据资源配置数据优先为至少一个队列分配资源,其中,饥饿模式是队列的可使用资源小于队列最小资源。

在一种可能的实现方式中,在所述当所述多个队列中的至少一个队列的状态为饥饿模式时,根据所述资源配置数据优先为所述至少一个队列分配资源之前,所述方法还包括:根据所述资源配置数据计算所述可使用资源。

在一种可能的实现方式中,当多个队列中的至少两个队列的状态为饥饿模式时,根据资源配置数据优先为至少一个队列分配资源,包括:根据资源配置数据和至少两个队列的预设优先级为至少两个队列分配资源。

在一种可能的实现方式中,根据资源配置数据和至少两个队列的预设优先级为至少两个队列分配资源,包括:根据至少两个队列的资源配置数据,确定至少两个队列中每个队列的已使用资源比例;当至少两个队列中每个队列的已使用资源比例相等时,获取至少两个队列中每个队列的资源使用量;计算资源使用量和预设优先级的比值,得到至少两个队列的权重;根据至少两个队列的权重从小到大的顺序,为对应的队列依次分配资源。

第二方面,本发明实施例提供了一种集群资源的动态分配装置,该装置包括:获取模块,用于获取多个队列的资源需求信息和资源配置数据,资源配置数据包括队列最小资源;确定模块,用于根据资源需求信息和资源配置数据确定多个队列的状态;分配模块,用于当多个队列中的至少一个队列的状态为饥饿模式时,根据资源配置数据优先为至少一个队列分配资源,其中,饥饿模式是队列的可使用资源小于队列最小资源。

在一种可能的实现方式中,分配模块还用于获取多个队列的资源需求信息和资源配置数据;还用于根据资源配置数据计算可使用资源。

在一种可能的实现方式中,分配模块用于当多个队列中的至少两个队列的状态为饥饿模式时,根据资源配置数据和至少两个队列的预设优先级为至少两个队列分配资源。

在一种可能的实现方式中,分配模块用于根据至少两个队列的资源配置数据,确定至少两个队列中每个队列的已使用资源比例;还用于当至少两个队列中每个队列的已使用资源比例相等时,获取至少两个队列中每个队列的资源使用量;还用于计算资源使用量和预设优先级的比值,得到至少两个权重;还用于根据至少两个权重从小到大的顺序,为对应的队列依次分配资源。

第三方面,本发明实施例提供了一种电子设备,该设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时,实现如第一方面或者第一方面的任一可能实现方式中的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面或者第一方面的任一可能实现方式中的方法。

本发明的实施例提供的技术方案至少带来以下有益效果:本发明根据多个队列的资源需求信息和资源配置数据确定多个队列的状态,当至少一个队列的状态为饥饿模式时,根据这些至少一个队列的资源配置数据优先为这些至少一个队列分配资源。能够根据队列的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种集群资源的动态分配架构。

图2是本发明实施例提供的一种集群资源的动态分配方法。

图3是本发明实施例提供的另一种集群资源的动态分配方法。

图4是本发明实施例提供的另一种集群资源的动态分配方法。

图5是本发明实施例提供的一种集群资源的动态分配装置。

图6是本发明实施例提供的一种电子设备。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

随着企业业务的不断拓展和多元化,数据也在呈指数型增长。越来越多的公司选择以hadoop生态搭建数据仓库,并在大数据集群上架设了越来越多相对复杂的应用办公场景需求,服务器资源紧跟着越来越紧张。

目前相关企业为防止出现数据与集群资源混乱无序的状态,广泛采用集群的多租户注册资源管理方式,主要通过调整框架yarn实现多租户资源管理。

目前的集群资源管理方法无法动态的调度集群资源,造成集群资源的利用率低。

本发明实施例提供一种集群资源的动态分配方法、装置、设备及存储介质,根据多个队列的资源需求信息和资源配置数据确定多个队列的状态,当至少一个队列的状态为饥饿模式时,根据这些至少一个队列的资源配置数据优先为这些至少一个队列分配资源。能够根据队列的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

在本发明提供的一个实施例中,采用yarn的公平资源调度器(fairscheduler,fs)对集群资源进行调度。首先fs将集群总资源分成一个个队列(也称资源池),在集群中一个租户(也称注册系统)对应一个队列,在创建每个队列时,根据租户的实际开发需求评估该租户的需求信息,根据租户的需求信息为每个租户对应的队列配置资源配置数据,通过资源配置数据进行资源调度算法运算,所有的任务都要运行在队列中并且受队列资源配置数据的管理和限制。

在本发明提供的一个实施例中,fs采用三层调度方式,在每层的调度中fs均采用公平共享策略(fairsharepolicy,fsp),三层调度包括:

1.租户向fs提交任务,fs将任务提交到租户对应的队列。租户所有的任务都要经fs提交到队列中。例如:租户a对应队列a,则fs将租户a提交的任务提交到队列a。

2.fs按照集群资源的动态分配方法为队列中的应用程序分配资源。

3.fs按照集群资源的动态分配方法为应用程序的多个任务分配资源。

下面结合图1阐述本发明实施例提供的一种集群资源的动态分配架构,该架构包括资源调度器101、参数配置模块102、任务调度模块103。

资源调度器101用于按照三层调度方式为队列和队列中的应用程序、应用程序的多个任务分配资源。

参数配置模块102用于根据租户的需求信息为队列和队列中的应用程序配置资源配置数据。

资源配置数据可以包括以下至少一项:队列最大资源、队列最小资源、预留的资源、队列已使用资源、应用程序管理器最大资源、应用程序管理器最小资源、应用程序程序管理器已使用的资源、最大可运行应用程序数、正在运行的应用程序数、堆积的应用程序数、固定公平分享资源(steadyfairshare)、是否允许占用的资源。

队列最大资源:平台为了提高集群的资源使用率自行调整的,是非保障性资源,是平台为了提高集群的资源使用率设置的。在集群有空闲资源的时候队列可以使用超过队列最小资源但不大于队列最大资源。当某个队列使用的资源超过最小资源,超过最小资源的这部分资源是非保障性资源,相当于是临时占用了其他队列的最小资源,如果其他队列有资源需求会将这部分资源收回,所以超过最小资源的这部分资源是不稳定的,有可能在其他队列上线任务的情况下受影响,导致任务延迟。当队列占用的资源达到队列最大资源后都不能再被分配到资源,即使该队列中还有资源需求的任务只能等队列中的其他任务释放资源,释放的资源会有资源调度器重新分配。

队列最小资源:用户在注册时报备、申请的资源,是保障性资源。

预留的资源:一般是为了应对特殊情况预留的当前队列资源,这些资源不参与集群资源的动态分配。

用户提交的每个应用程序均包含一个应用程序管理器,主要功能包括:与资源调度器协商以获取资源;将得到的应用程序任务进一步分配给内部的应用程序任务(即资源的二次分配);与每个节点上的资源和任务管理器通信以启动/停止应用程序任务;监控所有应用程序任务运行状态,并在应用程序任务运行失败时重新为应用程序任务申请资源以重启应用程序任务。

应用程序管理器最大资源:平台为应用程序分配的可使用的最大资源。

应用程序管理器最小资源:是用户在注册时报备、申请的资源,是保障性资源。

应用程序管理器已使用的资源:队列中的应用程序已使用的资源。

最大可运行应用程序数:每个队列中可以运行应用程序的最大数量。

正在运行的应用程序数:每个队列中正在运行的应用程序的数量。

堆积的应用程序数:每个队列中等待运行的应用程序的数量。

固定公平分享资源:yarn根据每个队列的权重、最大最小可运行资源计算的得到的可以分配给这个队列的最大可用资源。但是固定公平分享资源属于理论值,只要集群总体资源和队列配置不变,则每个队列的固定公平分享资源值是不变的,而瞬时公平分享资源是动态变化值,代表了运行时每个队列可使用的最大资源。

是否允许占用的资源:多租户时可以对特定场景下的租户,如低优先级的用户不启用资源抢占。

任务调度模块103用于按照fsp策略调度执行租户的任务。

本发明实施例提供的集群资源的动态分配架构能够根据队列和应用程序的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

下面将结合图2详细阐述本发明一个实施例提供的一种集群资源的动态分配方法。

如图2所示,该方法可以包括以下步骤:

s210,获取多个队列的资源需求信息和资源配置数据,所述资源配置数据包括队列最小资源。

在采用集群的多租户注册管理方式时,所述队列与租户一一对应,在为每个租户创建队列时,根据租户的实际开发需求评估该租户的需求信息,根据租户的需求信息每个租户对应的队列配置资源配置数据。

通过资源调度器遍历所有队列,检查每个队列是否有资源需求,确定多个有资源需求的队列,资源调度器获取有资源需求的多个队列的资源需求信息和资源配置数据。

资源调度器可以根据预设的周期遍历所有队列的状态。

s220,根据所述资源需求信息和所述资源配置数据确定所述多个队列的状态。

资源调度器根据资源需求信息对应的多个队列和这多个队列的资源配置数据,通过多租户资源实际使用情况,确定这多个队列的状态。

每个队列的状态可以是最小资源模式、饥饿模式、需求资源模式、最大资源模式中的一种。

最小资源模式是队列可使用资源等于队列最小资源;饥饿模式是队列的可使用资源小于所述队列最小资源;需求资源模式是队列需求的资源大于队列最小资源,小于队列最大资源;最大资源模式是队列需求的资源等于队列最大资源。

s230,当所述多个队列中的至少一个队列的状态为饥饿模式时,根据所述资源配置数据优先为所述至少一个队列分配资源。

当有资源需求的多个队列中的至少一个队列的状态为饥饿模式时,根据所有队列中无资源需求的队列和至少一个饥饿模式的队列的资源配置数据,优先为有资源需求的至少一个队列分配资源。

资源调度器可以为排序靠前的队列调用无资源需求队列的队列最小资源。

在本发明提供的一个实施例中,当所述多个队列中的一个队列的状态为饥饿模式时,根据所有队列中无资源需求的队列和一个饥饿模式的队列的资源配置数据,优先为有资源需求的一个队列分配资源。

资源调度器可以为有资源需求的一个队列调用无资源需求队列的队列最小资源。

本发明实施例提供的方法可以在一个队列的状态为饥饿模式时,优先为该队列分配资源。

在本发明提供的一个实施例中,当所述多个队列中的至少两个队列的状态为饥饿模式时,所述根据所述资源配置数据优先为所述至少一个队列分配资源,包括:根据所述资源配置数据和所述至少两个队列的预设优先级为所述至少两个队列分配资源。

用户可以为自己的队列预设优先级,预设优先级可以是1-7,数字越大优先级越高。当多个队列中的至少两个队列的状态为饥饿模式时,根据资源配置数据和至少两个队列的预设优先级为至少两个队列分配资源。

本发明实施例提供的方法可以在至少两个队列的状态为饥饿模式时,根据至少两个队列的优先级为其分配资源。

本发明实施例提供的方法可以根据多个队列的资源需求信息和资源配置数据确定多个队列的状态,当至少一个队列的状态为饥饿模式时,根据这些至少一个队列的资源配置数据优先为这些至少一个队列分配资源。资源调度器可以为排序靠前的队列调用无资源需求队列的队列最小资源,实现根据队列的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

在本发明提供的一个实施例中,在所述当所述多个队列中的至少一个队列的状态为饥饿模式时,根据所述资源配置数据优先为所述至少一个队列分配资源之前,所述方法还包括:根据所述资源配置数据计算所述可使用资源。

资源需求信息可以包括队列需求的资源。

资源调度器动态的对资源进行调度,在队列a没有资源需求或需要的资源小于队列a的队列最小资源,而队列b需求的资源大于队列b的队列最小资源时,队列b可以临时占用队列a的部分队列最小资源,当队列a有更多的资源需求时,资源调度器会将队列b占用队列a的资源收回,队列a可使用资源包括队列a收回的这部分资源,而且,队列a还可以在需求的资源大于队列最小资源时,占用其他队列的资源,队列a的队列最小资源减去队列已使用资源,得到的队列a的可使用资源。

本发明实施例提供的方法可以通过遍历队列的状态,确定有资源需求的多个队列,并根据该多个队列的资源配置数据得到可使用资源,从而为确定队列的状态提供依据,以便于为队列动态的分配资源,提高集群资源的利用率。

在本发明提供的一个实施例中,如图3所示,所述根据所述资源配置数据和所述至少两个队列的预设优先级为所述至少两个队列分配资源,包括以下步骤:

s310,根据所述至少两个队列的所述资源配置数据,确定所述至少两个队列中每个队列的已使用资源比例。

在一个示例中,需要获取该至少两个队列中每个队列需求的资源,已使用资源比例=已使用资源/max{min{队列最小资源,需求的资源},1},资源调度器按照已使用资源比例从小到大的顺序依次为队列分配资源。

s320,当所述至少两个队列中每个队列的所述已使用资源比例相等时,获取所述至少两个队列中每个队列的资源使用量。

资源使用量是该至少两个队列中每个队列的已使用资源的大小。

s330,计算所述资源使用量和所述预设优先级的比值,得到所述至少两个队列的权重。

队列的资源使用量可以反映出队列资源的使用情况,将资源使用量和预设优先级的比值作为队列的权重,也就是说从队列资源的使用情况和队列的预设优先级的维度确定了队列的权重,这样权重能够根据队列资源的使用情况的变化而变化,从而能够动态地根据队列的权重变化为队列分配的资源。

s340,根据所述至少两个队列的所述权重从小到大的顺序,为对应的队列依次分配资源。

资源调度器可以为排序靠前的队列调用无资源需求队列的队列最小资源。

本发明实施例提供的方法可以在有至少两个队列处于饥饿模式时,根据至少两个队列的资源配置数据和预设优先级确定为该至少两个队列的分配资源的顺序,排序靠前的队列可以占用无资源需求队列的队列最小资源,提高集群资源的使用率。

在本发明提供的一个实施例中,本发明是实施例提供的集群资源的动态分配方法,还可以为队列中的应用程序分配资源,分配资源方法包括:

1.获取同一个队列中多个应用程序的资源需求信息和资源配置数据,所述资源配置数据包括应用程序管理器可使用的最小资源。

资源调度器遍历所有应用程序的状态,检查每个应用程序是否有资源需求,确定多个有资源需求的应用程序。

2.根据资源需求信息和资源配置数据确定所述多个应用程序的状态。

资源需求信息可以包括应用程序需求的资源。

由于资源调度器动态的对资源进行调度,在同一个队列中,在应用程序c没有资源需求或需要的资源小于应用程序c的应用程序管理器最小资源,而应用程序d需求的资源大于应用程序d的应用程序管理器最小资源时,应用程序d可以临时占用应用程序c的部分应用程序管理器最小资源,当应用程序c有更多的资源需求时,资源调度器会将应用程序d占用应用程序c的资源收回,应用程序c可使用资源包括应用程序c收回的这部分资源。而且,应用程序c还可以在需求的资源大于应用程序管理器最小资源时,占用其他应用程序的资源,应用程序列c的应用程序最小资源减去应用程序c已使用资源,得到的应用程序c的可使用资源。

3.当多个应用程序中的至少一个应用程序的状态为饥饿模式时,根据资源配置数据优先为至少一个应用程序分配资源,其中,饥饿模式是应用程序的可使用资源小于应用程序管理器最小资源。

每个应用程序的状态可以是最小资源模式、饥饿模式、需求资源模式、最大资源模式中的一种。

最小资源模式是应用程序可使用资源等于应用程序管理器最小资源;饥饿模式是应用程序的可使用资源小于应用程序管理器最小资源;需求资源模式是应用程序需求的资源大于应用程序管理器最小资源,小于应用程序管理器最大资源;最大资源模式是应用程序需求的资源等于应用程序管理器最大资源。

当有资源需求的多个应用程序中的至少一个应用程序的状态为饥饿模式时,根据同一个队列中所有应用程序中无资源需求的应用程序和至少一个饥饿模式的应用程序的资源配置数据,优先为有资源需求的至少一个应用程序分配资源。

当多个应用程序中的至少两个应用程序的状态为饥饿模式时,根据资源配置数据和至少两个应用程序的预设优先级为至少两个应用程序分配资源。

用户可以为自己的应用程序预设优先级,优先级可以是1-7,数字越大优先级越高。当多个应用程序中的至少两个应用程序的状态为饥饿模式时,根据资源配置数据和至少两个应用程序的预设优先级为至少两个应用程序分配资源。

根据所述至少两个队列的所述资源配置数据,确定所述至少两个队列中每个队列的已使用资源比例。

在一个示例中,根据资源配置数据和至少两个应用程序的预设优先级为至少两个应用程序分配资源,包括以下步骤:

1.需要获取该至少两个应用程序需求的资源,已使用资源比例=已使用资源/max{min{应用程序管理器最小资源,需求的资源},1},资源调度器优先为已使用资源比例小的队列分配资源。

2.当所述至少两个应用程序的已使用资源比例相等时,获取至少两个应用程序中每个应用程序的资源使用量。

资源使用量是该至少两个应用程序中每个应用程序的已使用资源的大小。

3.计算资源使用量和预设优先级的比值,得到至少两个应用程序的权重。

4.根据至少两个应用程序的权重从小到大的顺序,为对应的应用程序依次分配资源。

资源调度器可以为权重大的应用程序调用无资源需求应用程序的应用程序管理器最小资源。

本发明实施例提供的方法可以根据多个应用程序的资源需求信息和资源配置数据确定多个应用程序的状态,当至少一个应用程序的状态为饥饿模式时,根据这些至少一个应用程序的资源配置数据优先为这些至少一个应用程序分配资源。资源调度器可以为权重值大的应用程序调用无资源需求应用程序的应用程序管理器最小资源,实现根据应用程序的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

在一个示例中,本发明实施例提供的集群资源的动态分配方法如图4所示。包括以下步骤:

410,资源调度器遍历租户的任务,任务可以是队列或队列中应用程序,判断任务是否有资源需求。

资源调度器按照预设的周期遍历租户的任务。

若仅有一个任务有资源需求,执行步骤411,优先为该任务分配资源。

若有至少两个任务有资源需求,则执行步骤420。

420,判断两个任务是否都饥饿。

若仅有一个任务有为饥饿模式,执行步骤421,优先为该任务分配资源。

若有至少两个任务为饥饿模式,则执行步骤430。

430,比较两个任务的已使用资源比例。

若至少两个任务中每个任务的已使用资源比例均不相等,执行步骤431,按照已使用资源比例从小到大的顺序依次为至少两个任务分配资源。

若至少两个任务中每个任务的已使用资源比例相等,则执行步骤s440。

440,比较至少两个任务的权重。

若至少两个任务的权重均不相等,执行步骤441,按照权重从小到大的顺序依次为至少两个任务分配资源。

若至少两个任务的权重相等,则执行步骤450。

450,判断至少两个任务的创建时间或启动时间。

若至少两个任务的创建时间或启动时间不相同,执行步骤451,按照创建时间或启动时间从早到晚的顺序依次为至少两个任务分配资源。

若至少两个任务的创建时间或启动时间相同,则执行步骤460。

460,比较至少两个任务的名字的字典排序。

比较至少两个任务的名字的字典排序,每个任务名字唯一,按照名字从前到后的顺序依次为至少两个任务分配资源。

资源调度器可以为排序靠前的任务调用无资源需求的队列或应用程序的队列最小资源或应用程序管理器最小资源,保证排序靠前的任务能够被快速处理。

本发明实施例提供的方法可以根据多个队列或应用程序的资源需求信息和资源配置数据确定多个队列或应用程序的状态,当至少一个队列或应用程序的状态为饥饿模式时,根据这些至少一个队列或应用程序的资源配置数据优先为这些至少一个队列或应用程序分配资源。能够根据队列或应用程序的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

本发明实施例还提供一种集群资源的动态分配装置500,该装置包括获取模块510、确定模块520、分配模块530。其中:

获取模块510,用于获取多个队列的资源需求信息和所述资源配置数据,所述资源配置数据包括队列最小资源。

获取模块510可以通过遍历所有队列,检查每个队列是否有资源需求,确定多个有资源需求的队列,资源调度器获取有资源需求的多个队列的资源需求信息和资源配置数据。

确定模块520,用于根据所述资源需求信息和所述资源配置数据确定所述多个队列的状态。

确定模块520可以根据资源需求信息对应的多个队列和这多个队列的资源配置数据,通过检查多租户资源实际使用情况,确定这多个队列的状态。

每个队列的状态可以是最小资源模式、饥饿模式、需求资源模式、最大资源模式中的一种

分配模块530,用于当所述多个队列中的至少一个队列的状态为饥饿模式时,根据所述资源配置数据优先为所述至少一个队列分配资源,其中,所述饥饿模式是队列的可使用资源小于所述队列最小资源。

其中,所述队列与租户一一对应,所述资源配置数据是在为每个所述租户创建队列时,根据每个所述租户的需求信息为每个所述租户对应的所述队列配置的。

本发明实施例提供的集群资源的动态分配装置根据多个队列的资源需求信息和资源配置数据确定多个队列的状态,当至少一个队列的状态为饥饿模式时,根据这些至少一个队列的资源配置数据优先为这些至少一个队列分配资源。能够根据队列的优先级动态地调整集群资源的分配,从而提高集群资源的利用率。

在本发明提供的一个实施例中,所述分配模块530用于当所述多个队列中的至少两个队列的状态为饥饿模式时,根据所述资源配置数据和所述至少两个队列的预设优先级为所述至少两个队列分配资源。

本发明实施例提供的装置可以在至少两个队列的状态为饥饿模式时,根据至少两个队列的优先级为其分配资源。

在本发明提供的一个实施例中,当多个队列中的一个队列的状态为饥饿模式时,根据所有队列中无资源需求的队列和一个饥饿模式的队列的资源配置数据,优先为有资源需求的一个队列分配资源。

分配模块530可以为有资源需求的一个队列调用无资源需求队列的队列最小资源。

本发明实施例提供的装置可以在一个队列的状态为饥饿模式时,优先为该队列分配资源。

在本发明提供的一个实施例中,当所述多个队列中的至少两个队列的状态为饥饿模式时,所述根据所述资源配置数据优先为所述至少一个队列分配资源,包括:

根据所述资源配置数据和所述至少两个队列的预设优先级为所述至少两个队列分配资源。

用户可以为自己的队列预设优先级,预设优先级可以是1-7,数字越大优先级越高。当多个队列中的至少两个队列的状态为饥饿模式时,根据资源配置数据和至少两个队列的预设优先级为至少两个队列分配资源。

本发明实施例提供的装置可以在至少两个队列的状态为饥饿模式时,根据至少两个队列的优先级为其分配资源。在本发明提供的一个实施例中,所述分配模块530还用于根据所述资源配置数据计算所述可使用资源。

在本发明提供的一个实施例中,所述分配模块530用于根据所述至少两个队列的所述资源配置数据,确定所述至少两个队列中每个队列的已使用资源比例;还用于当所述至少两个队列中每个队列的所述已使用资源比例相等时,获取所述至少两个队列中每个队列的资源使用量;还用于计算所述资源使用量和所述预设优先级的比值,得到至少两个权重;还用于根据所述至少两个权重从小到大的顺序,为对应的队列依次分配资源。

本发明实施例提供的装置可以在有至少两个队列处于饥饿模式时,根据至少两个队列的资源配置数据和预设优先级确定为该至少两个队列的分配资源的顺序,提高集群资源的使用率。

本发明实施例提供的集群资源的动态分配装置执行图2所示的方法中的各个步骤,并能够达到能够根据队列的优先级动态地调整集群资源的分配,从而提高集群资源的利用率的技术效果,为简洁描述,再此不在详细赘述。

图6示出了本发明实施例提供的一种电子设备的硬件结构示意图。

在电子设备可以包括处理器601以及存储有计算机程序指令的存储器602。

具体地,上述处理器601可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在综合网关容灾设备的内部或外部。在特定实施例中,存储器602是非易失性固态存储器。在特定实施例中,存储器602包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现图2至图4所示实施例中的任意一种集群资源的动态分配方法。

在一个示例中,电子设备还可包括通信接口603和总线610。其中,如图6所示,处理器601、存储器602、通信接口603通过总线610连接并完成相互间的通信。

通信接口603,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线610包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线610可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

该电子设备可以执行本发明实施例中的集群资源的动态分配方法,从而实现结合图2描述的集群资源的动态分配方法。

另外,结合上述实施例中的集群资源的动态分配方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种集群资源的动态分配方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1