一种基于优先级的资源分配方法、装置和设备

著录项
  • CN201610410884.7
  • 20160613
  • CN107491351A
  • 20171219
  • 阿里巴巴集团控股有限公司
  • 张杨;冯亦挥;欧阳晋;韩巧焕;汪方
  • G06F9/50
  • G06F9/50 G06F9/48

  • 英属开曼岛大开曼资本大厦一座四层847号邮箱
  • 开曼岛(KY)
  • 北京市清华源律师事务所
  • 沈泳;王永秀
摘要
本申请提供了一种基于优先级的资源分配方法,包括:接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息;根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,在所述剩余资源不满足所述资源申请时,在所述已分配资源申请队列中依序遍历作业优先级低于所述资源申请的已分配资源申请;将所有遍历到的资源申请所占用的系统资源之和并加上所述剩余资源,作为可用资源;在所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请。本申请的技术方案解决了高作业优先级的资源申请能够抢占低作业优先级资源申请的问题。本申请同时还提供了一种基于优先级的资源分配装置和设备。
权利要求

1.一种基于优先级的资源分配方法,其特征在于,包括:

接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,在所述 剩余资源不满足所述资源申请时,在所述已分配资源申请队列中依序遍历作业优先级低于 所述资源申请的已分配资源申请;所述已分配资源申请是已完全或部分分配到资源的资源 申请;

所有已遍历到的所述已分配资源申请组成已遍历资源申请,将所有所述已遍历资源申 请所占用的系统资源之和并加上所述剩余资源,作为可用资源;

每遍历一个所述已分配资源申请,判断所述可用资源是否满足所述资源申请,在所述 可用资源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请。

2.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,在所述根据所述资 源申请的资源需求信息判断系统剩余资源是否满足所述资源申请的过程中,若所述剩余资 源满足所述资源申请,则根据所述资源申请的资源需求信息为所述作业分配相应的资源; 并将所述资源申请作为所述已分配资源申请记入所述已分配资源申请队列。

3.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述每遍历一个所 述已分配资源申请,判断所述可用资源是否满足所述资源申请还包括:若所述可用资源不 能满足所述资源申请,则继续遍历,直到所述可用资源满足所述资源申请为止。

4.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述每遍历一个所 述已分配资源申请,判断所述可用资源是否满足所述资源申请还包括:若遍历完所有低作 业优先级的所述已分配资源申请后,所述可用资源仍不能满足所述资源申请,则为所述资 源申请分配部分资源。

8.根据权利要求4所述的基于优先级的资源分配方法,其特征在于,所述为所述资源申 请分配部分资源具体包括:

将所述剩余资源分配给所述资源申请,所述资源申请未被满足的部分进入待分配资源 申请队列,等待下次的资源分配;

将所述可用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低的顺 序分配给所述已遍历资源申请。

15.根据权利要求8所述的基于优先级的资源分配方法,其特征在于,所述待分配资源 申请队列是按所述作业优先级排列的所有完全或部分未分配到资源的待分配资源申请的 集合;所述申请包括所述资源申请名、所述资源申请体积、所述资源申请数量、待分配资源 数量、所述作业优先级。

9.根据权利要求4所述的基于优先级的资源分配方法,其特征在于,所述为所述资源申 请分配部分资源具体包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足所述 资源申请时,保持所述已分配资源申请所占用的系统资源不变,将所述剩余资源分配给所 述资源申请,所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资源分 配。

5.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述在所述可用资 源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,将所述可用资源分配给所述资源申 请;并将分配后的第二剩余资源按照作业优先级由高到低的顺序分配给已遍历资源申请;

所述第二剩余资源是所述可用资源在分配给所述资源申请后剩下的系统资源。

6.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述在所述可用资 源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,进一步判断所述第二剩余资源是否 满足任一已遍历资源申请,若满足,将所述可用资源分配给所述资源申请,并将所述第二剩 余资源分配所述任一已遍历资源申请。

7.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述在所述可用资 源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,进一步判断所述第二剩余资源是否 满足任一已遍历资源申请,若满足,则将除去所述任一已遍历资源申请所占用资源之外的 剩余可用资源分配给所述资源申请。

10.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述资源申请包 括资源申请名、资源申请体积、资源申请数量和作业优先级;

所述资源申请名是所述资源申请的标示名;

所述资源申请体积是运行于该资源申请对应的所述作业所需要的最小资源占用;

所述资源申请数量是所述资源申请的所申请的所述资源申请体积的数量;

所述作业优先级是由用户定义的,确定数量的优先级级别,所述优先级级别越高,表示 对应的所述作业越重要,所述资源申请越应该优先被满足;如果所述优先级级别相同,在时 间序列上,越早提交的所述资源申请越优先被满足。

11.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,作业优先级按照 设定的维度被聚合成不同的优先级区间;所述在已分配资源队列中依序遍历作业优先级低 于所述作业资源申请的已分配资源申请具体包括:

