资源调度方法及装置与流程

文档序号:32345039发布日期:2022-11-26 11:04阅读:52来源:国知局
资源调度方法及装置与流程

1.本发明涉及分布式技术领域,尤其涉及资源调度方法及装置。


背景技术:

2.在分布式单元化金融业务系统中,通过智能批量调度机制实现批量作业合理分配,使得金融业务系统各项资源利用率最大化,避免传统作业分配模式下金融业务系统资源利用率低,作业处理效率慢的问题。
3.现有的金融业务系统多采用随机作业分配方式,或者围绕单种资源比如按照客户地域或者号段等各种单一规则分配进行作业调度。
4.现有技术的不足在于:资源分配不均,利用率低。


技术实现要素:

5.本发明实施例提供一种资源调度方法,用以解决资源分配不均,利用率低的问题,该方法包括:
6.确定不同类别的作业对各类资源的需求,其中,各类别的作业对各类资源的需求是根据业务系统中各工作节点处理不同类别的作业所消耗的各类资源数量构建的样本数据集分析得到的,所述业务系统是通过智能批量调度机制实现批量作业分配的分布式业务系统;
7.在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得最优作业分配策略;
8.根据最优作业分配策略对业务系统的资源进行调度。
9.本发明实施例还提供一种资源调度装置,用以解决资源分配不均,利用率低的问题,该装置包括:
10.需求模块,用于确定不同类别的作业对各类资源的需求,其中,各类别的作业对各类资源的需求是根据业务系统中各工作节点处理不同类别的作业所消耗的各类资源数量构建的样本数据集分析得到的,所述业务系统是通过智能批量调度机制实现批量作业分配的分布式业务系统;
11.策略模块,用于在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得最优作业分配策略;
12.调度模块,用于根据最优作业分配策略对业务系统的资源进行调度。
13.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述资源调度方法。
14.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法。
15.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法。
16.本发明实施例中,与现有技术中随机作业分配或者围绕单种资源各种单一规则分配的技术方案相比,首先确定作业的类别后,分析出各种类作业所消耗的资源,以此为依据,按照多维有界背包算法来对资源进行调度,由于多维有界背包问题能够寻求出资源的最优分配,因此可以使得系统各类资源利用率最大化,从而提高批量作业处理效率,最终提升整个分布式系统性能;
17.进一步的,由于在资源调度时,按照作业的类别依次进行调度,基于当前的待处理作业与资源总数,通过迭代求解资源最优分配问题,直至处理完所有类别的作业,可以进一步提高批量作业处理效率,提升整个分布式系统性能。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
19.图1为本发明实施例中资源调度方法实施流程示意图;
20.图2为本发明实施例中批量调度系统架构示意图;
21.图3为本发明实施例中资源调度实施流程示意图;
22.图4为本发明实施例中资源调度装置结构示意图;
23.图5为本发明实施例中计算机设备示意图。
具体实施方式
24.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
25.发明人在发明过程中注意到:
26.在分布式单元化金融业务系统中,通过智能批量调度机制实现批量作业合理分配,使得金融业务系统各项资源利用率最大化,避免传统作业分配模式下金融业务系统资源利用率低,作业处理效率慢的问题。现有的金融业务系统多采用随机作业分配方式,或者围绕单种资源比如按照客户地域或者号段等各种单一规则分配进行作业调度,使得整个分布式金融业务系统总资源分配不均,利用率低。
27.基于此,需要一种方案,从分布式系统多维度的总资源量出发,围绕各类作业对于各类资源的需求量,由批量调度模块进行批量作业最优切分,使得系统吞吐量效益最大化,保证系统资源利用率最大化,从而提升系统整体的作业处理性能。
28.下面结合实施例进行说明。
29.图1为资源调度方法实施流程示意图,如图1所示,可以包括:
30.步骤101、确定不同类别的作业对各类资源的需求,其中,各类别的作业对各类资源的需求是根据业务系统中各工作节点处理不同类别的作业所消耗的各类资源数量构建
的样本数据集分析得到的,所述业务系统是通过智能批量调度机制实现批量作业分配的分布式业务系统;
31.步骤102、在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得最优作业分配策略;
32.步骤103、根据最优作业分配策略对业务系统的资源进行调度。
33.方案中,对于多维有界背包问题,背包问题是一种组合优化问题。给定一组物品,每种物品都有对应的重量和价值。在背包限定的总重量内,给出一种策略使得装进背包的物品总价值最高。当这组物品具有多种属性时,即构成了多维有界背包问题。
34.实施时,需要构建不同类别作业对各类资源消耗情况的样本数据集;分析任一类型单位大小作业的资源需求量;基于多维有界背包算法构建最优调度问题模型,并进行求解;迭代分析调度策略,直至所有作业调度完成。
35.具体的,首先通过记录分布式系统中所有批量工作节点处理不同类别批量作业是所消耗的各类资源数量,构建样本数据集供后续分析。
36.然后分析样本数据集,计算出单位大小的不同类别作业对各类资源的需求量。
37.再基于目前所有的待处理作业和分布式系统的各类资源总数构建系统收益最大化模型,求解该问题得到最优作业调度策略,使得系统资源利用最大化。
38.最后依据求解出的最优分配策略进行作业调度,并将已调度的作业从待处理作业集合中去除,然后基于当前待处理作业集合与系统资源总量再次进行最优问题求解,重复上述步骤直至处理完所有作业。
39.下面进行更具体的说明。
40.1、分析批量节点处理各类作业时的各项资源消耗情况,构建样本数据集。
41.根据批量作业文本内容进行批量作业分类,记录分布式系统中各个批量工作节点处理不同类别作业时的系统资源分配,如分配的cpu个数、内存容量、磁盘容量等,并记录处理该类作业的文本大小。
42.2、分析样本数据集,获取处理每一类别批量作业所需的资源数量。
43.分析样本数据集信息,计算任一类别作业所需资源数量的加权平均值,得到该类作业对各类资源需求量。假设在一定时间阈值内,分布式系统内所有批量工作节点共处理nb大小的a类作业,共消耗mb内存,则单位大小a类作业对于内存资源的需求为m/n。
44.3、基于多维有界背包问题算法,构建多维度资源分配问题模型,分析最优资源分配策略。
45.实施中,按以下方式确定业务系统收益最大化:
46.作业k相对资源需求的系统吞吐量受益pk与作业k的平均资源消耗成反比:
[0047][0048]
其中,pk表示作业k相对资源需求的系统吞吐量收益,w
i,k
代表作业k对第i类资源的需求量,ci表示i类资源的数量,m代表资源种类;
[0049]
分布式系统吞吐量收益最大化表达为:
[0050][0051][0052]ak
≤jk,k=1,......,n,
[0053]
其中,pk表示作业k相对资源需求的系统吞吐量收益,ak表示作业k的个数,w
i,k
代表作业k对第i类资源的需求量,jk表示k类批量作业个数,m代表资源类别总数,n代表批量作业类别总数,ak为整数。
[0054]
具体的,从资源分配角度出发,围绕作业对各类资源需求量进行分析,通过分布式系统内所有工作节点总资源利用率最大化来实现批量作业智能分配,且该最优问题受各类资源数量限制,即类同于多维有界背包问题。
[0055]
假设批量作业资源需求为r(r1,r2,ri,

,rm),其中m代表需要的资源种类,ri代表批量作业对i类资源的需求量。分布式系统中所有批量工作节点共提供的资源数量为c(c1,c2,ci,

,cm),其中cm表示m类资源的数量。待处理的批量作业集合为j(j1,j2,ji,

,jn),其中n代表批量作业的类别总数,ji表示i类批量作业的数量,作业k对资源的需求记为wq(w
1k
,w
2k
,w
ik


,w
mk
),w
ik
代表作业k对第i类资源的需求量。
[0056]
利用ak表示作业k的个数,通过分析资源分配问题,最终求得资源分配策略a(a1,a2,ai,

,an),其中ai表示调用了ai个ji作业。
[0057]
利用给定作业k的平均资源消耗衡量作业k相对资源需求的系统吞吐量收益pk,即如下公式(1):
[0058][0059]
则分布式系统吞吐量收益最优问题表达如下公式(2):
[0060][0061][0062]ak
≤jk,k=1,......,n
[0063]
其中ak为整数。利用深度优先搜索方法求解该最优化问题。
[0064]
4、基于多维度资源分配问题模型的解集合进行作业调度。
[0065]
实施中,还可以进一步包括:
[0066]
每次确定当前待调度的各类作业组成的队列后,确定队列中不同类别的作业对各类资源的需求;
[0067]
在队列中选择一个类别的作业,在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得这一个类别的作业的最优作业分配策略;
[0068]
针对这一个类别的作业,根据最优作业分配策略对业务系统的资源进行调度后,将这一个类别的作业移出队列;
[0069]
对队列中的每一类别的作业进行调度后移除队列,直至队列中没有待调度的作业。
[0070]
具体的,通过求解公式(2)得到最优作业调度策略a1,批量调度模块按照a1进行作业分配,并将a1所包含对应类别对应数量的作业从待处理作业集合中去除,基于剩下的作业集合重新进行最优调度策略分析,重复上述步骤直至所有作业调度完成,即完成了此次批量作业任务。
[0071]
下面以实例进行说明。
[0072]
首先构建样本数据集,记录各类作业对系统各类资源的需求量。依据样本数据集,分析单位大小特定类别的批量作业的资源需求量,并按类别进行存储。基于多维有界背包算法构建多维资源最优分配问题,通过求解该问题获得最优作业分配策略。依据计算出的最优分配策略进行作业调度,更新待处理作业数量和资源总数,重新构建问题模型并求解,重复上述步骤直到所有作业处理完毕。
[0073]
图2为批量调度系统架构示意图,如图2所示,至少一个可以实现资源调度的功能架构可以包括:
[0074]
1、作业资源需求分析模块:分析指定时间阈值内的样本数据集,计算任一类别的单位大小批量作业对各类资源的需求量。
[0075]
2、作业资源需求存储模块:将作业资源需求分析模块计算出的作业资源需求量按作业类别存储到map(映射)数据结构中。
[0076]
3、待处理作业存储模块:分析待处理作业类别,依据作业类别从作业资源需求存储模块中获取单位大小的该类作业所需资源数量,然后依据当前作业实际大小进行计算,然后存储待处理作业与对应所需资源数量的映射关系供调度策略计算模块使用。
[0077]
4、调度策略计算模块:基于目前系统各类资源总数量和待处理作业对资源的需求量构建多维有界背包算法问题模型,然后利用深度搜索优先方法求解该问题,得到最优资源分配策略。
[0078]
5、作业调度模块:依据调度策略计算模块计算出的最优分配策略,进行作业调度。并反馈给待处理作业存储模块,将已经分配的作业从该模块中去除。
[0079]
6、系统资源统计模块:统计分布式系统当前可提供的各类资源数量。
[0080]
图3为资源调度实施流程示意图,如图3所示,依据基于多维有界背包问题的分布式批量作业调度方案,至少可以在图2所示的批量调度系统,按如下方式实施:
[0081]
步骤301、构建样本数据集,记录分布式系统中所有批量工作节点处理各类批量作业时的资源消耗情况。
[0082]
根据批量作业文本内容进行作业分类,从作业类别角度出发,实时记录分布式系统各个批量工作节点处理特定大小、特定类别作业时,消耗的cpu、内存、磁盘等资源。
[0083]
步骤302、根据样本数据集,分析任一类别批量作业对各类资源的需求量,并按类别进行存储。
[0084]
实施中,不同类别的作业对各类资源的需求是以map结构存储的。
[0085]
avascript的对象(object)本质上是键值对的集合(hash结构),但是只能用字符
串作为键。这给它的使用带来了很大的限制。为了解决这个问题,提供了map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,object结构提供了“字符串-值”的对应,map结构提供了“值-值”对应,是一种更完善的hash结构实现。
[0086]
具体的,分析指定时间阈值内的样本数据集,计算该时间内单位大小(以byte作为作业大小的基本单位)作业对系统内各类资源的消耗量,即代表该类作业的资源需求。利用map结构存储各类作业的资源需求,例如单位大小a类作业,需要3类资源,每一类资源数量分别为r1,r2,r3,则存储为map(a,{r1,r2,r3}),当处理100b大小的作业时,需要的资源则为{100r1,100r2,100r3}。
[0087]
步骤303、构建多维有界背包算法模型,分析资源利用率最大化的分配策略。
[0088]
在有限的系统资源限制下,通过智能化的作业分配,实现系统收益最大化,依此构建多维有界背包算法模型。作业k相对资源需求的系统吞吐量受益pk与作业k的平均资源消耗成反比,即:
[0089][0090]
其中,w
ik
代表作业k对第i类资源的需求量,ci表示i类资源的数量,m代表资源种类。则分布式系统吞吐量收益最大化表达为:
[0091][0092][0093]ak
≤jk,k=1,......,n
[0094]
其中,pk表示作业k相对资源需求的系统吞吐量收益,ak表示作业k的个数,w
ik
代表作业k对第i类资源的需求量,jk表示k类批量作业个数,m代表资源类别总数,n代表批量作业类别总数,ak为整数。
[0095]
实施中,最优作业分配策略是根据吞吐量收益最大化利用深度优先搜索方法求解出的。
[0096]
具体的,可以利用深度优先搜索方法求解上述最大化问题从而得到最优资源分配策略a。
[0097]
步骤304、基于现有资源迭代分析,重复构建最优化问题并求解,基于解集合进行资源调度。
[0098]
通过步骤303的最优问题分析,得到调度策略a,则批量调度模块依据该策略进行作业分配,并将已分配的作业从作业集合中剔除,再次基于现有的资源总数和作业情况,进行最优问题建模与求解,重复该操作,直到所有作业调度完成。
[0099]
本发明实施例中还提供了一种资源调度装置,如下面的实施例所述。由于该装置解决问题的原理与资源调度方法相似,因此该装置的实施可以参见资源调度方法的实施,重复之处不再赘述。
[0100]
图4为资源调度装置结构示意图,如图4所示,可以包括:
[0101]
需求模块401,用于确定不同类别的作业对各类资源的需求,其中,各类别的作业对各类资源的需求是根据业务系统中各工作节点处理不同类别的作业所消耗的各类资源数量构建的样本数据集分析得到的,所述业务系统是通过智能批量调度机制实现批量作业分配的分布式业务系统;
[0102]
策略模块402,用于在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得最优作业分配策略;
[0103]
调度模块403,用于根据最优作业分配策略对业务系统的资源进行调度。
[0104]
实施中,需求模块进一步用于每次确定当前待调度的各类作业组成的队列后,确定队列中不同类别的作业对各类资源的需求;
[0105]
策略模块进一步用于在队列中选择一个类别的作业,在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得这一个类别的作业的最优作业分配策略;
[0106]
调度模块进一步用于针对这一个类别的作业,根据最优作业分配策略对业务系统的资源进行调度后,将这一个类别的作业移出队列;
[0107]
调度模块进一步用于对队列中的每一类别的作业进行调度后移除队列,直至队列中没有待调度的作业。
[0108]
实施中,需求模块进一步用于以map结构存储不同类别的作业对各类资源的需求。
[0109]
实施中,策略模块进一步用于按以下方式确定业务系统收益最大化:
[0110]
作业k相对资源需求的系统吞吐量受益pk与作业k的平均资源消耗成反比:
[0111][0112]
其中,pk表示作业k相对资源需求的系统吞吐量收益,w
i,k
代表作业k对第i类资源的需求量,ci表示i类资源的数量,m代表资源种类;
[0113]
分布式系统吞吐量收益最大化表达为:
[0114][0115][0116]ak
≤jk,k=1,......,n,
[0117]
其中,pk表示作业k相对资源需求的系统吞吐量收益,ak表示作业k的个数,w
i,k
代表作业k对第i类资源的需求量,jk表示k类批量作业个数,m代表资源类别总数,n代表批量作业类别总数,ak为整数。
[0118]
实施中,策略模块进一步用于根据吞吐量收益最大化利用深度优先搜索方法求解出最优作业分配策略。
[0119]
在实施本发明实施例提供的技术方案时,可以按如下方式实施。
[0120]
图5为计算机设备示意图,如图5所示,计算机设备中包括:
[0121]
处理器500,用于读取存储器520中的程序,执行下列过程:
[0122]
确定不同类别的作业对各类资源的需求,其中,各类别的作业对各类资源的需求是根据业务系统中各工作节点处理不同类别的作业所消耗的各类资源数量构建的样本数据集分析得到的,所述业务系统是通过智能批量调度机制实现批量作业分配的分布式业务系统;
[0123]
在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得最优作业分配策略;
[0124]
根据最优作业分配策略对业务系统的资源进行调度;
[0125]
收发机510,用于在处理器500的控制下接收和发送数据。
[0126]
实施中,进一步包括:
[0127]
每次确定当前待调度的各类作业组成的队列后,确定队列中不同类别的作业对各类资源的需求;
[0128]
在队列中选择一个类别的作业,在业务系统能提供的各类资源总数下,基于多维有界背包算法构建业务系统收益最大化的资源最优分配问题,通过求解资源最优分配问题获得这一个类别的作业的最优作业分配策略;
[0129]
针对这一个类别的作业,根据最优作业分配策略对业务系统的资源进行调度后,将这一个类别的作业移出队列;
[0130]
对队列中的每一类别的作业进行调度后移除队列,直至队列中没有待调度的作业。
[0131]
实施中,不同类别的作业对各类资源的需求是以map结构存储的。
[0132]
实施中,按以下方式确定业务系统收益最大化:
[0133]
作业k相对资源需求的系统吞吐量受益pk与作业k的平均资源消耗成反比:
[0134][0135]
其中,pk表示作业k相对资源需求的系统吞吐量收益,w
i,k
代表作业k对第i类资源的需求量,ci表示i类资源的数量,m代表资源种类;
[0136]
分布式系统吞吐量收益最大化表达为:
[0137][0138][0139]ak
≤jk,k=1,......,n,
[0140]
其中,pk表示作业k相对资源需求的系统吞吐量收益,ak表示作业k的个数,w
i,k
代表作业k对第i类资源的需求量,jk表示k类批量作业个数,m代表资源类别总数,n代表批量作业类别总数,ak为整数。
[0141]
实施中,最优作业分配策略是根据吞吐量收益最大化利用深度优先搜索方法求解
出的。
[0142]
其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
[0143]
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法。
[0144]
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法。
[0145]
本发明实施例提供的技术方案中,先记录各类批量作业所需资源,分析和计算单位大小的任一类别批量作业对资源的需求量,再利用作业的平均资源消耗的反比数衡量作业的吞吐量收益,求解系统收益最大化的资源分配策略,然后基于当前的待处理作业与资源总数,迭代求解资源最优分配问题,直至处理完所有作业。
[0146]
方案中,分布式单元化金融业务系统的批量作业调度由调度节点根据待处理的批量作业资源需求量以及分布式系统总资源量进行智能调度,使得系统各类资源利用率最大化,从而极大的提高批量作业处理效率,最终提升整个分布式系统性能。
[0147]
本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定,本技术获取的个人、客户和人群等相关的个人身份数据、操作数据、行为数据等多种类型的数据,均已获得授权。
[0148]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0149]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0150]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0151]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0152]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1