CN110532087B - 一种资源分配方法、资源管理器 - Google Patents
一种资源分配方法、资源管理器 Download PDFInfo
- Publication number
- CN110532087B CN110532087B CN201810506713.3A CN201810506713A CN110532087B CN 110532087 B CN110532087 B CN 110532087B CN 201810506713 A CN201810506713 A CN 201810506713A CN 110532087 B CN110532087 B CN 110532087B
- Authority
- CN
- China
- Prior art keywords
- user group
- resource
- resources
- user
- amount
- 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
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/5011—Allocation 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/5016—Allocation 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种资源分配方法、资源管理器,其中,该方法包括:获取资源调度请求;响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配;按照确定出的各用户组的资源配额,为各用户组分配资源。利用本申请实施例提供的技术方案,解决了现有的采用遍历排队队列,对队列中的排队请求依次进行分配的方式所存在的资源在不同用户组之间无法公平分配的技术问题,达到了简单高效实现资源在不同用户组之间公平分配的技术效果。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种资源分配方法、资源管理器。
背景技术
在分布式***中,一般存在三个角色:资源调度器、作业(包括有:作业管理器及下属作业节点)、机器节点。如图1所示,当用户需要提交一个作业时,作业管理器会向资源调度器申请一定数量的机器资源(例如:CPU、内存等)供作业节点使用。资源调度器在收到作业资源申请后,会根据分布式***中剩余的可用资源计算出可以分配给作业管理器的可用资源列表(例如:在机器A上可以使用1核CPU、1GB内存,在机器B上可以使用2核CPU、2GB内存);然后,资源调度器将资源列表发送给作业管理器和相应的机器节点。作业管理器在收到资源列表后,会将作业节点分配到相应的机器节点执行作业程序。
如图2所示,当作业节点执行完毕时,作业管理器告知资源管理器归还该作业节点的资源,资源管理器收到归还申请后,通知机器节点释放掉该作业节点的资源,这些被释放的资源可以被再次分配给其他作业。
在分布式***中经常会出现集群整体资源耗尽导致资源申请排队的情况,面对这种情况,一般的处理方式就是对这些资源申请进行排队,当有机器出现空余资源时,遍历这个排队队列,对队列中的排队请求依次进行分配。
然而,考虑到在分布式***中会有多个用户同时提交作业,每个用户自身存在提交多个独立作业可能,在分配资源的时候,希望不同用户拿到的资源总量是公平的,且是尽可能相等,因为资源如果倾向于一个用户,那么将导致其他用户提交的作业得不到资源。采用遍历排队队列,对队列中的排队请求依次进行分配的方式,将导致如果排在队列前面的作业都属于一个用户组,那么机器的剩余资源都会被排在最前面的用户组占用,无法达到资源在不同用户组间的公平分配。
针对如何保持资源在不同用户组间公平分配,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种资源分配方法、资源管理器,可以达到保持资源在不同用户组间公平分配的目的。
本申请提供一种资源分配方法、资源管理器是这样实现的:
一种资源分配方法,所述方法包括:
获取资源调度请求;
响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配;
按照确定出的各用户组的资源配额,为各用户组分配资源。
一种资源管理器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取资源调度请求;
响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配;
按照确定出的各用户组的资源配额,为各用户组分配资源。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述方法的步骤。
本申请提供的资源分配方法、资源管理器,通过按照将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配的方式,在每次调度之后,都会资源进行动态的尽可能地公平分布,从而解决了现有的采用遍历排队队列,对队列中的排队请求依次进行分配的方式所存在的资源在不同用户组之间无法公平分配的技术问题,达到了简单高效实现资源在不同用户组之间公平分配的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是资源分配实例示意图;
图2是资源回收实例示意图;
图3是基于排队队列依次分配示意图;
图4是根据本申请实施例的资源分配方式示意图;
图5是根据本申请实施例的将资源分配比作向水桶注水示意图;
图6是根据本申请实施例的向水桶注水的具体示意图;
图7是根据本申请实施例的确定边界示意图;
图8是根据本申请实施例的二叉树示意图;
图9是根据本申请实施例的二级队列示意图;
图10是根据本申请实施例的资源配置方法流程图;
图11是根据本申请实施例的服务器的架构示意图;
图12是根据本申请实施例的资源配置装置的模块示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到在分布式***中会有多个用户同时提交作业,每个用户自身又会提交多个独立的作业,可以将同一用户提交的不同作业归属为同一用户组(userGroup)。在进行资源分配的时候,希望不同用户组之间拿到的资源(CPU、内存等)总量是公平的,或者说是尽可能相等的。因为如果资源倾向于其中一个用户组,那么将会导致其他用户组提交的作业都拿不到资源。
举例而言,如图3所示,排在队列前面的作业都属于同一个用户组,那么如果机器的剩余资源全部分配给user1所拥有的作业,当轮到后面用户组作业在分配资源的时候,资源已经被分光了。具体的,资源分配过程可能为:剩余资源10全部分给了use1所拥有的作业,实际上希望是分配给user1所拥有的作业的资源是5,分配给user2所拥有的作业的资源也是5。当然,这种分配方式是在假设user1和user2之前拿到的资源总数都为0,如果usr2在分配之前已经拿到了2份资源,user1拿到了0份资源,那么在剩余资源为10的情况下,希望的分配结果是:user1所拥有的作业分配6份资源,user2所拥有的作业分配4份资源,这样在分配结束之后,user1和user2各分配到6份资源,从而达到了公平。
然而,在实际执行的过程中,还可能存在如下情况:user1所拥有的作业的资源请求之和是5,且已分配资源也是5,user2所拥有的作业的资源请求之和是10,但是只分配0。如果剩余资源为10,那么希望的分配结果为user2分配10份资源、而不是use2分配5分资源。虽然看上去user2分配到10份资源、user1分配到5份资源是不公平的。但是,user1的全部资源请求都已经得到满足。
也就是说,在分配的过程中,除了需要考虑每个用户组已经分配到的资源,还需要考虑用户组的资源请求之和。即,可以理解为,如果集群的资源总份数为15,那么,user1和user2应该各平均分7.5,但是因为user1分配到5就已经满足了,因此,多出来的2.5又可以拿出来即继续公平分配,因此再给user2分配2.5。
即,如果希望保持不同用户组间的资源分配,可以得到公平调度排队队列的目的,需要做到如下几个方面:
1)当排队队列中存在多个用户组的作业时,能够在用户组作业数量、资源申请请求大小、用户作业排列位置均不同的情况下,保证不同用户组整体分配到的资源尽可能的公平;
2)在考虑公平的同时,不仅需要考虑到用户组的已分配资源,还需要考虑到用户组的总的资源请求量。进一步的,还需要达到高效分配的目的。
为了解决已有的排队队列模型当一个用户组所拥有的作业数量越多、单用户作业资源申请请求越大、用户作业排的位置越靠前(提交时间越早),那么这个用户组可能分到的资源就越多,而导致的在分配资源的时候无法保证用户组间的资源公平的问题。在本例中,提出了一种保持不同用户组间可以公平分配资源的排队队列调度方法,从而保证即使在排队队列中存在多个用户组的作业、用户组作业数量、资源申请请求大小、在队列中所处位置均不同的情况下,也可以保证不同用户组整体分配到的资源结果是尽可能公平的。
如图4所示,在本例中提供了一种资源分配方法,包括:
S1:获取集群总资源;
举例而言,如图4所示,集群总资源为50份。待分配的用户组有用户组1(需求为3)、用户组2(需求为20)、用户组3(需求为30)、用户组4(需求为11)和用户组5(需求为2)。
S2:将集群总资源量平分至各用户组;
考虑到在本例中有5个用户组,那么平分完就是每个用户组10份资源。
S3:确定平分后各用户组获取的资源量是否超出所请求的资源量,将超出请求的资源量的资源作为可再分配资源,迭代平分至分配的资源量未达到所请求的资源量的用户组,直至不存在可再分配资源,以保证将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配。
因为,用户组1需求量是3,用户组5需求量为2,如果分配10的话,那么用户组1、用户组4和用户组5都是超出需求量的,相当于用户组1超出7,用户组5超出8,也就是一共超出15。可以进一步将这15平分到用户组2、用户组3、用户组4中,这样在平分之后,用户组2、用户组3和用户组4都有15,进一步判断后发现,用户组4需求是11,因此,用户组4多了4,可以将这4拿出来再分平分至用户组2和用户组3,平分之后,用户组2和用户组3都一共被分到了17个。
也就是最后的划分结果就是,用户组1:需求为3,分到资源为3,用户组2:需求为20,分到资源为17,用户组3:需求为30,分到资源为17,用户组4:需求为11,分到资源为11,用户组5:需求为2,分到资源为2。
在一个实施方式中,可以按照如下方式确定各用户组的资源配额:
1)按照公平的比例分配集群总资源、得到用户静态平衡配额资源。
2)将user(用户组)分为两类,A类:user资源需求小于user静态平衡配额资源;B类:user资源需求大于用户静态平衡配额资源。
如图5所示,将每个user视为一个盛水的桶,桶的底边反映的是不同user间分资源的比例,由于是公平调度,因此,每个user的底边宽可以认为是相同的(即,ratio相等)。面积为User所拥有的作业的资源需求之和,分配资源配额的过程就相当于是将水(集群总资源)灌入到各个桶中的过程,资源配额指代该为各用户组分配的资源量。
如图6所示,为将集群总资源按照公平的比例(Resource Allocation Ratio)均匀地撒到每个用户组中(往桶里面倒水),从而可以保证每个桶中的水面高度是一齐上升的。如果有的桶中的水面的高度到顶,且集群仍有剩余的可分配资源,那么这个桶中的水面高度不再上升,再继续向其它水面高度未到顶的桶中灌水,直到集群剩余可分配资源为0或者所有桶的水面均已到顶。
当集群剩余可分配资源为0后,需要确定出user资源需求得到满足和user资源需求没有完全的满足的桶边界,在边界左边的桶可用资源配额就是user资源需求,然而,在边界右边的桶可用资源配额是H*user的Ratio,其中,H如下图7所示。因此,如果可以计算得到边界和H,那么就可以确定出每个User的可用资源配额。如图7所示,横线下面的就是集群总资源,横线上面的就是还需要请求的资源的和。
因此,如果为了实时确定应该为每个用户组分配的资源量,可以通过确定出边界以及H的方式来最终确定为每个用户组分配的资源量。
举例而言,可以通过如下公式确定边界是否位于E和F之间:
即,确定出集群总资源按照上述分配方式是否超出将E的需求满足,但是不够将F的需求满足,如果确定超出将E的需求满足,但是不够将F的需求满足,那么就证明边界在E和F之前。
为了简单高效的确定出边界,可以通过二分法确定,即,可以采用树的方式确定,这样可以通过时间复杂度为O(logn)的算法找出边界。
如图8所示,为建立的二叉树示意图,可以假设D的右边为边界,代入上述公式可以得到:
因此,可以推断出,边界在D的右边,因此,可以转移至F。
假设F的右边是边界,那么代入上述公式,可以得到:
因此,可以推断出,边界在F的左边,因此,移至节点E。
假设E的右边是边界,那么代入上述公式,可以得到:
从而确定出边界在E的右边。
在确定边界之后,就可以通过如下公式反解出H:
在确定边界位置和H之后,就可以确定出每个user的可用资源配额:在边界左边的user,其资源配额是user请求的资源量,在边界右边的user,其可用资源配额是user的ratio*H。
那么,在确定出资源配额之后,每个user应该新分配的资源总量就是:资源配额–used资源=x,如果x大于零,那么就像该user分类x量的资源,如果x小于零,就将已经为该user分配的资源中减掉|x|量的资源。在为user分配完资源之后,就可以按照顺序对user所拥有的多个用户作业中的各个作业进行分配即可。
考虑到希望先为已获得资源较少的user分配资源,因此,确定出每个user的可用资源配额之后,可以按照已分配资源量从少到多的顺序进行资源分配。
然而,值得注意的是,在本例中所列举的按照已分配资源量从少到多的顺序进行资源分配仅是一种示意性描述,在实际实现的时候,也可以按照其它的顺序分配,例如按照已分配资源量从多到少的顺序分配,或者是按照需求量从少到多,或者按照需求量从多到少的顺序都可以,本申请对此不作限定。
在一个实施方式中,可以通过构造排队队列的方式进行资源分配。如图9所示,可以构造一个2级排队队列,第一级队列是以user为单位,每个user结构中记录了user所拥有的用户作业总共使用的资源used以及所拥有的用户作业的总共资源请求Req。第一级队列的排序规则可以是用户组所拥有的作业已获得的UsedCpu之和越少,用户组排在越靠前的位置,其中,因cpu资源和mem资源是成比例申请的,因此,可以以cpu作为参考进行排序。通过第一级队列,可以控制当有剩余资源出现时,优先给UsedCpu少的用户组所拥有的作业分配资源。第二级队列表征同一个用户组下面的所有作业,这些作业可以按照提交时间进行排序。即,有一个第一级队列,每个用户组拥有一个第二级队列。
图10是本申请所述一种资源分配方法一个实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的如图10所述,本申请一种实施例提供的一种资源分配方法可以包括:
S1001:获取资源调度请求;
S1002:响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配;
具体的,按照预设策略确定各用户组的资源配额,可以包括:
S1:对各用户组按照需求量从少到多的顺序排列;
S2:基于排序结果,确定划分边界;
S3:确定位于划分边界左边的用户组的资源配额为各用户组请求的资源量;
S4:确定位于划分边界右边的用户组的资源配额为集群总资源去除位于划分边界左边的用户组的所请求的资源量之和后,对位于划分边界右边的用户组的组数求平均后得到的资源量。
即,可以基于排序结果,按照集群总资源量将用户组顺序划分为第一分组和第二分组,其中,第一分组中的用户组的资源配额为各用户组请求的资源量,所述第二分组中的用户组的资源配额为集群总资源去除位于划分边界左边的用户组的所请求的资源量之和后,对位于划分边界右边的用户组的组数求平均后得到的资源量。
为了可以高效简单的确定边界,可以根据所述排序结果建立二叉树;从所述二叉树的根节点作为假定边界开始,按照由根节点到叶子节点的顺序,确定出边界。
在确定资源配额的时候,可以还可以通过迭代的方式,例如,可以通过如下步骤实现:
S1:将所述集群总资源在各用户组之间平均分配;
S2:在分配之后,重复如下步骤,直至可再分配资源量为0:
确定出第一类用户组和第二类用户组,其中,第一类用户组为分配的资源已达到请求量的用户组,第二类用户组为分配的资源量未达到请求量的用户组;
将第一类用户组超出部分的资源量进行累加,得到可再分配资源量;
将所述可再分配资源量在各第二类用户组之间平均分配。
S1003:按照确定出的各用户组的资源配额,为各用户组分配资源。
考虑到在资源分配过程中的合理性,可以根据确定出的各用户组的资源配额,按照已分配资源从少到多的顺序,为各用户组分配资源。
为了实现动态的公平的资源分配,按照确定出的各用户组的资源配额,为各用户组分配资源,可以包括:
1)对于确定出的资源配额超出已分配资源量的用户组,确定出超出的资源量,并从已为该用户组分配的资源中抽取出超出的资源量的资源;
2)对于确定出的资源配额少于已分配资源量的用户组,确定出缺少的资源量,并为该用户组分配缺少的资源量的资源。
在上述步骤S1003之后,可以为每个用户组所拥有的用户作业分配资源。
本申请所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在服务器端上为例,图11是本发明实施例的一种资源分配方法的服务器端的硬件结构框图。如图11所示,服务器端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器端10还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的资源分配方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的资源分配方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述的资源分配装置可以如图12所示,包括:获取单元1201,确定单元1202,和分配单元1203。其中:
获取单元1201,用于获取资源调度请求;
确定单元1202,用于响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配;
分配单元1203,用于按照确定出的各用户组的资源配额,为各用户组分配资源。
在一个实施方式中,确定单元1202具体可以对各用户组按照需求量从少到多的顺序排列;基于排序结果,按照集群总资源量将用户组顺序划分为第一分组和第二分组,其中,第一分组中的用户组的资源配额为各用户组请求的资源量,所述第二分组中的用户组的资源配额为集群总资源去除位于划分边界左边的用户组的所请求的资源量之和后,对位于划分边界右边的用户组的组数求平均后得到的资源量。
在一个实施方式中,确定单元1202具体可以根据所述排序结果建立二叉树;从所述二叉树的根节点作为假定边界开始,按照由根节点到叶子节点的顺序,确定出边界。
在一个实施方式中,确定单元1202具体可以将所述集群总资源在各用户组之间平均分配;在分配之后,重复如下步骤,直至可再分配资源量为0:确定出第一类用户组和第二类用户组,其中,第一类用户组为分配的资源已达到请求量的用户组,第二类用户组为分配的资源量未达到请求量的用户组;将第一类用户组超出部分的资源量进行累加,得到可再分配资源量;将所述可再分配资源量在各第二类用户组之间平均分配。
在一个实施方式中,分配单元1203具体可以根据确定出的各用户组的资源配额,按照已分配资源从少到多的顺序,为各用户组分配资源。
在一个实施方式中,分配单元1203具体可以对于确定出的资源配额超出已分配资源量的用户组,确定出超出的资源量,并从已为该用户组分配的资源中抽取出超出的资源量的资源;对于确定出的资源配额少于已分配资源量的用户组,确定出缺少的资源量,并为该用户组分配缺少的资源量的资源。
本申请提供的资源分配方法、资源管理器,通过按照将集群总资源在各用户组之间等量分配,等量分配后超出该用户组需求量的资源在不足需求量的用户组中等量分配的方式,在每次调度之后,都会资源进行动态的尽可能地公平分布,从而解决了现有的采用遍历排队队列,对队列中的排队请求依次进行分配的方式所存在的资源在不同用户组之间无法公平分配的技术问题,达到了简单高效实现资源在不同用户组之间公平分配的技术效果。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器***、基于微处理器的***、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (10)
1.一种资源分配方法,其特征在于,所述方法包括:
获取资源调度请求;
响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出用户组需求量的资源在不足需求量的用户组中等量分配;
按照确定出的各用户组的资源配额,为各用户组分配资源;
其中,按照预设策略确定各用户组的资源配额,包括:
对各用户组按照需求量从少到多的顺序排列;
基于排序结果,按照集群总资源量将用户组顺序划分为第一分组和第二分组,其中,第一分组中的用户组的资源配额为各用户组请求的资源量,所述第二分组中的用户组的资源配额为集群总资源去除位于第一分组的用户组的所请求的资源量之和后,根据第二分组的用户组的组数求平均后得到的资源量。
2.根据权利要求1所述的方法,其特征在于,响应于所述调度请求,按照预设策略确定各用户组的资源配额,包括:
将所述集群总资源在各用户组之间平均分配;
在分配之后,重复如下步骤,直至可再分配资源量为0:
确定出第一类用户组和第二类用户组,其中,第一类用户组为分配的资源已达到请求量的用户组,第二类用户组为分配的资源量未达到请求量的用户组;
将第一类用户组超出部分的资源量进行累加,得到可再分配资源量;
将所述可再分配资源量在各第二类用户组之间平均分配。
3.根据权利要求1所述的方法,其特征在于,按照确定出的各用户组的资源配额,为各用户组分配资源,包括:
根据确定出的各用户组的资源配额,按照已分配资源从少到多的顺序,为各用户组分配资源。
4.根据权利要求1所述的方法,其特征在于,按照确定出的各用户组的资源配额,为各用户组分配资源,包括:
对于确定出的资源配额超出已分配资源量的用户组,确定出超出的资源量,并从已为该用户组分配的资源中抽取出超出的资源量的资源;
对于确定出的资源配额少于已分配资源量的用户组,确定出缺少的资源量,并为该用户组分配缺少的资源量的资源。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在按照确定出的各用户组的资源配额,为各用户组分配资源之后,所述方法还包括:
为每个用户组所拥有的用户作业分配资源。
6.一种资源管理器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取资源调度请求;
响应于所述调度请求,按照预设策略确定各用户组的资源配额,所述预设策略为:将集群总资源在各用户组之间等量分配,等量分配后超出用户组需求量的资源在不足需求量的用户组中等量分配;
按照确定出的各用户组的资源配额,为各用户组分配资源;
其中,所述处理器按照预设策略确定各用户组的资源配额,包括:
对各用户组按照需求量从少到多的顺序排列;
基于排序结果,按照集群总资源量将用户组顺序划分为第一分组和第二分组,其中,第一分组中的用户组的资源配额为各用户组请求的资源量,所述第二分组中的用户组的资源配额为集群总资源去除位于第一分组的用户组请求的资源量之和后,根据第二分组的用户组的组数求平均后得到的资源量。
7.根据权利要求6所述的资源管理器,其特征在于,所述处理器响应于所述调度请求,按照预设策略确定各用户组的资源配额,包括:
将所述集群总资源在各用户组之间平均分配;
在分配之后,重复如下步骤,直至可再分配资源量为0:
确定出第一类用户组和第二类用户组,其中,第一类用户组为分配的资源已达到请求量的用户组,第二类用户组为分配的资源量未达到请求量的用户组;
将第一类用户组超出部分的资源量进行累加,得到可再分配资源量;
将所述可再分配资源量在各第二类用户组之间平均分配。
8.根据权利要求6所述的资源管理器,其特征在于,所述处理器按照确定出的各用户组的资源配额,为各用户组分配资源,包括:
根据确定出的各用户组的资源配额,按照已分配资源从少到多的顺序,为各用户组分配资源。
9.根据权利要求6所述的资源管理器,其特征在于,所述处理器按照确定出的各用户组的资源配额,为各用户组分配资源,包括:
对于确定出的资源配额超出已分配资源量的用户组,确定出超出的资源量,并从已为该用户组分配的资源中抽取出超出的资源量的资源;
对于确定出的资源配额少于已分配资源量的用户组,确定出缺少的资源量,并为该用户组分配缺少的资源量的资源。
10.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810506713.3A CN110532087B (zh) | 2018-05-24 | 2018-05-24 | 一种资源分配方法、资源管理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810506713.3A CN110532087B (zh) | 2018-05-24 | 2018-05-24 | 一种资源分配方法、资源管理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532087A CN110532087A (zh) | 2019-12-03 |
CN110532087B true CN110532087B (zh) | 2023-04-07 |
Family
ID=68657179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810506713.3A Active CN110532087B (zh) | 2018-05-24 | 2018-05-24 | 一种资源分配方法、资源管理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532087B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258751A (zh) * | 2020-01-08 | 2020-06-09 | 北京松果电子有限公司 | 一种控制资源访问的方法、装置及介质 |
CN113726571B (zh) * | 2021-08-30 | 2022-07-12 | 电子科技大学 | 一种基于网络切片的网络资源动态分配方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652288B2 (en) * | 2012-03-16 | 2017-05-16 | Microsoft Technology Licensing, Llc | Allocation of computational resources with policy selection |
CN103369041B (zh) * | 2013-07-09 | 2017-10-03 | 北京奇虎科技有限公司 | 基于云计算的资源分配方法及装置 |
CN106528287B (zh) * | 2015-09-09 | 2019-10-29 | 阿里巴巴集团控股有限公司 | 计算机***资源分配方法和装置 |
CN106685494B (zh) * | 2016-12-27 | 2020-06-23 | 京信通信***(中国)有限公司 | 一种mu-mimo***中的分组调度方法和装置 |
CN107608790A (zh) * | 2017-09-06 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 资源分配方法及装置和电子设备 |
-
2018
- 2018-05-24 CN CN201810506713.3A patent/CN110532087B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110532087A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pietri et al. | Mapping virtual machines onto physical machines in cloud computing: A survey | |
Saraswathi et al. | Dynamic resource allocation scheme in cloud computing | |
EP3254196B1 (en) | Method and system for multi-tenant resource distribution | |
US10474501B2 (en) | Serverless execution of code using cluster resources | |
Park et al. | Locality-aware dynamic VM reconfiguration on MapReduce clouds | |
Ghodsi et al. | Choosy: Max-min fair sharing for datacenter jobs with constraints | |
Ghodsi et al. | Dominant resource fairness: Fair allocation of multiple resource types | |
Isard et al. | Quincy: fair scheduling for distributed computing clusters | |
Wang et al. | Proportional-Share Scheduling for Distributed Storage Systems. | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理*** | |
CN109564528B (zh) | 分布式计算中计算资源分配的***和方法 | |
CN107295090B (zh) | 一种资源调度的方法和装置 | |
US20180102982A1 (en) | Equitable Sharing of System Resources in Workflow Execution | |
CN107291536B (zh) | 一种云计算环境下应用任务流调度方法 | |
US20170339069A1 (en) | Allocating Cloud Computing Resources In A Cloud Computing Environment | |
CN110532087B (zh) | 一种资源分配方法、资源管理器 | |
CN111798113A (zh) | 资源分配方法、装置、存储介质和电子设备 | |
Stavrinides et al. | The effect of workload computational demand variability on the performance of a SaaS cloud with a multi-tier SLA | |
CN112749002A (zh) | 一种集群资源动态管理的方法和装置 | |
Tang et al. | Long-term multi-resource fairness for pay-as-you use computing systems | |
CN111709723A (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN113010309B (zh) | 集群资源调度方法、装置、存储介质、设备和程序产品 | |
CN113110927A (zh) | 一种任务调度方法、装置、计算机设备和存储介质 | |
Dubey et al. | QoS driven task scheduling in cloud computing | |
Choi et al. | Gpsf: general-purpose scheduling framework for container based on cloud environment |
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 |