在已分配资源队列中按照作业优先级由低到高的顺序遍历所有所在优先级区间低于 所述资源申请所在优先级区间的所述已分配资源申请。

12.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述在已分配资 源队列中依序遍历作业优先级低于所述作业资源申请的已分配资源申请具体包括:

在已分配资源队列中按照作业优先级由低到高的顺序遍历所有所述作业优先级低于 所述资源申请的所述已分配资源申请。

13.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述已分配资源 队列是按所述作业优先级顺序排列,已完全或部分分配到资源的已分配资源申请的集合。

14.根据权利要求1所述的基于优先级的资源分配方法,其特征在于,所述已分配资源 申请包括所述资源申请名、所述资源申请体积、已分配资源数量、已分配资源和所述作业优 先级;

所述已分配资源数量是已经分配给该资源申请的所述资源申请体积的数量;

所述已分配资源是所述资源申请体积与所述已分配资源数量的乘积。

16.一种基于优先级的资源分配装置,其特征在于,包括:资源申请接收单元、资源抢占 单元;

所述资源申请接收单元,用于接受作业提交的所述资源申请,所述资源申请包括资源 需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,若所述 剩余资源不满足所述资源申请,进入所述资源抢占单元。

17.根据权利要求16所述的基于优先级的资源分配装置,其特征在于,还包括资源分配 单元;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,当所述 剩余资源满足所述资源申请时,进入所述资源分配单元;

所述资源分配单元,用于根据所述作业的资源需求信息为所述资源申请分配相应的资 源;并将所述资源申请作为已分配资源申请记入已分配资源申请队列。

24.根据权利要求17所述的基于优先级的资源分配装置,其特征在于,所述资源申请接 收单元提交的所述资源申请包括:资源申请名、资源申请体积、资源申请数量、作业优先级。

18.根据权利要求16所述的基于优先级的资源分配装置,其特征在于,所述资源抢占单 元包括遍历子单元、遍历后处理子单元;

所述遍历子单元,用于在已分配资源队列中按照所述作业优先级从低到高的顺序遍历 作业优先级低于所述资源申请的已分配资源申请;每遍历一个所述已分配资源申请,判断 所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍历,将所述可用资源 分配给所述作业;若所述可用资源不能满足,则继续遍历,直到所述可用资源满足所述资源 申请为止;

遍历后处理子单元,用于处理在所述遍历后,所述可用资源仍不能满足所述资源申请 的情况。

19.根据权利要求18所述的基于优先级的资源分配装置,其特征在于,在所述遍历子单 元中,所述若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请具体包 括:

若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请;并将分配后 的所述第二剩余资源按照作业优先级由高到低的顺序分配给已遍历资源申请。

20.根据权利要求18所述的基于优先级的资源分配装置,其特征在于,在所述遍历子单 元中,所述若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请具体包 括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一已遍 历资源申请,若满足,将所述可用资源分配给所述资源申请,并将所述第二剩余资源分配所 述任一已遍历资源申请。

21.根据权利要求18所述的基于优先级的资源分配方法,其特征在于,在所述遍历子单 元中,所述若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请具体包 括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一已遍 历资源申请,若满足,则将除去所述任一已遍历资源申请所占用资源之外的剩余可用资源 分配给所述资源申请。

22.根据权利要求18所述的基于优先级的资源分配装置,其特征在于,所述遍历后处理 子单元包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足所述 资源申请时,将所述可用资源分配给所述资源申请,所述资源申请未被满足的部分进入待 分配资源申请队列,等待下次的资源分配;

将所述可用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低的顺 序分配给被抢占资源的所述已分配遍历资源申请。

23.根据权利要求18所述的基于优先级的资源分配装置,其特征在于,所述遍历后处理 子单元包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足所述 资源申请时,保持所述已分配资源申请所占用的系统资源不变,将所述剩余资源分配给所 述资源申请,所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资源分 配。

25.一种电子设备,其特征在于,所述电子设备包括:

显示器;

处理器;

存储器,用于存储基于优先级的资源分配程序,所述程序在被所述处理器读取执行时, 执行如下操作:

接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,若满 足,则根据所述资源申请的资源需求信息为所述作业分配相应的资源;并将所述资源申请 作为已分配资源申请记入已分配资源申请队列;

若不满足,在已分配资源申请队列中按照所述作业优先级由低到高的顺序遍历作业优 先级低于所述资源申请的已分配资源申请;

所有已遍历到的所述已分配资源申请组成已遍历资源申请,将所有所述已遍历资源申 请所占用的系统资源之和并加上所述剩余资源,作为可用资源;每遍历一个所述已分配资 源申请,判断所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍历,将 所述可用资源分配给所述资源申请;若所述可用资源不能满足,则继续遍历,直到所述可用 资源满足所述资源申请为止;或者继续遍历,直到遍历完所有低作业优先级的所述已分配 资源申请,为所述资源申请分配资源。

说明书
技术领域

