一种作业调度方法及调度系统与流程
未命名
10-19
阅读:99
评论:0

1.本发明涉及资源调度领域,尤其涉及一种作业调度方法及调度系统。
背景技术:
2.随着计算资源的多样化以及用户提交的作业资源请求在类型、粒度和数量方面日益复杂,以及用户资源调度的效率要求更高。在同一集群中作业请求的资源存在差异的情况下,如何在保证资源调度效率的情况下,减少资源的浪费,成为当前需要解决的问题。
技术实现要素:
3.本技术实施例提供了一种作业调度方法及调度系统,能够保证集群中各维度资源利用率均衡,使得节点上能够更多地运行作业,从而提高整个集群资源利用率。
4.第一方面,本技术实施例提供了一种作业调度方法,包括:获取目标作业;在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,获取服务器集群中至少一个节点的多个维度资源的使用率以及各个维度资源的挂起作业数;基于多个维度资源的使用率以及挂起作业数,得到至少一个节点的资源均衡度;基于至少一个节点的资源均衡度,从服务器集群中选取到目标节点,并将目标作业调度到目标节点。
5.在本方案中,在确定处理目标作业的目标节点时,综合考虑集群中多个维度资源的总的利用率,以及将目标作业调度到节点上以后节点具有的均衡度。比如,在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,根据得到的各个节点的资源均衡度,从中选择资源均衡度最大的节点作为目标节点,能够尽可能的保证集群中各维度资源的利用率均衡度,使得节点上能够尽可能多地运行作业。
6.在一个可能的实现方式中,该方法还包括:在服务器集群的资源利用率小于资源利用率阈值的情况下,获取服务器集群中至少一个节点的多个维度资源的使用率以及各个维度资源的挂起作业数;基于多个维度资源的使用率以及挂起作业数,得到至少一个节点的资源均衡度;对于至少一个节点中的任意一个节点,基于多个维度资源的使用率、挂起作业数、目标作业需要的资源量,得到目标作业调度到节点后节点的资源均衡度;根据节点的均衡度和目标作业调度到节点后节点的资源均衡度,从服务器集群中选取到目标节点,并将目标作业调度到目标节点。
7.也就是说,在服务器集群的资源利用率小于资源利用率阈值的情况下,根据目标作业调度到节点之前节点的资源均衡度,以及目标作业调度到节点之后的资源均衡度选择资源均衡度有待提升的节点作为目标节点运行作业,使得在兼顾资源均衡度的情况下,能快速的调度作业。
8.在一个可能的实现方式中,基于多个维度资源的使用率以及挂起作业数,得到至少一个节点的资源均衡度包括:根据多个维度资源的使用率、多个维度资源的挂起作业数,确定多个维度资源的权重;对于至少一个节点中的每一个节点,根据多个维度资源的权重、节点上多个维度资源的使用率,确定节点的资源均衡度。
9.也就是说,在确定节点的资源均衡度时,需要考虑到节点上的各维度资源的权重,以及节点上各维度资源的使用率,以保证进行作业调度时,各个节点上的资源的利用率处于较高的水平。
10.在一个可能的实现方式中,根据多个维度资源的使用率、多个维度资源的挂起作业数,确定多个维度资源的权重包括:获取多个维度资源的初始权重,初始权重为预先设置的权重;根据多个维度资源的挂起作业数,得到多个维度资源的第一权重;根据多个维度资源的使用率,得到多个维度资源的第二权重;对各个维度资源的初始权重、第一权重、第二权重取平均值得到多个维资源中各个维度资源的权重。
11.也就是说,在确定集群中的各维度资源的权重时,除了获取各维度资源的初始权重,还可以获取调度系统中挂起的作业信息,以及各个维度资源的使用率。使得在确定各维度资源的权重时,得到的各维度资源的权重参数更加的真实。
12.在一个可能的实现方式中,根据多个维度资源的挂起作业数,得到多个维度资源的第一权重,包括:根据多个维度资源的挂起作业数,构建第一优序图矩阵w1=(w
i,j
)k×k;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的作业挂起数越多资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;根据第一优序图矩阵确定各个维度资源的第一权重w1i为:
[0013][0014]
其中,w1i《1,1《i《k,且所有w1i相加等于1,为对优序图矩阵中的第i行元素求和,w1
mn
为优序图矩阵w1中的第m行n列的元素;
[0015]
和/或,根据多个维度资源的使用率,得到多个维度资源的第二权重,包括:根据多个维度资源的使用率,构建第二优序图矩阵w2=(w
i,j
)k×k;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的使用率越高资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;根据第二优序图矩阵确定各个维度资源的第一权重w2i为:
[0016][0017]
其中,w2i《1,1《i《k,且所有w2i相加等于1,为对优序图矩阵中的第i行元素求和,w2
mn
为优序图矩阵w2中的第m行n列的元素。
[0018]
在一个可能的实现方式中,根据多个维度资源的权重、节点上多个维度资源的使用率,确定节点的资源均衡度包括:根据节点上多个维度资源的使用率、目标作业请求的资源量,确定目标作业调度到节点后各个维度资源的使用率;根据多个维度资源的权重、目标作业调度节点后各个维度资源的使用率,得到节点的资源均衡度。
[0019]
在一个可能的实现方式中,根据多个维度资源的权重、目标作业调度节点后各个维度资源的使用率,得到节点的资源均衡度,包括:根据多个维度资源的权重、目标作业调度节点后各个维度资源的使用率,得到节点的均衡度度量函数y,
[0020][0021]
其中,y越小表示作业调度到节点后k维资源的使用率的离散程度越小,节点的资源均衡度越高,其中,wi为资源i的权重,di为目标作业调度到节点后资源i的使用率,为k维资源使用率的平均值,i、j为大于1的自然数,k为大于等于2的自然数。
[0022]
在一个可能的实现方式中,将目标作业调度到目标节点之后,该方法还包括:更新服务器集群中的资源使用率以及各个维度资源的挂起作业数;根据更新后的资源使用率以及各个维度资源的挂起作业数,更新服务器集群中各维度资源的权重。
[0023]
也就是说,在资源调度系统中,每调度一个挂起作业以后,都需要更新服务器集群中的挂起作业数以及集群中的资源使用率,并根据更新后的挂起作业数和集群中的资源使用率实时更新服务器集群中的各维度资源的权重。
[0024]
第二方面,本技术实施例提供了一种服务器,包括:
[0025]
至少一个存储器,用于存储程序;
[0026]
至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面的任一种可能的实现方式所描述的方法。
[0027]
第三方面,本技术实施例提供了一种服务器集群,包括至少一个第二方面所描述的服务器。
[0028]
第四方面,本技术实施例提供了一种计算机可读介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面任一种可能的实现方式所描述的方法。
[0029]
第五方面,本技术实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面的任一种可能的实现方式所描述的方法。
[0030]
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
[0031]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0032]
图1为本技术实施例提供的一种调度系统的结构示意图;
[0033]
图2为本技术实施例提供的一种电子设备的结构示意图;
[0034]
图3为本技术实施例提供的一种调度器的结构示意图;
[0035]
图4为本技术实施例提供的一种作业调度方法的流程图;
[0036]
图5为本技术实施例提供的一种集群中各维度的权重的计算方法流程图;
[0037]
图6为本技术实施例提供的一种作业调度方法的流程图;
[0038]
图7为普通调度算法与本技术实施例提供的多维资源调度算法对挂起作业进行调
度的对比示意图。
具体实施方式
[0039]
为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本技术实施例中的技术方案进行描述。
[0040]
在本技术实施例中的描述中,“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应该被理解为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
[0041]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0042]
在介绍本方案之前,首先对本方案中用到的关键术语进行解释。
[0043]
多维资源均衡调度:集群中包含多种资源类型,比如中央处理器(central processing unit,cpu)、内存、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural network processing unit,npu)等,为了使集群的资源利用率更高,调度器给作业分配节点时尽可能地使作业调度到节点后,节点上各个维度的资源使用率更均衡,以便运行更多的作业。
[0044]
挂起(pending)作业:用户已提交到调度器,但是由于集群空闲资源不满足作业资源请求导致无法运行的作业。
[0045]
优序图法:使用矩阵图示的方法,分析各因素两两间的重要程度,得到各因素对最终目标影响大小,即资源权重参数。
[0046]
集群:计算节点的集合。
[0047]
接下来,对本方案进行介绍。
[0048]
在对集群中的资源进行调度时,容器集群管理系统kubernetes(k8s)支持以资源均衡程度给节点打分的策略,并将作业调度到分数最高的节点。比如,以节点资源维度包括cpu、内存、磁盘卷标volume、gpu等自定义资源为例。在给节点资源均衡维度打分时,考虑的资源维度可以为:cpu、内存、volume三个维度基础资源以及作业请求包含的自定义资源,比如gpu。对节点均衡程度进行打分的打分函数为:1-(各维度作业资源请求量/节点上空闲资源量的标准差)。其中,标准差越小,表示离散程度越小,各维度越均衡,分数越高。
[0049]
在上述打分函数中,参与评分的各维度资源具有的权重相同,无法区分各资源重要程度,且除了cpu、内存、volume等基础资源以外,没有考虑作业请求中没有包含的自定义资源的均衡度。
[0050]
除了使用以资源均衡程度给节点打分的策略来进行作业调度以外,还可以通过划分资源池的方式来对资源进行调度。比如,把含有gpu的节点划为资源池1,把只含有cpu和内存的节点作为资源池2。然后,通过配置调度策略把只请求cpu和内存的作业调度到资源池2,以保证gpu资源不被浪费。
[0051]
虽然,通过划分资源池的方式能够避集群中的某些重要资源被浪费。但是,往往需要牺牲集群中其他资源。
[0052]
有鉴于此,本技术实施例提供了一种作业调度方法,在考虑调度系统中挂起的作业信息、各维度资源使用率等因素的情况下,使用优序图法动态获取各维度资源的权重,并且使用该权重构建均衡度评价函数。在调度作业时,首先确定当前集群的资源利用率,如果当前集群的资源利用率小于预先设定的阈值,则在当前集群中选取一个均衡度有待提升的节点作为目标节点运行作业。如果当前集群的资源利用率不小于预先设定的阈值,则在当前集群中选取均衡度最高的节点作为目标节点运行作业。
[0053]
图1示出了一种调度系统的结构示意图。如图1所示,该调度系统中包括:至少一个终端设备服务器集群。其中,服务器集群中包括管理节点和计算节点,管理节点中包括调度器。,集群中的各个计算节点通过计算节点上的接口将资源信息注册到调度器。用户可以通过终端设备提交作业到调度器。调度器接收到用户提交的作业以后,将作业调度到有空闲资源且空闲资源满足作业请求的计算节点上运行,并且更新集群中的空闲资源信息,作业结束时释放已分配的资源并更新空闲信息。管理节点或计算节点可以为物理机或者虚拟机。
[0054]
可以理解的是,用户提交的作业类型可以是多种多样的,比如:人工智能(artificial intelligence,ai)作业、高性能计算(high performance computing,hpc)作业、大数据作业等,这些作业请求的资源类型可以存在差异。集群中不同计算节点包含的计算资源类型也可以是不一样的,比如,计算节点包含的计算资源类型可能为cpu、gpu、npu中的一种或多种。
[0055]
示例性的,图2示出了一种电子设备的硬件结构,该电子设备可以是图1中的终端设备或者计算节点。如图2所示,该电子设备包括:处理器210、网络接口220、存储器230。其中,处理器210、网络接口220以及存储器230可以通过总线或者其他方式连接。
[0056]
本技术实施例中,处理器210(或称为中央处理器(central processing unit,cpu))是电子设备的计算核心及控制核心。例如,处理器210可以运行调度器分配的作业。
[0057]
网络接口220可以包括标准的有线接口,无线接口(如wi-fi,移动通信接口等),受处理器210的控制用于收发数据,例如,接收分配的作业。
[0058]
存储器230(memory)是电子设备的记忆设备,用于存放程序和数据,例如,存放作业等。可以理解的是,存储器230可以是高速随机存取存储器(random access memory,ram),也可以是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器;可选地还可以是至少一个位于远离前述处理器210的存储装置。存储器230提供存储空间,该存储空间存储了服务器的操作系统和可执行程序代码,可包括但不限于:windows系统(一种操作系统),linux系统(一种操作系统),鸿蒙系统(一种操作系统)等等,在此不做限定。
[0059]
可以理解的是,本技术实施例图2示意的结构并不构成对电子设备的具体限定。电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0060]
示例性的,本技术实施例提供了一种调度器的结构示意图。如图3所示,调度器中包括:配置管理器310、任务管理器320、调度引擎330。其中,调度引擎330包括:权重计算模块331、资源管理模块332、节点选择模块333。
[0061]
用户可以通过配置管理器310配置集群资源利用率阈值、各维度资源的初始权重。在配置各维度资源的初始权重时,用户可以根据资源的价格等因素进行主观配置。但是配
置好的各个维度资源的初始权重需要满足所有资源的初始权重相加等于1。
[0062]
任务管理器320用于接收用户提交的作业,并将该作业请求需要请求的资源信息记录到调度器中。然后,任务管理器320根据用户提交的作业触发调度引擎330进行资源申请。调度引擎330通过资源管理模块332接收任务管理器320发送的资源请求,并根据任务管理器320发送的资源请求进行资源申请。具体地,权重计算模块331对集群中的各维度资源的权重进行计算。节点选择模块333用于根据权重计算模块331计算出的权重在集群中选择目标节点。如果集群中存在满足条件的目标节点,则资源管理模块332将目标节点信息发送给任务管理器320,并且更新集群中各维度资源的使用率。如果集群中没有满足条件的目标节点,则资源管理模块332将该作业添加到挂起作业列表中,并将挂起作业列表中的挂起作业信息更新到权重计算模块331。
[0063]
在一个可能的示例中,资源管理模块332还用于获取集群中各个节点的资源信息。其中,各个节点的资源信息包括:节点的总的资源量、节点上的空闲资源量。具体地,集群中的各个节点可以将节点的资源信息注册到调度器,并周期性的对节点的资源信息进行更新。
[0064]
在一个可能的示例中,权重计算模块331在确定各维度资源的权重时,除了考虑集群中各维度资源的初始权重以外,还可以考虑以下两方面因素:(1)调度系统中由于每个维度资源不足导致的挂起的作业数;(2)集群中每个维度资源的使用率。对于上述两个因素,可以认为由于某一个维度资源不足导致的挂起作业数量越多,表示该资源越稀缺,即该资源越重要。同样地,某一个维度资源的使用率越高,则表示在后续作业调度中该资源越重要。
[0065]
权重计算模块331在确定各维度资源的权重时,可以分别基于调度系统中挂起的作业信息和各维度资源的使用率,对各维度资源进行两两比较,并根据各维度资源的重要程度构建优序图矩阵。然后,权重计算模块331可以根据构建的优序图矩阵计算得到各个维度资源的权重。比如,考虑到由于各维度资源不足导致的挂起的作业数,权重计算模块331可以得到各个维度资源的第一权重。考虑到集群中各个维度资源的使用率,权重计算模块331可以得到各个维度资源的第二权重。权重计算模块331对各个维度资源的初始权重值、第一权重、第二权重取平均值可以得到集群中各维度资源的最终权重。
[0066]
可以理解的是,在上述示例中,权重计算模块331在确定各维度资源的权重时,所考虑的因素只是示意性的说明。在实际计算过程中,可以考虑比上述示例中更多或者更少的因素,本技术实施例中对此不做限定。
[0067]
在一个可能的示例中,假设集群有k维资源(cpu、内存、gpu、npu等)。以调度系统中由于每个维度资源不足导致的挂起的作业数确定各维度资源的权重为例计算各维度资源的权重。权重计算模块331确定各维度资源的权重过程包括:步骤1-步骤3。
[0068]
步骤1,确定调度系统中由于各维度资源不够导致的挂起作业数量。
[0069]
在本实施例中,假设集群中由于资源i不足导致挂起的作业数为ri,即可以得到由于各维度资源不足导致挂起的作业数组成的向量为(r1,r2,
…
,rk),其中,k为资源的维度。
[0070]
步骤2,根据调度系统中挂起的作业数,构建优序图矩阵。
[0071]
在本实施例中,根据调度系统中挂起的作业数,构造优序图矩阵w=(w
i,j
)k×k。其中,w
i,j
用于标识资源i相对于资源j的重要性。比如,若ri》rj,则表明由于资源i不足导致的
挂起的作业的数量高于资源j不足所导致的挂起的作业数量,则可以认为在后续的作业调度过程中,资源i的重要性比资源j的重要性高。此时,可以令w
i,j
=1,w
j,i
=0。若ri=rj,可以任务资源i和资源j是同等重要的,此时,可以令w
i,j
=w
j,i
=0.5。需要说明的是,在优序图矩阵w=(w
i,j
)k×k中,对角线上的元素统一为0.5,即w
i,i
=0.5。
[0072]
步骤3,根据构建的优序图矩阵确定各维度资源的权重。
[0073]
在本实施例中,在将各维度资源进行两两比较以后,可以根据各维度资源两两比较的结果,确定各维度资源的重要程度得分。
[0074]
以资源i为例,确定资源i的重要程度得分时,可以对优序图矩阵中的第i行元素求和,得到资源的i的重要程度得分为:
[0075]
在确定各维度资源的重要程度得分以后,还可以根据确定的各维度资源的重要程度得分,以及调度系统中挂起的作业信息,计算得到各维度资源的权重。
[0076]
以资源i为例,根据系统中挂起的作业信息以及资源i的重要程度得分,可以得到资源i的权重wi为:
[0077][0078]
其中,wi《1,1《i《k,且所有wi相加等于1,w
mn
为优序图矩阵w中的第m行n列的元素。
[0079]
节点选择模块333根据权重计算模块331在确定的各维度资源的最终权重,构造均衡度度量函数。其中,均衡度度量函数用来衡量节点各个维度资源使用率的离散程度。
[0080]
在一个可能的示例中,假设作业请求资源量为a(a1,a2,
…
,ak),节点f已使用的资源量b为(b1,b2,
…
,bk),节点f的总资源量c为(c1,c2,
…
,ck)。根据节点f已使用的资源量以及节点f的总资源量可以得到请求的作业调度到节点f后各维度资源的使用率d为:
[0081][0082]
第k维资源的使用率的平均值m为:
[0083][0084]
节点f各维度资源使用率加权方差平方根y为:
[0085][0086]
其中,y越小表示作业调度到节点f后k维资源的使用率的离散程度越小,即节点f的资源均衡度越高,其中,wi为资源i的权重,di为资源i的使用率,为k维资源使用率的平均值。
[0087]
节点选择模块333接收资源管理模块332发送的资源请求信息,其中,资源请求信息中携带有目标作业(需要调度的作业)大小、调度目标作业需要的资源信息。节点选择模块333在接收到资源管理模块332发送的资源请求信息以后,节点选择模块333根据接收到
的资源请求信息确定用于调度目标作业的目标节点。
[0088]
节点选择模块333在确定目标节点时,首先确定用于调度目标作业的集群的资源利用率是否超过预先设定的资源利用率阈值。若集群的资源利用率未超过资源利用率阈值,节点选择模块333可以从集群中选择一个均衡度有待提升的节点作为目标节点,其中均衡度有待提升的节点是指目标作业调度到该节点以后,该节点的均衡度比目标作业调度到该节点之前的均衡度高。节点选择模块333在确定均衡度有待提升的节点时,不需要遍历集群中的所有节点,加快了作业的调度效率。
[0089]
若集群的资源利用率超过资源利用率阈值,节点选择模块333需要遍历集群中所有的节点,并选出均衡度最高的节点作为目标节点。
[0090]
资源管理模块332可以根据调度器中存储的正在运行的作业的资源信息,以及调度器中存储的集群中的多个节点的总的资源量,确定集群的资源利用率。
[0091]
在一个可能的示例中,以k维资源为例,可以得到集群的资源利用率为:
[0092][0093]
节点选择模块333在确定目标节点以后,还需要将目标节点信息发送给资源管理模块332将目标节点信息发送给任务管理器320,并且更新集群中各维度资源的使用率。
[0094]
在一个可能的示例中,如果集群中没有满足条件的节点,则资源管理模块332需要将该作业添加到挂起作业列表中,并将挂起的作业信息更新到权重计算模块331。
[0095]
在本技术实施例中,权重计算模块331根据预先设定的各维度资源的权重初始值及系统中挂起的作业信息、集群各维度资源使用率计算各维度资源权重。节点选择模块333根据权重构造的均衡度评价函数,计算集群中满足资源请求的节点均衡度。当集群资源利用率小于阈值时,则只需过滤出均衡度有提升的节点作为目标节点,反之则需要选取均衡度最高的节点作为目标节点。
[0096]
接下来,基于上文所描述的内容,对本技术实施例还提供了一种作业调度方法进行介绍。
[0097]
示例性的,图4示出了本技术实施例提供的一种作业调度方法的流程图。该方法可以由图3所示的调度器执行。参见图4,该方法包括:步骤401-步骤405。
[0098]
步骤401,接收目标作业信息。
[0099]
在本实施例中,调度系统中的调度器中的资源管理模块332可以接收用户通过终端设备提交的需要调度的作业信息,即目标作业信息。其中,目标作业信息中可以包括调度该目标作业需要的资源信息。
[0100]
步骤402,确定集群的资源利用率是否大于资源利用率阈值,若大于,执行步骤403,否则执行步骤404。
[0101]
在本实施例中,用户可以预先配置集群资源利用率阈值。比如,用户可以预先设置集群资源利用率阈值为50%,或者其他数值等。
[0102]
步骤403,确定集群中各个节点的均衡度,选择均衡度最高的节点作为目标节点。
[0103]
在本实施例中,当调度器中的节点选择模块333确定集群中资源的使用率大于用户预先设定的资源使用率阈值时,节点选择模块333需要遍历集群中所有含有空闲资源的节点,并从中选择均衡度最大的节点作为目标节点。节点选择模块333在确定集群中的节点
的均衡度时,需要根据调度系统中各维度资源的权重,构造均衡度度量函数。然后,节点选择模块333通过构造的均衡度度量函数来确定各个节点上的资源均衡度。
[0104]
可以理解的是,本实施例中,计算的各个节点的资源均衡度是指将目标作业调度到该节点以后,该节点的资源均衡度。
[0105]
在一个可能的示例中,节点选择模块333从集群中确定均衡度最高的节点的过程包括:步骤4031-步骤4035。
[0106]
步骤4031,获取集群中含有空闲资源的节点。
[0107]
节点选择模块333在确定集群中的资源的利用率大于预先设定的资源使用率阈值以后,节点选择模块333需要获取集群中所有含有空闲资源的节点,并从中确定出均衡度最高的节点。
[0108]
步骤4032,确定节点中的空闲资源是否满足调度目标作业需要的资源,若满足,执行步骤4033,若不满足执行步骤4034。
[0109]
节点选择模块333在获取到集群中的包含有空闲资源的节点以后,需要确定该节点包含的空闲资源是否满足调度目标作业需要的资源。如果满足,则继续计算该节点的均衡度,如果不满足,则继续获取集群中的下一个包含空闲资源的节点。
[0110]
步骤4033,计算作业调度到该节点后的资源均衡度,并记录该节点的资源均衡度。
[0111]
若节点选择模块333获取的包含有空闲资源的节点中的空闲资源满足调度目标作业需要的资源,节点选择模块333需要计算该节点的资源均衡度。具体地,节点选择模块333可以根据调度系统中各个资源的权重构造均衡度度量函数。其中,构造均衡度度量函数的过程,可以参照上述实施例中节点选择模块333中的描述,在此不再赘述。
[0112]
节点选择模块333在每确定一个节点的资源均衡度以后,还需要记录该资源均衡度,以后方便后续对不同节点的资源均衡度进行比较。
[0113]
步骤4034,确定集群中是否还存在未被获取的含有空闲资源的节点,若存在,执行步骤4031,否则,执行步骤4035。
[0114]
在集群中的资源的利用率大于预先设定的资源使用率阈值的情况下,节点选择模块333需要遍历集群中所有的含有空闲资源的节点。
[0115]
步骤4035,从记录的多个资源均衡度中选择均衡度最大的节点作为目标节点。
[0116]
在节点选择模块333遍历完集群中所有包含空闲资源的节点以后,节点选择模块333还需要将获取的多个节点的资源均衡度进行比较,以得到资源均衡度最高的节点。
[0117]
在一个可能的示例中,节点选择模块333可以将获取的多个节点的资源均衡度进行排序,并选取资源均衡度最高的节点作为目标节点。
[0118]
步骤404,从集群中选择资源度有待提升的节点,作为目标节点。
[0119]
在本实施例中,在集群中的资源的利用率大于预先设定的资源使用率阈值的情况下,节点选择模块333需要轮询集群中含有空闲资源的节点,并将轮询到的第一个资源均衡度有待提升的节点作为目标节点。其中,资源均衡度有待提升是指目标作业调度到该节点之后该节点的资源均衡度大于目标作业调度到该节点之前的资源均衡度。
[0120]
在一个可能的示例中,节点选择模块333从集群中确定资源均衡度有待提升的节点的过程包括:步骤4041-步骤4048。
[0121]
步骤4041,轮询集群中含有空闲资源的节点。
[0122]
节点选择模块333需要轮询集群中含有空闲资源的节点,并从中选择资源均衡度有待提升的节点作为目标节点。
[0123]
步骤4042,确定节点的包含的空闲资源数是否满足调度目标作业需要的资源,若满足执行步骤4043,否则,执行步骤4041。
[0124]
节点选择模块333在确定集群中的资源的利用率小于预先设定的资源使用率阈值以后,节点选择模块333需要获取集群中含有空闲资源的节点。然后,节点选择模块333需要确定节点包含的空闲资源是否满足调度目标作业需要的资源。如果满足,则继续计算该节点的资源均衡度,如果不满足,则继续获取集群中的下一个包含空闲资源的节点。
[0125]
步骤4043,计算目标作业调度到节点前该节点的资源均衡度和调度到节点后该节点的资源均衡度。
[0126]
节点选择模块333在计算节点资源均衡度的具体过程可以参照上述实施例中节点选择模块333的实现过程,在此不再赘述。
[0127]
步骤4044,若目标作业调度到节点后的资源均衡度大于目标作业调度到节点前的资源均衡度,执行步骤4045,否则,执行步骤4046。
[0128]
节点选择模块333在确定当前节点包含的空闲资源满足调度目标作业需要的资源以后,节点选择模块333还需要计算当前节点在调度目标作业之前的资源均衡度,以及当前节点在调度目标作业之后的资源均衡度。
[0129]
步骤4045,将该节点作为目标节点。
[0130]
若当前节点在调度目标作业以后的资源均衡度大于调度目标作业之前的资源均衡度,则说明当前节点的资源均衡度有待提升。此时,可以将该节点作为目标节点,并停止对集群中其他包含空闲资源的节点的资源均衡度的计算。
[0131]
步骤4046,计算作业调度到该节点后的资源均衡度,并记录该节点的资源均衡度。
[0132]
若当前节点在调度目标作业以后的资源均衡度小于或等于调度目标作业之前的均衡度,则需要记录目标作业调度到当前节点后的资源均衡度,然后继续判断下一个包含空闲资源的节点在将目标作业调度到该节点后的资源均衡度。
[0133]
步骤4047,确定集群中是否还存在未被轮询到的含有空闲资源的节点,若存在,执行步骤4041,否则,执行步骤4048。
[0134]
节点选择模块333需要依次对集群中包含有空闲资源的节点的均衡度进行判断,直到节点选择模块333确定好目标节点。
[0135]
步骤4048,从记录的多个资源均衡度中选择资源均衡度最大的节点作为目标节点。
[0136]
如果节点选择模块333轮询完集群中所有包含空闲资源的节点都没有找到一个资源均衡度有待提升的节点。此时,节点选择模块333需要从记录的多个节点的资源均衡度中选择资源均衡度最高的节点作为目标节点。可以理解的是,记录的节点资源均衡度是指目标作业调度到该节点后,该节点的资源均衡度。
[0137]
步骤405,将作业调度到目标节点并运行。
[0138]
在本实施例中,节点选择模块333在确定目标节点以后,节点选择模块333需要资源管理模块332将目标节点信息发送给调度器中的任务管理器320。任务管理器320可以将目标作业调度到目标节点上,并触发目标节点运行目标作业。步骤406,更新集群中的资源
使用率。
[0139]
在本实施例中,资源管理模块332在接收到节点选择模块333发送的目标节点信息以后,还需要根据接收到的目标节点信息更新集群中的资源使用率。
[0140]
在一个可能的示例中,若集群中不存在满足条件的节点,即不存在目标节点,调度器中的资源管理模块332需要将该目标作业添加到挂起作业列表中,并将挂起作业列表中的作业信息更新到调度器的权重计算模块331。
[0141]
由于在确定各个节点的均衡度的时候,需要根据集群中各维度资源的权重生成均衡度度量函数,进而确定各个节点的资源均衡度。示例性的,图5示出了一种集群中各维度资源的权重的计算方法流程图,该方法可以由图3所示调度器中的权重计算模块331执行。如图5所示,包括:步骤501-步骤506。
[0142]
步骤501,获取调度系统中各维度资源的初始权重w0i。
[0143]
在本实施例中,用户可以根据资源价格等因素配置调度系统中各维度资源的初始权重。用户在配置调度系统中各维度资源的初始权重时,需要保证所有资源的初始权重的和为1。
[0144]
步骤502,获取调度系统中由于各维度资源不够造成的挂起的作业数。
[0145]
在本实施例中,权重计算模块331在确定调度系统中各权重资源的权重时,可以考虑多个方面的因素。比如,可以考虑由于某个维度资源不足导致的挂起的作业数。其中,由于某个维度资源不足,导致的挂起的作业数越多,则表示该资源越稀缺,即该资源越重要。
[0146]
步骤503,根据挂起的作业数,构建优序图矩阵,并计算调度系统中各维度资源的第一权重。
[0147]
在本实施例中,权重计算模块331在获取到挂起的作业数以后,还需要根据各维度资源挂起的作业数对各维度资源进行两两比较,得到两个资源中重要程度较高的资源。其中,资源的作业挂起数越多表明资源越重要。然后,权重计算模块331根据各维度资源的重要程度构建优序图矩阵。
[0148]
在一个可能的示例中,构建的第一优序图矩阵w1为:
[0149]
w1=(w
i,j
)k×k[0150]
其中,i、j为大于1的自然数,k为大于等于2的自然数;w
i,j
用于标识资源i相对于资源j的重要性,资源的作业挂起数越多表明该资源越重要,k为资源的维度。比如,资源i导致的作业挂起数大于资源j导致的作业挂起数,则可以认为在后续的作业调度中资源i重要性比j高,则设置w
i,j
=1,w
j,i
=0;资源i导致的作业挂起数等于资源j导致的作业挂起数认为资源i和j同样重要,则设置w_(i,j)=w_(j,i)=0.5;第一优序图矩阵w1中对角线元素统一为0.5,则w
i,i
=0.5。
[0151]
权重计算模块331根据构建的第一优序图矩阵确定各维度资源的第一权重w1i。
[0152][0153]
其中,w1i《1,1《i《k,且所有w1i相加等于1,为对优序图矩阵中的第i行元素求和,w1
mn
为优序图矩阵w1中的第m行n列的元素。
[0154]
步骤504,获取调度系统中各维度资源的使用率。
[0155]
在本实施例中,权重计算模块331在确定调度系统中各权重资源的权重时,可以考虑多个方面的因素。比如,可以考虑集群中每个资源的使用率。其中,某个维度资源的使用率越高,表示该资源在后续作业调度过程越重要。
[0156]
步骤505,根据各维度资源的使用率,构建优序图矩阵,并计算调度系统中各维度资源的第二权重。
[0157]
在本实施例中,权重计算模块331在获取到各维度资源的使用率以后,还需要根据各维度资源的使用率对各维度资源进行两两比较,得到两个资源中重要程度较高的资源。其中,资源的使用率越高表明资源越重要。然后,权重计算模块331根据重要程度构建优序图矩阵。
[0158]
在一个可能的示例中,构建的第二优序图矩阵w2为:
[0159]
w2=(w
i,j
)k×k[0160]
其中,i、j为大于1的自然数,k为大于等于2的自然数;w
i,j
用于标识资源i相对于资源j的重要性,资源的使用率越高表明该资源越重要,k为资源的维度。比如,资源i的使用率大于资源j的使用率,则可以认为在后续的作业调度中资源i重要性比j高,则设置w
i,j
=1,w
j,i
=0;资源i的使用率等于资源j的使用率,则认为资源i和j同样重要,则设置w_(i,j)=w_(j,i)=0.5;第二优序图矩阵w2中对角线元素统一为0.5,则w
i,i
=0.5。
[0161]
权重计算模块331根据构建的第二优序图矩阵确定各维度资源的第二权重重w2i,
[0162][0163]
其中,w2i《1,1《i《k,且所有w2i相加等于1,为对优序图矩阵中的第i行元素求和,w2
mn
为优序图矩阵w2中的第m行n列的元素。
[0164]
步骤506,计算各维度资源的初始权重、第一权重、第二权重的平均值,并将该平均值作为各维度资源的资源权重。
[0165]
在本实施例中,在确定集群中各维度资源的权重时,考虑了两个方面的因素,得到了第一权重和第二权重。权重计算模块331在得到第一权重和第二权重以后,权重计算模块331可以计算各个维度资源的初始权重、第一权重、第二权重的平均值,并将该平均值作为各维度资源的资源权重wi,
[0166][0167]
可以理解的是,调度器中的权重计算模块331需要动态的对资源调度系统中的各维度资源的权重进行更新。
[0168]
在一个可能的示例中,资源调度系统每接收到一个用户提交的作业信息,就需要获取一次调度系统中的各维度资源的权重参数。在调度系统中,每调度一个作业以后,权重计算模块331都需要重新获取调度系统中的资源使用率,并根据获取的资源使用率重新计算资度系统中各维度资源的权重参数。
[0169]
在本技术实施例中,根据资源调度系统中挂起的作业信息和集群中的资源使用率动态更新集群中各维度资源的权重参数。在集群资源利用率比较低时,能够兼顾节点资源均衡度的条件下,快速地对作业进行调度。在集群资源达到资源使用率阈值的情况下,能够
最大限度的维持集群中各维度资源利用率的均衡度,使得节点上能够尽可能多地运行作业,从而提高整个集群的节点资源利用率。
[0170]
示例性的,本技术实施例还提供了一种作业调度方法,该方法可以由图3所示的调度器执行。可以理解的是,该方法是上文所描述的作业调度方法的另一种表达方式,两者是相结合的。图6是本技术实施例提供的一种作业调度方法的流程图。如图6所示,包括:步骤601-步骤604。
[0171]
步骤601,获取目标作业。
[0172]
在本实施例中,调度器中的资源管理模块332可以接收用户通过终端设备提交的需要调度的目标作业。
[0173]
步骤602,在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,获取服务器集群中至少一个节点的多个维度资源的使用率以及各个维度资源的挂起作业数。
[0174]
在本实施例中,在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,资源管理模块332需要从服务器集群中获取每一个节点的多个维度资源的使用率,以及服务器集群中各个维度资源的挂起作业数。然后,资源管理模块332可以将获取的每一个节点的多个维度资源的使用率,以及服务器集群中各个维度资源的挂起作业数发送给权重计算模块331进行计算。
[0175]
步骤603,基于多个维度资源的使用率以及挂起作业数,得到至少一个节点的资源均衡度。
[0176]
在本实施例中,权重计算模块331根据多个维度资源的使用率、多个维度资源的挂起作业数,确定多个维度资源的权重。然后,权重计算模块331对于至少一个节点中的每一个节点,根据多个维度资源的权重、节点上多个维度资源的使用率,确定所述节点的资源均衡度。具体地,在确定至少一个节点中各个几点的资源均衡度时,权重计算模块331分别获取服务器集群中多个维度资源的初始权重w0i、多个维度资源的第一权重w1i、多个维度资源的第二权重w2i。然后,权重计算模块331对所述各个维度资源的初始权重、第一权重、第二权重取平均值得到多个维资源中各个维度资源的权重wi。权重计算模块331在得到多个维资源中各个维度资源的权重wi以后,权重计算模块331还需要根据节点上多个维度资源的使用率、目标作业请求的资源量,确定目标作业调度到节点后各个维度资源的使用率。然后,权重计算模块331根据多个维度资源的权重、目标作业调度节点后各个所述维度资源的使用率,得到节点的资源均衡度。
[0177]
根据所述多个维度资源的权重、所述目标作业调度所述节点后各个所述维度资源的使用率,得到所述节点的资源均衡度。
[0178]
在一个可能的示例中,权重计算模块331根据多个维度资源的挂起作业数,得到所述多个维度资源的第一权重w1i。具体地,权重计算模块331根据多个维度资源的挂起作业数,构建第一优序图矩阵w1=(w
i,j
)k×k;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的作业挂起数越多所述资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;
[0179]
权重计算模块331根据第一优序图矩阵确定各个维度资源的第一权重w1i为:
[0180]
[0181]
其中,w1i《1,1《i《k,且所有w1i相加等于1,为对优序图矩阵中的第i行元素求和,w1
mn
为优序图矩阵w1中的第m行n列的元素。
[0182]
在一个可能的示例中,权重计算模块331根据多个维度资源的使用率,构建第二优序图矩阵w2=(w
i,j
)k×k;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的使用率越高所述资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;
[0183]
权重计算模块331根据第二优序图矩阵确定各个维度资源的第一权重w2i为:
[0184][0185]
其中,w2i《1,1《i《k,且所有w2i相加等于1,为对优序图矩阵中的第i行元素求和,w2
mn
为优序图矩阵w2中的第m行n列的元素。
[0186]
在一个可能的示例中,权重计算模块331可以通过节点均衡度度量函数y,来得到节点的资源均衡度。其中,节点均衡度度量函数y为,
[0187][0188]
其中,y越小表示作业调度到节点后k维资源的使用率的离散程度越小,节点的资源均衡度越高,其中,wi为资源i的权重,di为目标作业调度到节点后资源i的使用率,为k维资源使用率的平均值,i、j为大于1的自然数,k为大于等于2的自然数。
[0189]
步骤604,基于至少一个节点的资源均衡度,从服务器集群中选取到目标节点,并将目标作业调度到目标节点。
[0190]
在本实施例中,所述将所述目标作业调度到所述目标节点之后,资源管理模块332还需要更新服务器集群中的资源使用率以及各个维度资源的挂起作业数,然后根据更新后的资源使用率以及各个维度资源的挂起作业数,更新服务器集群中各维度资源的权重。
[0191]
在一个可能的示例中,在服务器集群的资源利用率小于资源利用率阈值的情况下,资源管理模块332获取服务器集群中至少一个节点的多个维度资源的使用率以及各个维度资源的挂起作业数。然后,权重计算模块331基于多个维度资源的使用率以及挂起作业数,得到至少一个节点的资源均衡度。对于集群中的任意一个节点,权重计算模块331基于多个维度资源的使用率、挂起作业数、目标作业需要的资源量,得到目标作业调度到该节点后该节点的资源均衡度。最后,节点选择模块333根据节点的均衡度和目标作业调度到节点后节点的资源均衡度,从服务器集群中选取到目标节点,并将目标作业调度到目标节点。
[0192]
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。另外,上述实施例中的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本技术的范围之内。
[0193]
示例性的,图7示出了普通调度算法与本技术实施例提供的多维资源调度算法(即
上述作业调度方法)对挂起作业进行调度的对比示意图。如图7所示,节点a上包括资源cpu、内存、gpu,其中,cpu=100核、内存=1000g,gpu=10。调度系统中包括挂起作业job5、job2、job1、job4、job3、job6。其中,job1-job6在被调度时具有的优先级相同,job1需要的资源为:cpu=40核,内存=200g,gpu=2;job2需要的资源为:cpu=30核,内存=400g,gpu=2;job3需要的资源为:cpu=30核,内存=300g,gpu=1;job4需要的资源为:cpu=40核,内存=300g,gpu=4;job5需要的资源为:cpu=20核,内存=500g,gpu=4;job6需要的资源为:cpu=30核,内存=200g,gpu=1。
[0194]
在一个可能的示例中,在极端情况下,调度器利用普通调度算法对挂起的作业进行,即将job5和job2调度到节点a上。此时,节点a上的资源的剩余量为:cpu=50核,内存=100g,gpu=4。节点a上剩余的资源量不满足job1、job3、job4、job6的资源请求,即节点a上剩余的资源量造成了资源浪费。可以理解的是,本示例中的极端情况是指按照作业挂起的顺序对作业进行调度。
[0195]
在利用多维资源均衡度调度算法对挂起作业(job1-job6)进行调度时,每调度一个挂起作业,都需要考虑率集群中的计算节点的资源均衡度,选择资源均衡度满足条件的计算节点进行调度。在本示例中,在极端情况下,按照作业挂起的顺序依次判断该作业是否可以被调度到节点a上。由于job5是第一个被挂起的作业,调度器直接将job5调度到节点a。然后基于多维资源均衡度调度算法,调度器可以根据当前节点a的资源的使用率,得到各个资源(cpu、内存、gpu)的资源权重。具体地,包括:调度器根据job5运行需要使用的资源,得到cpu的使用率为20%,内存的使用率为50%,gpu的使用率为10%。
[0196]
调度器根据各个资源的使用率构造优序图矩阵w1,
[0197][0198]
调度器根据优序图矩阵w1得到cpu的重要程度得分为0.5+0+1=1.5、内存的重要程度得分为1+0.5+1=2.5、gpu的重要程度得分为0+0+0.5=0.5。然后,调度器根据各个资源的重要程度得分得到cpu的权重w
cpu
,内存的权重w
内存
,gpu的权重w
gpu
。
[0199][0200][0201][0202]
然后,调度器根据得到的各个资源的资源权重、节点a上的资源使用率各维度资源的使用率平均值m确定节点a当前的资源离散程度y0。
[0203]
[0204][0205]
接下来,调度器对job2进行调度,在节点a剩余的资源是否满足job2的作业请量的情况下,计算job2调度到节点a后,节点a的离散程度y2。在计算节点a的离散程度y2之前,需要先确定job2调度到节点a以后,节点a上的资源的使用率为节点a上各维度资源的使用率平均值为:job2调度到节点a以后,节点a的资源离散程度y2。
[0206][0207]
由于,y2大于y0表明job2调度节点a以后,节点a的离散程度变大,节点a的资源均衡度变小。因此,调度器不会将job2调度到节点a,job2将会继续挂起。
[0208]
接下来,调度器继续对job1进行调度,在节点a剩余的资源是否满足job1的作业请量的情况下,计算job1调度到节点a后,节点a的资源离散程度由于,y1小于y0表明job1调度节点a以后,节点a的离散程度变小,节点a的资源均衡度变高。因此,调度器将job1调度到节点a。
[0209]
接下来,调度器继续对job4进行调度,在节点a剩余的资源是否满足job4的作业请量的情况下,计算job4调度到节点a后,节点a的资源离散程度由于,y4小于y1表明job4调度节点a以后,节点a的离散程度变小,节点a的资源均衡度变高。因此,调度器将job4调度到节点a。
[0210]
当job5、job1、job4都调度到节点a上以后,节点a上的资源剩余量为(cpu=0核,内存=0g,gpu=1),剩余的资源量不满足job3、job6中任意一个作业的调度请求量。因此,调度器停止向节点a调度作业。
[0211]
基于多维资源均衡度调度算法,调度到节点a上的挂起作业可以是:job5、job1、job4。当job5、job1、job4被调度节点a上以后,节点a上的资源的剩余量为:cpu=0核,内存=0g,gpu=1。节点a上剩余的资源可以被忽略,有效提高了计算节点上的资源使用率。
[0212]
基于上述实施例中的方法,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
[0213]
基于上述实施例中的方法,本技术实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
[0214]
基于上述实施例中的方法,本技术实施例提供了一种计算设备,计算设备包括主板和芯片。其中,芯片集成在主板上,芯片包括至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述实施例中的方法。在本技术实施例中,计算设备可以是服务器、主机等网络设备。
[0215]
基于上述实施例中的方法,本技术实施例还提供了一种服务器集群,该服务器集群中包括至少一个服务器。其中,该服务器包括至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述
实施例中的方法。
[0216]
本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。
[0217]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0218]
可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。
技术特征:
1.一种作业调度方法,其特征在于,包括:获取目标作业;在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,获取所述服务器集群中至少一个节点的多个维度资源的使用率以及各个所述维度资源的挂起作业数;基于所述多个维度资源的使用率以及所述挂起作业数,得到所述至少一个节点的资源均衡度;基于所述至少一个节点的资源均衡度,从所述服务器集群中选取到目标节点,并将所述目标作业调度到所述目标节点。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在服务器集群的资源利用率小于资源利用率阈值的情况下,获取所述服务器集群中至少一个节点的多个维度资源的使用率以及各个所述维度资源的挂起作业数;基于所述多个维度资源的使用率以及所述挂起作业数,得到所述至少一个节点的资源均衡度;对于所述至少一个节点中的任意一个节点,基于所述多个维度资源的使用率、所述挂起作业数、所述目标作业需要的资源量,得到所述目标作业调度到所述节点后节点的资源均衡度;根据所述节点的均衡度和所述目标作业调度到所述节点后节点的资源均衡度,从所述服务器集群中选取到目标节点,并将所述目标作业调度到所述目标节点。3.根据权利要求1所述的方法,其特征在于,所述基于所述多个维度资源的使用率以及所述挂起作业数,得到所述至少一个节点的资源均衡度包括:根据所述多个维度资源的使用率、所述多个维度资源的挂起作业数,确定所述多个维度资源的权重;对于所述至少一个节点中的每一个节点,根据所述多个维度资源的权重、所述节点上多个维度资源的使用率,确定所述节点的资源均衡度。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个维度资源的使用率、所述多个维度资源的挂起作业数,确定所述多个维度资源的权重包括:获取所述多个维度资源的初始权重,所述初始权重为预先设置的权重;根据所述多个维度资源的挂起作业数,得到所述多个维度资源的第一权重;根据所述多个维度资源的使用率,得到所述多个维度资源的第二权重;对所述各个维度资源的初始权重、第一权重、第二权重取平均值得到所述多个维资源中各个维度资源的权重。5.根据权利要求4所述的方法,其特征在于,所述根据所述多个维度资源的挂起作业数,得到所述多个维度资源的第一权重,包括:根据所述多个维度资源的挂起作业数,构建第一优序图矩阵w1=(w
i,j
)
k
×
k
;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的作业挂起数越多所述资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;根据所述第一优序图矩阵确定各个维度资源的第一权重w1
i
为:
其中,w1
i
<1,1<i<k,且所有w1
i
相加等于1,为对优序图矩阵中的第i行元素求和,w1
mn
为优序图矩阵w1中的第m行n列的元素;和/或,所述根据所述多个维度资源的使用率,得到所述多个维度资源的第二权重,包括:根据多个维度资源的使用率,构建第二优序图矩阵w2=(w
i,j
)
k
×
k
;其中,w
i,j
用于标识资源i相对于资源j的重要性,资源的使用率越高所述资源越重要,k为资源的维度,i、j为大于1的自然数,k为大于等于2的自然数;根据所述第二优序图矩阵确定各个维度资源的第一权重w2
i
为:其中,w2
i
<1,1<i<k,且所有w2
i
相加等于1,为对优序图矩阵中的第i行元素求和,w2
mn
为优序图矩阵w2中的第m行n列的元素。6.根据权利要求3所述的方法,其特征在于,根据所述多个维度资源的权重、所述节点上多个维度资源的使用率,确定所述节点的资源均衡度包括:根据所述节点上多个维度资源的使用率、所述目标作业请求的资源量,确定所述目标作业调度到所述节点后各个所述维度资源的使用率;根据所述多个维度资源的权重、所述目标作业调度所述节点后各个所述维度资源的使用率,得到所述节点的资源均衡度。7.根据权利要求6所述的方法,其特征在于,所述根据所述多个维度资源的权重、所述目标作业调度所述节点后各个所述维度资源的使用率,得到所述节点的资源均衡度,包括:所述根据所述多个维度资源的权重、所述目标作业调度所述节点后各个所述维度资源的使用率,得到所述节点的均衡度度量函数y,其中,y越小表示作业调度到节点后k维资源的使用率的离散程度越小,节点的资源均衡度越高,其中,w
i
为资源i的权重,d
i
为目标作业调度到节点后资源i的使用率,为k维资源使用率的平均值,i、j为大于1的自然数,k为大于等于2的自然数。8.根据权利要求1-7任一项所述的方法,其特征在于,所述将所述目标作业调度到所述目标节点之后,所述方法还包括:更新所述服务器集群中的资源使用率以及各个维度资源的挂起作业数;根据更新后的所述资源使用率以及各个维度资源的挂起作业数,更新所述服务器集群中各维度资源的权重。9.一种服务器,其特征在于,包括:
至少一个存储器,用于存储程序;至少一个处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行权利要求1-8任一项所述的方法。10.一种服务器集群,其特征在于,包括至少一个如权利要求9所述的服务器。
技术总结
一种作业调度方法,包括:获取目标作业;在服务器集群的资源利用率大于或等于资源利用率阈值的情况下,获取所述服务器集群中至少一个节点的多个维度资源的使用率以及各个所述维度资源的挂起作业数;基于所述多个维度资源的使用率以及所述挂起作业数,得到所述至少一个节点的资源均衡度;基于所述至少一个节点的资源均衡度,从所述服务器集群中选取到目标节点,并将所述目标作业调度到所述目标节点。在进行作业调度时,根据目标作业调度到节点后,节点的资源均衡度来确定目标节点,能够尽可能的保证集群中各维度资源的利用率均衡度,使得节点上能够尽可能多地运行作业,从而提高整个集群中节点的资源利用率。集群中节点的资源利用率。集群中节点的资源利用率。
技术研发人员:胡玲
受保护的技术使用者:超聚变数字技术有限公司
技术研发日:2023.06.05
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/