一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种资源分配方法及相关设备与流程

2022-02-24 14:46:32 来源:中国专利 TAG:


1.本技术涉及电子技术领域,尤其涉及一种资源分配方法及相关设备。


背景技术:

2.计算机系统中,中央处理器(central processing processor,cpu)、内存等资源管理是操作系统核心问题之一。在linux中,cpu资源采用抢占式调度——多个进程按照优先级抢占cpu资源。这种方式在一定程度实现不同进程的资源分配,但无法限制进程能够使用到多少资源。随着计算机能力越来越强大,运行的任务越来越多,需要控制不同的进程能够得到多少资源。为了解决这个问题,linux内核在引入了控制族群(control groups,cgroups)机制。基于cgroups的容器等技术得到了广泛运用,成为云计算等领域的基础技术之一。
3.使用cgroups可以隔离不同进程,限制进程所能使用的物理资源,使得进程能够使用到的资源上限成为确定值。但是这种划分方式不够精细,也缺乏弹性,导致资源利用率低。


技术实现要素:

4.本技术实施例提供一种资源分配方法及相关设备,可以提高资源的利用率,提高系统的可靠性
5.第一方面,本技术实施例提供了一种资源分配方法,包括:获取多个进程中每个进程的优先级;将多个进程中优先级小于第一预设阈值的进程划分为第一控制族群;将多个进程中优先级大于等于第一预设阈值且小于等于第二预设阈值的进程与第一控制族群进行嵌套,得到第二控制族群,第一控制族群和第二控制族群用于控制资源分配。根据进程的优先级,通过对控制族群进行嵌套划分,使得高优先级的进程可以共享使用低优先级的进程的资源,同时低优先级的进程使用的资源的最大值受限,确保高优先级的进程的资源最小配额,提高资源的利用率。
6.在一种可能的设计中,第二控制族群中的进程能够共享使用第一控制族群中的进程的资源、且第一控制族群中的进程不能占用第二控制族群中的进程的资源。
7.在另一种可能的设计中,按照优先级从高到低的顺序对多个进程进行排序。
8.在另一种可能的设计中,控制族群不仅包括第一控制族群和第二控制族群,也可以包括第三控制族群、第四控制族群以及更多控制族群。所有控制族群都可以形成一个嵌套结构。嵌套结构的每一层对应一个控制族群。其中,嵌套结构外层对应的控制族群可以共享使用嵌套结构内层对应的控制族群的资源,而嵌套结构内层对应的控制族群无法使用嵌套结构外层对应的控制族群的资源。从而实现通过嵌套结构控制资源分配。
9.在另一种可能的设计中,获取每个控制族群中的进程所需占用资源的平均值和最大值;根据平均值和最大值,确定每个控制族群对应的资源范围。基于控制族群的嵌套结构,结合各个进程对资源在不同业务场景下的资源诉求,从控制族群的外层向内层,依次确
认各个控制族群的资源范围。在资源有限场景下,使得所有进程均可以满足不同业务场景下均值、峰值等资源要求。
10.在另一种可能的设计中,按照每个控制族群中所包含的进程的优先级从大到小的顺序,依次确定每个控制族群对应的资源范围。
11.在另一种可能的设计中,优先级最高的进程可以使用的资源的最大限额可以为系统最大可用资源,优先级最高的进程可以使用的资源的最小限额可以为系统最大可用资源减去优先级次之的进程可以使用资源的最大限额。优先级次之的进程可以使用的资源的最小限额可以为优先级次之的进程可以使用资源的最大限额减去下一个优先级的进程可以使用资源的最大限额。以此类推。
12.第二方面,本技术实施例提供了一种计算装置,该计算装置被配置为实现上述第一方面中计算机设备所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的模块。
13.第三方面,本技术实施例提供了一种装置,该装置应用于计算机设备中,该装置可以为计算机设备或计算机设备中的芯片。装置包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第一方面的步骤。
14.第四方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
15.第五方面,本技术提供了一种包含指令的计算机程序,当其在计算机上运行时,使得计算机执行上述各方面的方法。
16.第六方面,本技术实施例提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的计算机设备执行上述任一方面的方法。
17.第七方面,本技术实施例提供了另一种芯片,包括:输入接口、输出接口和处理器。可选的,还包括存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述任一方面中的方法。
附图说明
18.为了更清楚地说明本技术实施例或背景技术中的技术方案,下面将对本技术实施例或背景技术中所需要使用的附图进行说明。
19.图1是本技术实施例提供的一种资源分配的示意图;
20.图2是本技术实施例提供的另一种资源分配的示意图;
21.图3是本技术实施例提供的另一种资源分配的示意图;
22.图3(a)是本技术实施例提供的另一种资源分配的示意图;
23.图3(b)是本技术实施例提供的另一种资源分配的示意图;
24.图4是本技术实施例提供的另一种资源分配的示意图;
25.图5是本技术实施例提供的一种资源分配方法的流程示意图;
26.图6是本技术实施例提供的一种控制族群的嵌套关系的示意图;
27.图7是本技术实施例提供的一种控制族群的嵌套关系的示意图;
28.图8是本技术实施例提供的一种控制族群的嵌套关系的示意图;
29.图9是本技术实施例提供的一种资源分配的示意图;
30.图10是本技术实施例提供的一种计算装置的结构示意图;
31.图11是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
32.下面结合本技术实施例中的附图对本技术实施例进行描述。
33.本技术实施例可以由计算机设备完成,该计算机设备可以为服务器、边缘计算设备或终端设备等等。
34.控制族群(control groups,cgroups)是一组按照某种标准划分的进程。cgroups中的资源控制都是以控制族群为单位实现。一个进程可以加入到某个控制族群,也从一个进程组迁移到另一个控制族群。一个进程组的进程可以使用cgroups以控制族群为单位分配的资源,同时受到cgroups以控制族群为单位设定的限制。
35.使用cgroups,可以隔离不同进程组,限制进程组所能使用的物理资源。例如,如图1所示,同一台设备上运行的多个进程(线程1、线程2、线程3、
……
),可以分别设置每个线程的能够使用的资源上限(进程1的限额1g、进程2的限额0.5、进程3的限额0.3g),这样即使出现某个恶意进程或进程故障占用大量资源,也不会导致其他进程无法正常运行。
36.在某些场景中,业务需要限制一组进程能够使用的资源上限。典型场景如边缘计算设备或终端设备中,操作系统os管理进程与用户业务进程共同部署在同一设备上。可以控制管理进程能够使用的资源上限,为用户业务进程预留足够的资源;或者可以限制用户进程能够使用的资源上限,确保为os管理进程预留足够的资源。例如,如图2所示,可以限制os管理进程能够使用的资源为2g,为用户业务进程预留的资源为6g。
37.使用cgroups划分,可以对单个进程的资源进行限制。如图3所示,如果os管理进程中存在3个进程,os管理进程能够使用的总内存为2g,各个进程的优先级及需要的资源如下:进程1,优先级高,均值1g,峰值1.2g;进程2,优先级低,均值0.5g,峰值0.6g;进程3,优先级低,均值0.5g,峰值0.6g。其中,进程1属于系统关键进程,如果重启会导致整个系统不可用,优先级最高;进程2的优先级次之,重启会导致重要业务受损;进程3的优先级最低,重启对业务的影响最小。对单个进程的资源进行限制,可以包括以下两种划分方式:
38.第一,按照内存均值进行划分。如图3(a)所示,c1组的限额为1g,c2组的限额为0.5g,c3组的限额为0.5g。这种划分方式,所有进程的资源的限额很公平,不能体现进程优先级的差异。在进程1业务峰值场景下,会导致进程1申请不到内存而内存溢出(out of memory,oom),进而导致进程重启。如果进程1重启会导致整个系统重启,系统不可用。
39.第二,按照优先级进行划分。如图3(b)所示,c1组的限额为1.2g,c2组的限额为0.4g,c3组的限额为0.4g。这种划分方式,优先考虑高优先级的进程,可以保证高优先级的进程不会因为获取不到资源而重启。但是,由于进程1出现峰值的业务场景频率很低,因此在大多数情况下多分配的0.2g内存处于浪费状态。虽然保障了进程1的资源,但是减少了低优先级的进程2与进程3分配的内存,使得进程2与进程3反复重启,业务长期不可用。
40.综合以上两种划分方式,使用cgroups对多个进程中的每个进程进行独立限制,在资源限制的场景下,各种划分方式都存在一定的缺陷。例如没有考虑进程之间的优先级关
系,导致系统可用性,可靠性存在很大风险;或者系统资源利用率较低。
41.除了上述对每个进程进行独立限制以外,还可以使用cgroups对一组相关进程进行资源限额。如图4所示,对os管理进程相关的3个进程(进程1、进程2和进程3)整体内存限制为2g。这种方式可以确保os管理进程相关的3个进程对外不抢占资源,但是这组进程内部没有对资源使用进行任何有效控制和隔离。如果进程3出现故障,申请大量内存不释放,会导致进程1与进程2无法申请到内存而导致oom重启。系统可靠性差。为了解决上述技术问题,本技术实施例提供了如下解决方案。
42.如图5所示,图5是本技术实施例提供的一种资源分配方法的流程示意图。本技术实施例中的步骤包括:
43.s501,获取多个进程中每个进程的优先级。
44.例如,多个进程可以包括进程1、进程2和进程3。进程1属于系统关键进程,如果重启会导致整个系统不可用,优先级最高;进程2重启会导致重要业务受损,优先级次之;进程3重启对业务影响最小,优先级最低。
45.可选的,可以按照所述优先级从高到低的顺序对所述多个进程进行排序。也可以按照所述优先级从低到高的顺序对所述多个进程进行排序。
46.s502,将所述多个进程中所述优先级小于第一预设阈值的进程划分为第一控制族群。
47.其中,第一控制族群可以包括一个或多个进程。
48.s503,将所述多个进程中所述优先级大于等于所述第一预设阈值且小于等于第二预设阈值的进程与所述第一控制族群进行嵌套,得到第二控制族群,所述第一控制族群和所述第二控制族群用于控制资源分配。
49.其中,第二控制族群与第一控制族群形成一个嵌套结构,第一控制族群位于嵌套结构的内层,第二控制族群位于嵌套结构的外层。所述第二控制族群中的进程能够共享使用所述第一控制族群中的进程的资源、且所述第一控制族群中的进程不能占用所述第二控制族群中的进程的资源。
50.其中,资源可以包括cpu资源、内存资源等等。
51.可选的,所述多个进程中所述优先级大于等于所述第一预设阈值且小于等于第二预设阈值的进程也可以包括一个或多个进程。可以将所述优先级大于等于所述第一预设阈值且小于等于第二预设阈值的进程与多个第一控制族群进行嵌套。
52.需要说明的是,控制族群不仅包括第一控制族群和第二控制族群,也可以包括第三控制族群、第四控制族群以及更多控制族群。所有控制族群都可以形成一个嵌套结构。嵌套结构的每一层对应一个控制族群。其中,嵌套结构外层对应的控制族群可以共享使用嵌套结构内层对应的控制族群的资源,而嵌套结构内层对应的控制族群无法使用嵌套结构外层对应的控制族群的资源。从而实现通过嵌套结构控制资源分配。
53.例如,如图6所示,图6是本技术实施例提供的一种控制族群的嵌套关系的示意图。计算机设备包括进程1、进程2和进程3。进程1的优先级最高、进程2的优先级次之,进程3的优先级最低。可以首先按照优先级从高到低的顺序对进程1、进程2和进程3进行排序,也即进程1-进程2-进程3。然后将进程3划分为一个控制族群c3。接着将控制族群c3与进程2进行嵌套得到一个控制族群c2,最后可以将进程1与控制族群c2进行嵌套得到另一个控制族群
c1。这样,在资源短缺情况下,进程1可以共享使用进程2和进程3的资源,进程2可以共享使用进程3的资源,但是进程2和进程3不能使用进程1的资源,进程3不能使用进程2的资源。控制族群c3的资源限额只对进程3有效,控制族群c2的资源限额限制进程2与进程3,控制族群c1的资源限额可以限制所有进程。
54.又如,如图7所示,图7是本技术实施例提供的一种控制族群的嵌套关系的示意图。计算机设备包括进程1、进程2、进程3和进程4。进程1的优先级最高、进程2的优先级次之,进程3和进程4的优先级最低。可以将进程3划分为控制族群c3,并将进程4划分为控制族群c4,控制族群c3和控制族群c4两者相互独立且为并列关系,在资源短缺情况下不会占用对方资源。当然,也可以将进程3和进程4划分为一个控制族群(图中没有体现)。然后将进程2与控制族群c3和控制族群c4进行嵌套,得到控制族群c2。最后将进程1与控制族群c2进行嵌套,得到控制族群c1。这样,在资源短缺情况下,进程1可以共享使用进程2、进程3和进程4的资源,进程2可以共享使用进程3和进程4的资源,进程3和进程4相互独立。但是,进程2、进程3和进程4不能使用进程1的资源,进程3和进程4不能使用进程2的资源。
55.又如,如图8所示,图8是本技术实施例提供的一种控制族群的嵌套关系的示意图。计算机设备包括进程1、进程2、进程3、进程4和进程5。进程1的优先级最高、进程2和进程5的优先级次之,进程3和进程4的优先级最低。首先,可以将进程3划分为控制族群c3,并将进程4划分为控制族群c4,然后将进程2与控制族群c3进行嵌套,得到控制族群c2,并将进程5与控制族群c4进行嵌套,得到控制族群c5,控制族群c2和控制族群c5两者相互独立且为并列关系。最后将进程1与控制族群c2和控制族群c5进行嵌套,得到控制族群c1。这样,在资源短缺情况下,进程1可以共享使用进程2、进程3、进程4和进程5的资源,进程2可以共享使用进程3的资源,进程5可以共享使用进程4的资源。但是,由于控制族群c2与控制族群c5相互独立,进程2不能使用进程5和进程4的资源,进程5不能使用进程2和进程3的资源。并且,进程3和进程4也无法使用其他任何进程的资源。
56.以上只是列举中其中几种控制族群的嵌套关系,还可以包括其他多种嵌套关系。例如,四层嵌套结构、五层嵌套结构等等,此处不再一一举例。
57.可选的,可以获取所述每个控制族群中的进程所需占用资源的平均值(也称均值)和最大值(也称峰值);根据所述平均值和最大值,确定所述每个控制族群对应的资源范围(包括最小限额和最大限额)。进一步的,可以按照所述每个控制族群中所包含的进程的优先级从大到小的顺序,依次确定所述每个控制族群对应的所述资源范围。从而优先满足高优先级的进程的资源诉求。
58.其中,优先级最高的进程可以使用的资源的最大限额可以为系统最大可用资源,优先级最高的进程可以使用的资源的最小限额可以为系统最大可用资源减去优先级次之的进程可以使用资源的最大限额。优先级次之的进程可以使用的资源的最小限额可以为优先级次之的进程可以使用资源的最大限额减去下一个优先级的进程可以使用资源的最大限额。以此类推。
59.例如,对于如图6所示的嵌套结构,系统最大可用资源是2g。由于进程1可以共享使用进程2和进程3的资源,因此进程1可以使用的资源的最大限额为2g,可以使用的资源最小限额为2g-l2,其中,l2为进程2可以使用的资源的最大限额。同理,进程2可以使用资源的最小限额为l2-l3,l3为最内层的控制族群c3对应的进程3可以使用的资源的确定值。
60.由于进程1所需占用资源的平均值为1g,因此进程1可以使用的资源最小限额2g-l2≥1g,进而可以确定进程2使用的资源的最大限额l2满足:l2≤1g。例如可以l2配置为1g。进一步,进程2可以使用的资源范围为[1g-l3,l2],l3为进程3可以使用的资源的定额值。结合进程2与进程3的资源诉求,可以将l3配置为0.6g。因此,如图9所示,进程1可以使用的资源范围[1g,2g],进程2可以使用的资源范围[0.4g,1g],进程3可以使用的资源的最大限额为0.6g。
[0061]
在本技术实施例中,根据进程的优先级,通过对控制族群进行嵌套划分,使得高优先级的进程可以共享使用低优先级的进程的资源,同时低优先级的进程使用的资源的最大值受限,确保高优先级的进程的资源最小配额,提高资源的利用率。并且,基于控制族群的嵌套结构,结合各个进程对资源在不同业务场景下的资源诉求,从控制族群的外层向内层,依次确认各个控制族群的资源范围。在资源有限场景下,使得所有进程均可以满足不同业务场景下均值、峰值等资源要求。
[0062]
如图10所示,图10是本技术实施例提供的一种计算装置的结构示意图。该计算装置可以为计算机设备、或计算机设备中的芯片或处理系统,该装置可以用于实现前述任意实施例中涉及计算机设备的任意方法和功能,该装置可以包括获取模块1001和处理模块1002。其中,获取模块1001和处理模块1002可以对应计算机设备中的处理器。各个模块的详细描述如下。
[0063]
获取模块1001,用于获取多个进程中每个进程的优先级;
[0064]
处理模块1002,用于将所述多个进程中所述优先级小于第一预设阈值的进程划分为第一控制族群;将所述多个进程中所述优先级大于等于所述第一预设阈值且小于等于第二预设阈值的进程与所述第一控制族群进行嵌套,得到第二控制族群,所述第一控制族群和所述第二控制族群用于控制资源分配。
[0065]
可选的,所述第二控制族群中的进程能够共享使用所述第一控制族群中的进程的资源、且所述第一控制族群中的进程不能占用所述第二控制族群中的进程的资源。
[0066]
可选的,处理模块1002,还用于按照所述优先级从高到低的顺序对所述多个进程进行排序。
[0067]
可选的,获取模块1001,还用于获取所述每个控制族群中的进程所需占用资源的平均值和最大值;处理模块1002,还用于根据所述平均值和最大值,确定所述每个控制族群对应的资源范围。
[0068]
可选的,处理模块1002,还用于按照所述每个控制族群中所包含的进程的优先级从大到小的顺序,依次确定所述每个控制族群对应的所述资源范围。
[0069]
需要说明的是,各个模块的实现还可以对应参图5所示的方法实施例的相应描述,执行上述实施例中计算机设备所执行的方法和功能。
[0070]
如图11所示,图11是本技术实施例提出的一种计算机设备的结构示意图。该计算机设备可以包括:至少一个处理器1101,至少一个通信接口1102,至少一个存储器1103和至少一个通信总线1104。
[0071]
其中,处理器1101可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和
电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线1104可以是外设部件互连标准pci总线或扩展工业标准结构eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线1104用于实现这些组件之间的连接通信。其中,本技术实施例中设备的通信接口1102用于与其他节点设备进行信令或数据的通信。存储器1103可以包括易失性存储器,例如非挥发性动态随机存取内存(nonvolatile random access memory,nvram)、相变化随机存取内存(phase change ram,pram)、磁阻式随机存取内存(magetoresistive ram,mram)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、闪存器件,例如反或闪存(nor flash memory)或是反及闪存(nand flash memory)、半导体器件,例如固态硬盘(solid state disk,ssd)等。存储器1103可选的还可以是至少一个位于远离前述处理器1101的存储装置。存储器1103中可选的还可以存储一组程序代码。处理器1101可选的还可以执行存储器1103中所存储的程序。
[0072]
获取多个进程中每个进程的优先级;
[0073]
将所述多个进程中所述优先级小于第一预设阈值的进程划分为第一控制族群;
[0074]
将所述多个进程中所述优先级大于等于所述第一预设阈值且小于等于第二预设阈值的进程与所述第一控制族群进行嵌套,得到第二控制族群,所述第一控制族群和所述第二控制族群用于控制资源分配。
[0075]
可选的,所述第二控制族群中的进程能够共享使用所述第一控制族群中的进程的资源、且所述第一控制族群中的进程不能占用所述第二控制族群中的进程的资源。
[0076]
可选的,处理器1101还用于执行如下操作步骤:
[0077]
按照所述优先级从高到低的顺序对所述多个进程进行排序。
[0078]
可选的,处理器1101还用于执行如下操作步骤:
[0079]
获取所述每个控制族群中的进程所需占用资源的平均值和最大值;
[0080]
根据所述平均值和最大值,确定所述每个控制族群对应的资源范围。
[0081]
可选的,处理器1101还用于执行如下操作步骤:
[0082]
按照所述每个控制族群中所包含的进程的优先级从大到小的顺序,依次确定所述每个控制族群对应的所述资源范围。
[0083]
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中计算机设备的操作。
[0084]
本技术实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机设备以实现上述任一实施例中所涉及的功能,例如生成或处理上述方法中所涉及的控制族群。在一种可能的设计中,所述芯片系统还可以包括存储器,所述存储器,用于计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
[0085]
本技术实施例还提供了一种处理器,用于与存储器耦合,用于执行上述各实施例中任一实施例中涉及计算机设备的任意方法和功能。
[0086]
本技术实施例还提供了一种包含指令的计算机程序,其在计算机上运行时,使得计算机执行上述各实施例中任一实施例中涉及计算机设备的任意方法和功能。
[0087]
本技术实施例还提供了一种装置,用于执行上述各实施例中任一实施例中涉及计算机设备的任意方法和功能。
[0088]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0089]
以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献