本申请涉及计算机技术领域,具体涉及一种基于优先级的资源分配方法,相应于 上述方法,本申请还涉及一种基于优先级的资源分配装置和设备。

在分布式系统中,通常存在三个角:资源调度器、作业管理器及下属作业节点、 机器节点。当用户需要提交一个作业时,作业管理器会向资源调度器申请一定数量的机器 资源,如CPU、内存等,供作业节点使用;资源调度器在收到作业资源申请后,会根据分布式 系统中剩余的可用资源计算出可以分配给作业管理器可用资源列表,例如:在A机器上可用 1核CPU、1GB内存,在B机器上可用2核CPU、2GB内存;然后,资源调度器会将资源列表发送给 作业管理器和相应机器节点。

在一个分布式系统中,会有成千上万的作业管理器,通常这些作业管理器的资源 申请的作业优先级是不一样的:有些作业管理器的资源申请作业优先级较高,需要资源调 度器优先为其分配资源;有些作业管理器的资源申请作业优先级较低,表明可以容忍资源 调度器优先为其他高作业优先级的资源申请分配资源。在分布式系统中经常会出现集整 体资源耗尽导致资源申请排队的情况。一种常见的方案是将请求按照优先级进行排队,然 后周期性的从队列中取出资源请求重新提交,如图1所示,在等待队列中,高作业优先级的 资源请求会排在前面,低优先级的资源请求会排在后面。

然而,以上方法无法解决如下问题:在集资源整体耗尽的情况下资源调度器接 收到了一个优先级非常高的资源请求,这个资源请求需要立即得到资源;然而所有已经得 到满足的资源申请还需要执行相当长一段时间,所以即便这个资源申请的作业优先级很 高,也不得不等待其他低作业优先级的资源申请在归还资源后才能被分配资源。在这种场 合下,资源调度器需要支持高作业优先级的资源申请能够获取低作业优先级资源申请已经 得到的资源。

本申请提供一种基于优先级的资源分配方法,解决了高作业优先级的资源申请能 够抢占低作业优先级资源申请的问题,可以使系统资源获得有效利用。

本申请提供一种基于优先级的资源分配方法,包括:

接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,在 所述剩余资源不满足所述资源申请时,在所述已分配资源申请队列中依序遍历作业优先级 低于所述资源申请的已分配资源申请;所述已分配资源申请是已完全或部分分配到资源的 资源申请;

所有已遍历到的所述已分配资源申请组成已遍历资源申请,将所有所述已遍历资 源申请所占用的系统资源之和并加上所述剩余资源,作为可用资源;

每遍历一个所述已分配资源申请,判断所述可用资源是否满足所述资源申请,在 所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源申请。

可选的,在所述根据所述资源申请的资源需求信息判断系统剩余资源是否满足所 述资源申请的过程中,若所述剩余资源满足所述资源申请,则根据所述资源申请的资源需 求信息为所述作业分配相应的资源;并将所述资源申请作为所述已分配资源申请记入所述 已分配资源申请队列。

可选的,所述每遍历一个所述已分配资源申请,判断所述可用资源是否满足所述 资源申请还包括:若所述可用资源不能满足所述资源申请,则继续遍历,直到所述可用资源 满足所述资源申请为止。

可选的,所述每遍历一个所述已分配资源申请,判断所述可用资源是否满足所述 资源申请还包括:若遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍 不能满足所述资源申请,则为所述资源申请分配部分资源。

可选的,所述在所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分 配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,将所述可用资源分配给所述资 源申请;并将分配后的第二剩余资源按照作业优先级由高到低的顺序分配给已遍历资源申 请;

所述第二剩余资源是所述可用资源在分配给所述资源申请后剩下的系统资源。

可选的,所述在所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分 配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,进一步判断所述第二剩余资源 是否满足任一已遍历资源申请,若满足,将所述可用资源分配给所述资源申请,并将所述第 二剩余资源分配所述任一已遍历资源申请。

可选的,所述在所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分 配给所述资源申请具体包括:

若所述可用资源满足所述资源申请,则停止遍历,进一步判断所述第二剩余资源 是否满足任一已遍历资源申请,若满足,则将除去所述任一已遍历资源申请所占用资源之 外的剩余可用资源分配给所述资源申请。

可选的,所述为所述资源申请分配部分资源具体包括:

将所述剩余资源分配给所述资源申请,所述资源申请未被满足的部分进入待分配 资源申请队列,等待下次的资源分配;

将所述可用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低 的顺序分配给所述已遍历资源申请。

可选的,所述为所述资源申请分配部分资源具体包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,保持所述已分配资源申请所占用的系统资源不变,将所述剩余资源分配 给所述资源申请,所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资 源分配。

可选的,所述资源申请包括资源申请名、资源申请体积、资源申请数量和作业优先 级;

所述资源申请名是所述资源申请的标示名;

所述资源申请体积是运行于该资源申请对应的所述作业所需要的最小资源占用;

所述资源申请数量是所述资源申请的所申请的所述资源申请体积的数量;

所述作业优先级是由用户定义的,确定数量的优先级级别,所述优先级级别越高, 表示对应的所述作业越重要,所述资源申请越应该优先被满足;如果所述优先级级别相同, 在时间序列上,越早提交的所述资源申请越优先被满足。

可选的,作业优先级按照设定的维度被聚合成不同的优先级区间;所述在已分配 资源队列中依序遍历作业优先级低于所述作业资源申请的已分配资源申请具体包括:

在已分配资源队列中按照作业优先级由低到高的顺序遍历所有所在优先级区间 低于所述资源申请所在优先级区间的所述已分配资源申请。

可选的,所述在已分配资源队列中依序遍历作业优先级低于所述作业资源申请的 已分配资源申请具体包括:

在已分配资源队列中按照作业优先级由低到高的顺序遍历所有所述作业优先级 低于所述资源申请的所述已分配资源申请。

可选的,所述已分配资源队列是按所述作业优先级顺序排列,已完全或部分分配 到资源的已分配资源申请的集合。

可选的,所述已分配资源申请包括所述资源申请名、所述资源申请体积、已分配资 源数量、已分配资源和所述作业优先级;

所述已分配资源数量是已经分配给该资源申请的所述资源申请体积的数量;

所述已分配资源是所述资源申请体积与所述已分配资源数量的乘积。

可选的,所述待分配资源申请队列是按所述作业优先级排列的所有完全或部分未 分配到资源的待分配资源申请的集合;所述申请包括所述资源申请名、所述资源申请体积、 所述资源申请数量、待分配资源数量、所述作业优先级。

一种基于优先级的资源分配装置,包括:资源申请接收单元、资源抢占单元;

所述资源申请接收单元,用于接受作业提交的所述资源申请,所述资源申请包括 资源需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,若 所述剩余资源不满足所述资源申请,进入所述资源抢占单元。

可选的,所述基于优先级的资源分配装置还包括资源分配单元;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,当 所述剩余资源满足所述资源申请时,进入所述资源分配单元;

所述资源分配单元,用于根据所述作业的资源需求信息为所述资源申请分配相应 的资源;并将所述资源申请作为已分配资源申请记入已分配资源申请队列。

可选的,所述资源抢占单元包括遍历子单元、遍历后处理子单元;

所述遍历子单元,用于在已分配资源队列中按照所述作业优先级从低到高的顺序 遍历作业优先级低于所述资源申请的已分配资源申请;每遍历一个所述已分配资源申请, 判断所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍历,将所述可用 资源分配给所述作业;若所述可用资源不能满足,则继续遍历,直到所述可用资源满足所述 资源申请为止;

遍历后处理子单元,用于处理在所述遍历后,所述可用资源仍不能满足所述资源 申请的情况。

可选的,在所述遍历子单元中,所述若所述可用资源满足,则停止遍历,将所述可 用资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请;并将分 配后的所述第二剩余资源按照作业优先级由高到低的顺序分配给已遍历资源申请。

可选的,在所述遍历子单元中,所述若所述可用资源满足,则停止遍历,将所述可 用资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一 已遍历资源申请,若满足,将所述可用资源分配给所述资源申请,并将所述第二剩余资源分 配所述任一已遍历资源申请。

可选的,在所述遍历子单元中,所述若所述可用资源满足,则停止遍历,将所述可 用资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一 已遍历资源申请,若满足,则将除去所述任一已遍历资源申请所占用资源之外的剩余可用 资源分配给所述资源申请。

可选的,所述遍历后处理子单元包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,将所述可用资源分配给所述资源申请,所述资源申请未被满足的部分进 入待分配资源申请队列,等待下次的资源分配;

将所述可用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低 的顺序分配给被抢占资源的所述已分配遍历资源申请。

可选的,所述遍历后处理子单元包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,保持所述已分配资源申请所占用的系统资源不变,将所述剩余资源分配 给所述资源申请,所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资 源分配。

可选的,所述资源申请接收单元提交的所述资源申请包括:资源申请名、资源申请 体积、资源申请数量、作业优先级。

一种电子设备,其特征在于,所述电子设备包括:

显示器;

处理器;

存储器,用于存储基于优先级的资源分配程序,所述程序在被所述处理器读取执 行时,执行如下操作:

接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息;

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,若 满足,则根据所述资源申请的资源需求信息为所述作业分配相应的资源;并将所述资源申 请作为已分配资源申请记入已分配资源申请队列;

若不满足,在已分配资源申请队列中按照所述作业优先级由低到高的顺序遍历作 业优先级低于所述资源申请的已分配资源申请;

所有已遍历到的所述已分配资源申请组成已遍历资源申请,将所有所述已遍历资 源申请所占用的系统资源之和并加上所述剩余资源,作为可用资源;每遍历一个所述已分 配资源申请,判断所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍 历,将所述可用资源分配给所述资源申请;若所述可用资源不能满足,则继续遍历,直到所 述可用资源满足所述资源申请为止;或者继续遍历,直到遍历完所有低作业优先级的所述 已分配资源申请,为所述资源申请分配资源。

与现有技术相比,本申请具有以下优点:

本申请提供一种基于优先级的资源分配方法、装置和设备。所述资源分配方法接 受作业提交的资源申请后,根据所述资源申请的资源需求信息判断系统剩余资源是否满足 所述资源申请,在所述系统剩余资源不满足所述资源申请时,在所述已分配资源申请队列 中依序遍历作业优先级低于所述资源申请的已分配资源申请;将遍历到的所述已分配资源 申请占用的系统资源之和加上所述剩余资源作为可用资源,将所述可用资源分配给高作业 优先级的所述资源申请。本申请提供的技术方案解决了现有技术中,高作业优先级的资源 申请在系统资源耗尽的情况下只能排队等待的缺陷,使高作业优先级的所述资源申请最大 程度地获得运行所需资源。

另外,在本申请优选例中,将所述可用资源分配给所述资源申请后剩下的第二剩 余资源按照作业优先级由高到低的顺序分配给资源被占用的所述已分配资源申请,使系统 资源得到有效利用。

图1示出了作为对比技术的一种资源申请队列示意图;

图2示出了本申请的实施例提供的基于优先级的资源分配方法的流程图;

图3示出了本申请的实施例提供的已分配资源申请队列示意图;

图4示出了本申请的实施例提供的基于优先级的资源分配装置的示意图;

图5示出了本申请的实施例提供的所述资源抢占单元的示意图;

图6示出了本申请的实施例提供的电子设备的示意图。

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以 很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况 下做类似推广,因此本发明不受下面公开的具体实施的限制。

本申请的实施例提供了一种基于优先级的资源分配方法以及一种基于优先级的 资源分配装置;本申请的实施例同时提供了一种电子设备。在下面的实施例中逐一进行详 细说明。

在详细描述本实施例的具体步骤之前,先对本技术方案涉及的资源分配的运行环 境试作简要说明。

在分布式系统中,通常存在三个角:资源调度器、作业管理器及下属作业节点、 机器节点。当用户需要提交一个作业时,所述作业管理器会向所述资源调度器申请一定数 量的机器资源,如CPU、内存等,供作业节点使用;所述资源调度器在收到作业资源申请后, 会根据分布式系统中剩余的可用资源计算出可以分配给所述作业管理器的可用资源列表, 例如:在A机器上可用1核CPU、1GB内存,在B机器上可用2核CPU、2GB内存;然后,所述资源调 度器会将资源列表发送给所述作业管理器和相应机器节点。所述作业管理器在收到所述资 源列表后,会将所述作业节点分配到相应的机器节点执行作业程序。当所述作业节点执行 完毕时,所述作业管理器会告知所述资源管理器归还所述作业节点的资源,所述资源管理 器收到归还申请后通知所述机器节点释放掉所述作业节点的资源,此释放资源可再次分配 给其他作业。

所述作业管理器的资源申请的作业优先级是不一样的,在系统资源足够的情况 下,所述资源调度器会满足每个所述资源申请资源需求,并将所述已分配到资源的所述资 源申请作为已分配资源申请按照作业优先级由高到低的顺序记入已分配资源申请队列;在 系统资源整体耗尽的情况下,所述资源调度器接收到了一个作业优先级高的资源申请,如 何为所述作业优先级高的资源申请分配资源即是本申请提供的技术方案需要解决的。

本申请提供的一种基于优先级的资源分配方法,所述资源分配方法的实施例如 下:

图2示出了本申请的实施例提供的基于优先级的资源分配方法的流程图。下面结 合图2予以说明。

步骤S101,接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优 先级信息。

如前文所述,当用户需要提交一个作业时,会通过所述作业管理器向所述资源调 度器提交所述资源申请;所述资源申请包括资源申请名、资源申请体积、资源申请数量和作 业优先级。

所述资源申请名是所述资源申请的标示名;所述资源申请名与所述作业的标示名 相同。

所述资源申请体积是运行于该资源申请对应的所述作业所需要的最小资源占用; 所述最小资源占用是所述作业在分布式系统中一个作业节点上正常运行时对处理器、内存 等的最小需求。

所述资源申请数量是所述资源申请的所申请的所述资源申请体积的数量;所述资 源申请数量可以理解为在分布式系统中,正常运行所述作业所需要的工作节点的数量。

举例来说,运行一项用户作业需要100个CPU,100G内存,所述用户作业有100个作 业节点要执行,每个作业节点的执行需要1个CPU,1G内存,那么1个CPU,1G内存就是所述资 源申请体积,100就是所述资源需求数量。

所述资源申请体积和所述资源申请数量形成所述资源申请的资源需求信息,所述 资源申请体积与所述资源申请数量的乘积形成所述资源申请的资源需求总量。

所述作业优先级是由用户定义的,确定数量的优先级级别,所述优先级级别越高, 表示对应的所述作业越重要,所述资源申请越应该优先被满足;如果所述优先级级别相同, 那么再比较时间序列,越早提交的所述资源申请优先级越高。

步骤S103,根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资 源申请,在所述剩余资源不满足所述资源申请时,执行步骤S105。

所述资源申请的资源需求信息包括所述资源申请体积和所述资源申请数量;所述 资源调度器比较所述资源需求与所述剩余资源的大小,若所述剩余资源小于所述资源需 求,执行步骤S105。

当然,在所述资源调度器比较所述资源需求与所述剩余资源的大小时,还存在另 外一种情况,即所述剩余资源大于等于所述资源需求,在这种情况下,根据所述资源申请的 资源需求信息为所述作业分配相应的资源,并将所述资源申请作为已分配资源申请记入已 分配资源申请队列。

所述已分配资源队列是按所述作业优先级顺序排列,已完全或部分分配到资源的 已分配资源申请的集合;所述已分配资源申请包括所述资源申请名、所述资源申请体积、已 分配资源数量、已分配资源和所述作业优先级;

其中,所述资源申请名、所述资源申请体积和所述作业优先级与所述资源申请的 对应项保持一致;所述已分配资源数量是已经分配给该资源申请的所述资源申请体积的数 量;所述已分配资源是所述资源申请体积与所述已分配资源数量的乘积。

图3示出了本申请的实施例提供的已分配资源申请队列图。

如图3所示,所述已分配资源队列包括3个已分配资源申请,所述资源申请名分别 为:资源申请A、资源申请B、资源申请C,其中资源申请A的其他项目包括:

资源申请体积:CPU:1,内存(MEM):1

已分配资源数量:20

已分配资源:CPU:20,内存(MEM):20

作业优先级:3

步骤S105,在所述已分配资源申请队列中依序遍历所有作业优先级低于所述资源 申请的当前已分配资源申请;所有已遍历到的所述已分配资源申请组成已遍历资源申请, 将所有所述已遍历资源申请所占用的系统资源之和并加上所述剩余资源,作为可用资源。

所述依序遍历所有作业优先级低于所述资源申请的当前已分配资源申请的次序 是按照所述作业优先级由低到高的顺序进行。

本申请的优选实施例将作业优先级按照设定的维度被聚合成不同的优先级区间; 每个所述优先级区间包括确定的优先级级别,而且,所述已分配资源申请占用的系统资源 不能被处在相同所述优先级区间其他所述资源申请所抢占。

在本申请优选实施例中,所述在所述已分配资源申请队列中依序遍历所有作业优 先级低于所述资源申请的当前已分配资源申请,在考虑所述优先级区间的情况下变成:在 已分配资源队列中按照作业优先级由低到高的顺序遍历所有所在优先级区间低于所述资 源申请所在优先级区间的所述已分配资源申请。

在本申请优选实施例中,所述作业优先级按从低到高分成10个级别,即作业优先 级1、作业优先级2、…、作业优先级10;所述10个级别按优先级从低到高的顺序聚合成3个优 先级分区:优先级分区Ⅰ,包括所述作业优先级1、2、3和4;优先级分区Ⅱ,包括所述作业优先 级5、6和7;优先级分区Ⅲ,包括所述作业优先级8、9、10。如果提交的资源申请的所述作业优 先级为9,那么上述考虑所述优先级区间的情况下的遍历只能遍历到所述优先级分区Ⅰ和优 先级分区Ⅱ,而不会遍历到作业优先级为8的所述已分配资源申请。

本申请的优选实施例在所述遍历过程中,并不会收回已遍历到的所述已分配资源 申请所占用的系统资源,只是在最终资源分配方案确定后再收回所述系统资源。在一些情 形下,所述资源调度器会在遍历过程中,同时收回已遍历到的所述已分配资源申请所占用 的系统资源。

步骤S107,每遍历一个所述已分配资源申请,判断所述可用资源是否满足所述资 源申请;在所述可用资源满足所述资源申请时,停止遍历,将所述可用资源分配给所述资源 申请。

每遍历一个所述已分配资源申请,系统会判断所述可用资源是否满足所述资源申 请:

若所述可用资源满足所述资源申请,则停止遍历,将所述可用资源分配给所述资 源申请。

若所述可用资源不能满足所述资源申请,则继续遍历,直到所述可用资源满足所 述资源申请为止。

所述停止遍历,将所述可用资源分配给所述资源申请的操作会出现两种情况,若 所述可用资源刚好满足所述资源申请的资源需求,分配结束;若所述可用资源分配给所述 资源申请后还有第二剩余资源,即所述可用资源在分配给所述资源申请后剩下的系统资 源,则继续将所述第二剩余资源分配给所述已遍历资源申请。

本申请提供的优选实施例中,将所述第二剩余资源按照作业优先级由高到低的顺 序分配给所述已遍历资源申请。

作为可选方案,对所述可用资源的处理还有下述两种方案:

方案1、进一步判断所述第二剩余资源是否满足任一已遍历资源申请,若满足,先 收回所述已遍历资源申请所占用的系统资源,再将所述可用资源分配给所述资源申请,并 将所述第二剩余资源分配给所述任一已遍历资源申请;

方案2、进一步判断所述第二剩余资源是否满足任一已遍历资源申请,若满足,则 所述任一已遍历资源申请所占用的系统资源保留,将除去所述任一已遍历资源申请所占用 资源之外的剩余可用资源分配给所述资源申请。

上述方案1与所述优选实施例的区别是:方案1是先回收每个所遍历到的所述已分 配资源申请所占用的系统资源,再分配所述可用资源;所述优选实施例不会预先回收每个 所遍历到的所述已分配资源申请所占用的系统资源,而是在分配方案确定后再回收所有所 遍历到的所述已分配资源申请所占用的系统资源。

上述方案2是为了保证已完整获取所需资源的所述已遍历资源申请的优先执行。

若遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,则为所述资源申请分配部分资源。

所述为所述资源申请分配部分资源包括:将所述剩余资源分配给所述资源申请, 所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资源分配;将所述可 用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低的顺序分配给所述 已遍历资源申请。

所述待分配资源申请队列是按所述作业优先级排列的所有完全或部分未分配到 资源的待分配资源申请的集合;所述待分配资源申请包括所述资源申请名、所述资源申请 体积、所述资源申请数量、待分配资源数量、所述作业优先级。

所述资源申请名、所述资源申请体积、所述资源申请数量和所述作业优先级与所 述资源申请相同。

所述待分配资源数量是所述资源申请未被满足的部分所需要的所述资源申请体 积的数量。

作为可选方案,在遍历完所有低作业优先级的所述已分配资源申请后,所述可用 资源仍不能满足所述资源申请时,也可以保持所述已分配资源申请所占用的系统资源不 变,将所述剩余资源分配给所述资源申请,所述资源申请未被满足的部分进入待分配资源 申请队列,等待下次的资源分配。

下面,结合图3,以一个具体的实例来说明整个流程。

假设系统总资源CPU:100、内存:100,由于所述资源申请A占用CPU:20、内存:20,作 业优先级为3;所述资源申请B占用CPU:60、内存:40,作业优先级为2;所述资源申请C占用 CPU:20、内存:10,作业优先级为1,那么现在系统的剩余资源是CPU:0、内存:30。

这时候来一个资源申请E,它的资源申请体积是CPU:1、内存:1,申请数量是30,优 先级是4,由于所述剩余资源不能满足所述资源申请E,所以进入下一步,按照所述作业优先 级低到高的顺序遍历所述作业优先级低于所述资源申请E的已分配资源申请,首先遍历到 所述资源请求C,那么遍历后,新的可用资源就是CPU:20、内存:40,所述可用资源还不足以 满足所述资源申请E,所以继续遍历到所述资源申请B,那么新的可用资源就是CPU:80、内 存:80,所述可用资源能够满足所述资源申请E,于是将所述可用资源分配给所述资源申请 E;分配后,剩下的可用资源,即第二剩余资源为CPU:50、内存:50,将所述第二剩余资源按照 作业优先级从高到底的顺序重新分配给所述已遍历资源申请,也就是所述资源申请B和所 述资源申请A:先检查资源申请B,用所述第二剩余资源除以所述资源申请B的资源申请体积 后,得到16,即可以分配给所述资源申请B的系统资源是:CPU:48、内存:32,所述第二剩余资 源分配后剩下的系统资源,即第三剩余资源变成:CPU:2、内存:18;所述资源申请B未被满足 的部分,即CPU:12、内存:8进入所述待分配资源申请队列;然后再检查资源申请C,所述第三 剩余资源可以满足所述资源申请C的一个资源申请体积,将所述第三剩余资源分配给所述 资源申请C的一个资源申请体积后剩下的系统资源变成:CPU:0、内存:17,无法再分配;所述 资源申请B未被满足的部分,即CPU:18、内存:9进入所述待分配资源申请队列。

最终的结果是:所述资源申请E获得系统资源CPU:30、内存:30;所述资源申请B获 得系统资源CPU:48、内存:32;所述资源申请C获得:CPU:2、内存:1;系统新的剩余资源为 CPU:0、内存:17。

最后资源调度器会真正收回所述资源申请B、所述资源申请C所占用的资源,按照 上诉新方案分配系统资源。

本申请的实施例提供了一种基于优先级的资源分配方法,与上述基于优先级的资 源分配方法相对应的,本申请还提供了一种基于优先级的资源分配装置。

图4示出了本申请的实施例提供的基于优先级的资源分配装置的示意图。

所述基于优先级的资源分配装置包括:资源申请接收单元201、资源抢占单元205。

所述资源申请接收单元201,用于接受作业提交的所述资源申请,所述资源申请包 括资源需求信息和作业优先级信息;根据所述资源申请的资源需求信息判断系统剩余资源 是否满足所述资源申请,若所述剩余资源不满足所述资源申请,进入所述资源抢占单元 205。

所述资源抢占单元205,用于在所述已分配资源申请队列中按照所述作业优先级 由低到高的顺序遍历作业优先级低于所述资源申请的已分配资源申请,根据遍历后的结果 重新分配系统资源。

如图5所示,所述基于优先级的资源分配装置还包括资源分配单元203。

在所述资源申请接收单元201,根据所述资源申请的资源需求信息判断系统剩余 资源是否满足所述资源申请时,若所述剩余资源满足所述资源申请,进入所述资源分配单 元203。

所述资源分配单元203,用于根据所述作业的资源需求信息为所述资源申请分配 相应的资源;并将所述资源申请作为已分配资源申请记入已分配资源申请队列。

图5示出了本申请的实施例提供的所述资源抢占单元的示意图。

如图5所示,所述资源抢占单元205包括:遍历子单元301、遍历后处理子单元303。

所述遍历子单元301,用于在已分配资源队列中按照所述作业优先级从低到高的 顺序遍历作业优先级低于所述资源申请的已分配资源申请;每遍历一个所述已分配资源申 请,判断所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍历,将所述 可用资源分配给所述作业;若所述可用资源不能满足,则继续遍历,直到所述可用资源满足 所述资源申请为止。

所述遍历后处理子单元303,用于处理在所述遍历后,所述可用资源仍不能满足所 述资源申请的情况。

可选的,在所述遍历子单元301中,若所述可用资源满足,则停止遍历,将所述可用 资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,将所述可用资源分配给所述资源申请;并将分 配后的所述第二剩余资源按照作业优先级由高到低的顺序分配给已遍历资源申请。

可选的,在所述遍历子单元301中,若所述可用资源满足,则停止遍历,将所述可用 资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一 已遍历资源申请,若满足,将所述可用资源分配给所述资源申请,并将所述第二剩余资源分 配所述任一已遍历资源申请。

可选的,在所述遍历子单元301中,若所述可用资源满足,则停止遍历,将所述可用 资源分配给所述资源申请具体包括:

若所述可用资源满足,则停止遍历,进一步判断所述第二剩余资源是否满足任一 已遍历资源申请,若满足,则将除去所述任一已遍历资源申请所占用资源之外的剩余可用 资源分配给所述资源申请。

可选的,所述遍历后处理子单元303包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,将所述可用资源分配给所述资源申请,所述资源申请未被满足的部分进 入待分配资源申请队列,等待下次的资源分配。

将所述可用资源分配给所述资源申请后的剩余部分,按所述作业优先级从高到低 的顺序分配给被抢占资源的所述已分配遍历资源申请。

可选的,所述遍历后处理子单元303包括:

在遍历完所有低作业优先级的所述已分配资源申请后,所述可用资源仍不能满足 所述资源申请时,保持所述已分配资源申请所占用的系统资源不变,将所述剩余资源分配 给所述资源申请,所述资源申请未被满足的部分进入待分配资源申请队列,等待下次的资 源分配。

在上述的实施例中,提供了一种基于优先级的资源分配方法以及一种基于优先级 的资源分配装置,此外,本申请还提供了一种电子设备;所述电子设备实施例如下:

图6示出了本申请的实施例提供的电子设备的示意图。

所述电子设备,包括:显示器401;处理器403;存储器405;

存储器405,用于存储基于优先级的资源分配程序,所述程序在被所述处理器读取 执行时,执行如下操作:

接受作业提交的资源申请,所述资源申请包括资源需求信息和作业优先级信息。

根据所述资源申请的资源需求信息判断系统剩余资源是否满足所述资源申请,若 满足,则根据所述资源申请的资源需求信息为所述作业分配相应的资源;并将所述资源申 请作为已分配资源申请记入已分配资源申请队列。

若不满足,在已分配资源申请队列中按照所述作业优先级由低到高的顺序遍历作 业优先级低于所述资源申请的已分配资源申请。

所有已遍历到的所述已分配资源申请组成已遍历资源申请,将所有所述已遍历资 源申请所占用的系统资源之和并加上所述剩余资源,作为可用资源;每遍历一个所述已分 配资源申请,判断所述可用资源是否满足所述资源申请;若所述可用资源满足,则停止遍 历,将所述可用资源分配给所述资源申请;若所述可用资源不能满足,则继续遍历,直到所 述可用资源满足所述资源申请为止;或者继续遍历,直到遍历完所有低作业优先级的所述 已分配资源申请,为所述资源申请分配资源。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网 络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或 非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的 示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方 法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数 据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读 存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或 其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照 本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(trans itory media),如调制 的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产 品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例 的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用 存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的 形式。

本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技 术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保 护范围应当以本发明权利要求所界定的范围为准。

本文发布于:2024-09-23 07:28:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/85616.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议