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

一种资源调度方法、装置、设备及存储介质与流程

2022-05-21 05:28:20 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种资源调度方法、装置、设备及存储介质。


背景技术:

2.云平台上的资源调度中,针对每一个任务的资源需求,考虑整个云平台的资源使用情况,安排具体的运行节点执行任务。
3.在实际的业务场景中,不同的任务是有不同优先度的,往往需要优先满足更重要的任务请求。目前,针对拥有不同优先度的任务,有以下两种资源调度方案:第一种,阻塞其他的任务资源请求,只考虑高优先度的任务,直到高优先度的任务资源请求得到满足。第二种,划分不同的资源池,保留部分资源给高优先度的任务。
4.这两种方案虽然能优先满足高优先度任务的资源请求,但是会降低整体的资源利用率以及调度效率。


技术实现要素:

5.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明第一方面提出一种资源调度方法,所述方法包括:
6.s1:从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队列中当前优先级最高的任务;
7.s2:获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间;
8.s3:根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点;
9.s4:将所述第一节点从所述节点集合中移除;
10.s5:按照s1-s4的方法处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。
11.可选的,步骤s3包括:
12.s31:根据所述第一资源量、所述节点的可用资源量和所述节点的当前任务的预估运行时间,确定可在当前时刻执行所述第一任务的节点,得到第一候选节点集合;
13.s32:若所述第一候选节点集合中包括多个第一候选节点,则按照预设评价参数确定所述多个第一候选节点的评分;
14.s33:选取所述评分最高的节点作为第一节点;
15.s34:若所述第一候选节点集合为空,则确定在所述当前时刻以后可最早执行所述第一任务的节点,并将所述节点作为第一节点。
16.可选的,所述预设评价参数包括所述第一候选节点的网络拓扑情况和资源健康情况,以及所述第一候选节点执行所述第一任务后的空闲资源情况。
17.可选的,步骤s34包括:
18.s341:对所述节点包括的当前任务按照所述预估运行时间的升序进行排序,得到所述节点对应的目标任务队列;
19.s342:从所述目标任务队列中的第一个任务开始,确定各个任务执行完成后释放的可用资源量;
20.s343:计算所述释放的可用资源量和所述节点的可用资源量的和,得到各个任务执行完成后所述节点的总可用资源量;
21.s344:根据所述各个任务执行完成后对应的可用资源量和所述第一资源量,确定所述节点可最早执行所述第一任务的目标时刻;
22.s345:根据各个节点对应的所述目标时刻,确定可最早执行所述第一任务的节点,得到第一节点。
23.可选的,所述步骤s2中的当前任务的预估运行时间通过以下步骤s21-步骤s22得到:
24.s21、获取所述当前任务的特征信息;所述特征信息包括所述当前任务的任务类型、任务名称、所述任务的关联人、所述任务占用资源量、所述任务的执行命令;
25.s22、将所述特征信息输入预先训练的目标预测模型,得到所述当前任务的预估运行时间。
26.可选的,所述步骤s22中的目标预测模型通过以下步骤s221-步骤s223训练得到:
27.s221、获取样本数据,所述样本数据包括执行完毕的历史任务的所述特征信息,以及所述历史任务的真实运行时间;
28.s222、将所述历史任务的特征信息输入初始模型,得到所述初始模型输出的预测运行时间;
29.s223、根据所述预测运行时间和所述真实运行时间之间的差值调整所述初始模型的参数,并继续训练所述初始模型,直到所述差值小于预设阈值时,结束所述训练,得到目标预测模型。
30.可选的,当所述步骤s221中的历史任务为深度学习任务时,所述历史任务的特征信息还包括:用于执行所述深度学习任务的模型的特征、所述模型的训练步数、平均每一步耗时。
31.本发明第二方面提出一种资源调度装置,所述装置包括:
32.第一获取模块,用于从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队列中当前优先级最高的任务;
33.第二获取模块,用于获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间;
34.第一确定模块,用于根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点;
35.移除模块,用于将所述第一节点从所述节点集合中移除;
36.处理模块,用于使用所述第一获取模块、所述第二获取模块、所述第一确定模块和所述移除模块,处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。
37.可选的,所述第一确定模块进一步用于:
38.根据所述第一资源量、所述节点的可用资源量和所述节点的当前任务的预估运行时间,确定可在当前时刻执行所述第一任务的节点,得到第一候选节点集合;
39.若所述第一候选节点集合中包括多个第一候选节点,则按照预设评价参数确定所述多个第一候选节点的评分;
40.选取所述评分最高的节点作为第一节点;
41.若所述第一候选节点集合为空,则确定在所述当前时刻以后可最早执行所述第一任务的节点,并将所述节点作为第一节点。
42.可选的,所述预设评价参数包括所述第一候选节点的网络拓扑情况和资源健康情况,以及所述第一候选节点执行所述第一任务后的空闲资源情况。
43.可选的,所述第一确定模块进一步用于:
44.对所述节点包括的当前任务按照所述预估运行时间的升序进行排序,得到所述节点对应的目标任务队列;
45.从所述目标任务队列中的第一个任务开始,确定各个任务执行完成后释放的可用资源量;
46.计算所述释放的可用资源量和所述节点的可用资源量的和,得到各个任务执行完成后所述节点的总可用资源量;
47.根据所述各个任务执行完成后对应的可用资源量和所述第一资源量,确定所述节点可最早执行所述第一任务的目标时刻;
48.根据各个节点对应的所述目标时刻,确定可最早执行所述第一任务的节点,得到第一节点。
49.可选的,所述第二获取模块中的当前任务的预估运行时间通过以下模块得到:
50.特征信息获取模块,用于获取所述当前任务的特征信息;所述特征信息包括所述当前任务的任务类型、任务名称、所述任务的关联人、所述任务占用资源量、所述任务的执行命令;
51.运行时间确定模块,用于将所述特征信息输入预先训练的目标预测模型,得到所述当前任务的预估运行时间。
52.可选的,所述特征信息获取模块中的目标预测模型通过以下模块训练得到:
53.样本数据获取模块,用于获取样本数据,所述样本数据包括执行完毕的历史任务的所述特征信息,以及所述历史任务的真实运行时间;
54.预测模块,用于将所述历史任务的特征信息输入初始模型,得到所述初始模型输出的预测运行时间;
55.训练模块,用于根据所述预测运行时间和所述真实运行时间之间的差值调整所述初始模型的参数,并继续训练所述初始模型,直到所述差值小于预设阈值时,结束所述训练,得到目标预测模型。
56.可选的,当所述样本数据获取模块中的历史任务为深度学习任务时,所述历史任
务的特征信息还包括:用于执行所述深度学习任务的模型的特征、所述模型的训练步数、平均每一步耗时。
57.本发明第三方面提出一种设备,所述设备包括处理器和存储器,所述存储器种存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的资源调度方法。
58.本发明第四方面提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的资源调度方法。
59.根据本发明提供的具体实施例,本发明具有以下技术效果:
60.本发明实施例提供的资源调度方法包括:s1:从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队列中当前优先级最高的任务;s2:获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间;s3:根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点;s4:将所述第一节点从所述节点集合中移除;按照s1-s4的方法处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。在上述方法中,根据第一资源量和资源快照,确定可最早执行第一任务的第一节点,将第一节点从节点集合中移除,这样给当前优先级最高的第一任务保留了第一节点的资源量,并且,按照s1-s4的方法处理资源请求队列中的其他任务,可以将剩余的资源分配给其他资源请求,从而满足了不同优先级任务的资源请求,提高了整体的资源利用率和调度效率。
61.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
62.为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其它附图。
63.图1为本发明实施例提供的第一种资源调度方法的步骤流程图;
64.图2为本发明实施例提供的第二种资源调度方法的步骤流程图;
65.图3为本发明实施例提供的第三种资源调度方法的步骤流程图;
66.图4为本发明实施例提供的第四种资源调度方法的步骤流程图;
67.图5为本发明实施例提供的第五种资源调度方法的步骤流程图;
68.图6为本发明实施例提供的资源调度装置的结构框图。
具体实施方式
69.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.图1为本发明实施例提供的第一种资源调度方法的步骤流程图。本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或无创造性的劳动可以包括更多或者更少的操作步骤。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
71.该方法可以包括如下步骤:
72.s1:从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队列中当前优先级最高的任务。
73.本发明实施例应用于云平台上的资源调度系统,该资源调度系统包括调度服务器和多个用于执行任务的节点。云平台是以计算和数据存储处理兼顾的综合云计算平台。
74.资源请求被上传到云平台中,调度服务器可以从云平台中获取待调度的资源请求队列,资源请求队列中包括多个资源请求,每个资源请求对应一个待执行的任务,资源请求具体是针对待执行的任务,请求调度服务器分配相应的资源,即分配相应的执行节点。
75.调度服务器获取队列中的资源请求,处理该资源请求,确定该资源请求对应的任务由哪个节点执行。
76.资源具体可以包括cpu(central processing unit,中央处理器)资源、内存资源、gpu(graphics processing unit,图形处理器)资源、带宽、i/o(input/output,输入输出)接口资源等。
77.用户在向云平台提交任务时,可以为任务设置优先级标签。对于调度服务器来说,根据优先级标签,按照优先级由大到小的顺序来逐个处理资源请求队列中的资源请求。
78.为了提高处理效率,可以将资源请求队列中的资源请求按照优先级由大到小的顺序进行排序。调度服务器在处理完一个资源请求后,将该资源请求从资源请求队列中移除,再调取资源请求队列中当前排在首位的资源请求进行处理。这样,调度服务器始终处理的是资源请求队列中当前优先级最高的任务,避免了调度服务器每次从资源请求队列中获取最高优先级的任务,提高了调度服务器的处理效率。
79.具体地,调度服务器从资源请求队列中获取优先级最高的第一资源请求,第一资源请求为针对第一任务的资源请求,调度服务器进一步获取该第一任务所需的第一任务量。
80.s2:获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间。
81.在本发明实施例中,节点是指一台用于执行任务的机器,该机器中包括cpu、gpu、带宽、i/o接口等资源。每个节点中部署的任务不同,节点本身的资源总量也不同。具体地,可以通过watch命令建立长连接,监听每一个节点上的运行任务,得到节点上的任务列表以及消耗的资源和可用资源数量,从而得到每个节点的资源快照。
82.资源快照可以包括节点的可用资源量和该节点中当前任务的预估运行时间。节点
的可用资源量为节点的总资源量与当前任务所消耗的资源量的差值。当前任务的预估运行时间可以通过把任务的特征信息输入目标预测模型中预测得到。
83.此外,还可以通过数理统计上的一些计算模型得到当前任务的预估运行时间。例如,使用同类任务中位值、分位值来作为当前任务的预估运行时间,或者根据规则定义公式,通过公式计算当前任务的预估运行时间。本发明实施例对于预估运行时间的获取方法不做具体限定。
84.s3:根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点。
85.具体地,资源快照包括节点的可用资源量和节点的当前任务的预估运行时间。当节点的当前可用资源量、或者当节点在执行完当前任务后,释放的可用资源量大于或等于第一资源量时,则该节点可以满足第一任务所需的资源量。
86.在可以满足第一任务所需的资源量的节点中,进一步确定可最早执行第一任务的节点。具体地,若节点的当前可用资源量大于或等于第一资源量,则该节点可在当前时刻执行第一任务;若节点在执行完当前任务后,即在当前任务对应的预估运行时间之后,节点的资源量大于或等于第一资源量,则该节点可在该预估运行时间之后执行第一任务。
87.确定各节点可执行第一任务的时间,将可最早执行第一任务的节点作为第一节点,用于在对应时刻执行第一任务。
88.s4:将所述第一节点从所述节点集合中移除。
89.在确定第一任务的分配结果为第一节点后,将第一节点r从节点集合r中移除,即:
90.r=r-r
91.这样,节点集合r可维持最新的状态,节点对应的资源快照可维持最新的状态,更新的资源快照可以直接供调度服务器处理下一个资源请求时使用,避免了重新获取云平台资源快照带来的消耗。
92.s5:按照s1-s4的方法处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。
93.若资源请求队列非空,则获取下一个资源请求,并按照s1-s4的方法进行处理。其中,获取的下一个资源请求对应的任务,始终是资源请求队列中优先级最高的任务。
94.对于资源调度来说,调度效率和整体的资源利用率是两个最需要考虑的问题。调度效率是指:针对每一个资源需求,尽可能快速地给出合适的分配方案。资源利用率是指:整个云平台的资源有多少能得到有效的利用。不恰当的资源分配方案,会导致资源碎片化,碎片的资源难以得到利用。
95.在本发明实施例中,第一,将资源请求队列中的任务按照优先级进行排序,调度服务器所处理的下一个任务始终是队列中优先级最高的任务,使得每次调度都能优先满足更重要的任务请求;第二,根据第一资源量和资源快照,确定可最早执行所述第一任务的第一节点,利用上述合理的调度规则提高了调度效率,并且将可最早执行第一任务的节点作为第一任务的执行节点,提高了资源利用率;第三,在确定优先级最高的第一任务的执行节点后,开始处理下一个资源请求,在保证高优先级任务优先满足的同时,也能满足次优先级的任务,规避了为了优先满足高优先级的任务,而阻塞所有次优先级任务的情况;第四,获取节点集合中各个节点的资源快照,是网络通讯密集型与计算的混合步骤,能有效利用i/o空
闲时间,且一次计算能满足大批量的资源请求;第五,根据第一资源量和资源快照,确定可最早执行第一任务的第一节点,是纯cpu计算步骤,能快速高效的得到资源分配方案。
96.综上,本发明实施例提供的资源调度方法,包括:s1:从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队列中当前优先级最高的任务;s2:获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间;s3:根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点;s4:将所述第一节点从所述节点集合中移除;按照s1-s4的方法处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。在上述方法中,根据第一资源量和资源快照,确定可最早执行第一任务的第一节点,将第一节点从节点集合中移除,这样给当前优先级最高的第一任务保留了第一节点的资源量,并且,按照s1-s4的方法处理资源请求队列中的其他任务,可以将剩余的资源分配给其他资源请求,从而满足了不同优先级任务的资源请求,提高了整体的资源利用率和调度效率。
97.在一种可能的实现方式中,在上述实施例的基础上,如图2所示,上述步骤2中的当前任务的预估运行时间通过以下步骤s21-步骤s22得到:
98.s21、获取所述当前任务的特征信息;所述特征信息包括所述当前任务的任务类型、任务名称、所述任务的关联人、所述任务占用资源量、所述任务的执行命令。
99.具体地,通过云平台的任务调度系统,获取节点上当前任务的特征信息。任务类型、任务名称、任务的关联人、任务的执行命令,这些信息对于任务的执行时间有决定性的作用。其中,任务的关联人,是指任务的提交者和所属团队。
100.s22、将所述特征信息输入预先训练的目标预测模型,得到所述当前任务的预估运行时间。
101.可以通过将所有节点的所有任务的特征信息输入预先训练的目标预测模型的方式,获得每个节点上每个当前任务的预估运行时间。由于当前任务已在节点上运行,该预估运行时间实际为任务的剩余运行时间。
102.具体地,若目标预测模型为p,针对任务t得到的预估运行时间为c,有:
103.c
t
=p(t)
104.若节点共有n个,ti(i∈[1,n])表示第i个节点上运行的任务集合,t为任务集合ti中的一个任务,i为n中的一个节点。则遍历所有节点的所有任务的伪代码为:
[0105]
for i in n;
[0106]
for t in ti;
[0107]ct
=p(t)
[0108]
在步骤s21-步骤s22中,通过将特征信息输入预先训练的目标预测模型,得到当前任务的预估运行时间,目标预测模型根据历史任务的样本数据训练得到,相比于其他计算方法,可以大幅提高运行时间的预测准确度。
[0109]
在一种可能的实现方式中,在上述实施例的基础上,如图3所示,上述步骤s22中的目标预测模型通过以下步骤s221-步骤s223训练得到:
[0110]
s221、获取样本数据,所述样本数据包括执行完毕的历史任务的所述特征信息,以
及所述历史任务的真实运行时间。
[0111]
收集云平台上的历史任务数据,该数据包括但不限于历史任务的任务类型、任务名称、任务的关联人、任务占用资源量、任务的执行命令、任务的真实运行时间等关键信息。
[0112]
通常来说,每一个任务都有一个标识,为了避免标识的重复,保证全局的唯一性,常用的方式是在标识前后加上随机数或者时间戳。
[0113]
历史任务数据为原始数据,其中存在大量的干扰数据,可以通过特征工程有效提取关键信息,去除随机数、时间戳等信息,从而得到样本数据集。将样本数据集进一步划分为训练集和测试集。
[0114]
s222、将所述历史任务的特征信息输入初始模型,得到所述初始模型输出的预测运行时间。
[0115]
初始模型中包含初始参数,是未经过训练调整的参数,将历史任务的特征信息输入初始模型,可以得到该模型输出的预测运行时间。
[0116]
s223、根据所述预测运行时间和所述真实运行时间之间的差值调整所述初始模型的参数,并继续训练所述初始模型,直到所述差值小于预设阈值时,结束所述训练,得到目标预测模型。
[0117]
通过将模型输出的预测运行时间与真实运行时间进行对比,得出差值,根据差值调整初始模型的参数,以使其输出的预测运行时间与真实运行时间更接近,这样可以提高模型预测的准确度。当预测运行时间与真实运行时间之间的差值小于预设阈值时,说明模型的准确度已经达到了设定的标准,将此时的模型作为目标预测模型。
[0118]
在一种可能的实现方式中,在上述实施例的基础上,当上述步骤s221中的历史任务为深度学习任务时,所述历史任务的特征信息还包括:用于执行所述深度学习任务的模型的特征、所述模型的训练步数、平均每一步耗时。
[0119]
在本发明实施例中,对于特殊的任务类型,如深度学习任务,还可以额外获取信息,如通过模型仓库获取模型特征、模型的训练步数、平均每一步耗时等信息,这些信息可以大幅提高模型预测的准确度。
[0120]
在步骤s221-步骤s223中,根据所述预测运行时间和所述真实运行时间之间的差值调整所述初始模型的参数,提高了目标预测模型预测运行时间的准确度。并且,模型训练与资源调度为异步进行,不会影响实际业务的处理效率。
[0121]
在一种可能的实现方式中,在上述实施例的基础上,如图4所示,上述步骤s3包括以下步骤s31-步骤s34:
[0122]
s31:根据所述第一资源量、所述节点的可用资源量和所述节点的当前任务的预估运行时间,确定可在当前时刻执行所述第一任务的节点,得到第一候选节点集合。
[0123]
具体地,当节点的可用资源量大于或等于第一资源量,且节点的当前任务的预估运行时间为0时,该节点可以在当前时刻执行第一任务,将该节点确定为第一候选节点。
[0124]
s32:若所述第一候选节点集合中包括多个第一候选节点,则按照预设评价参数确定所述多个第一候选节点的评分。
[0125]
若第一候选节点集合中包括多个第一候选节点,则可以按照预测评价参数对第一候选节点进行评分,从而选择一个最佳的执行节点。
[0126]
可选的,所述预设评价参数包括所述第一候选节点的网络拓扑情况和资源健康情
况,以及所述第一候选节点执行所述第一任务后的空闲资源情况。
[0127]
在本发明实施例中,可以通过节点上的网络拓扑标签,获取该节点的网络拓扑情况。网络拓扑情况具体是指该节点的网络接口数量、距离数据库的交换机层数、网络带宽、显卡间网络拓扑结构等信息。
[0128]
例如,对于使用两个gpu进行深度学习模型训练的任务,因为训练中有大量的数据交换,那么两个gpu之间是否有nvlink(nvidia link,nvidia连接)将作为一个重要的评价参数。nvlink作为一种网络拓扑情况的评价指标,用于中央处理器(cpu)与图形处理器(gpu)之间的连接,也可用于多个图形处理器之间的相互连接。对于两个节点,一个节点中的两个gpu之间存在nvlink,一个节点中的两个gpu之间不存在nvlink,则前者比后者评分更高。
[0129]
资源健康情况包括cpu、gpu等资源的负载情况、内存使用量、资源最近是否有出现过故障等情况。负载情况是衡量一个节点的资源繁忙程序的一个指标。负载越高,对机器的压力越大,考虑到负载均衡,调度服务器可以将任务分配到压力更小的机器上面。
[0130]
空闲资源情况是指执行完当前任务后,内存中的空闲资源量。当空闲资源量比较大时,资源碎片化程度越低,则评分越高。
[0131]
s33:选取所述评分最高的节点作为第一节点。
[0132]
根据网络拓扑情况、资源健康情况和空闲资源情况对每个第一候选节点进行评分,将评分最高的节点作为第一节点,用来执行第一任务。
[0133]
s34:若所述第一候选节点集合为空,则确定在所述当前时刻以后可最早执行所述第一任务的节点,并将所述节点作为第一节点。
[0134]
若第一候选节点集合为空,则说明当前时刻没有能满足执行第一任务的条件的节点,则获取当前时刻以后可最早执行第一任务的节点,将其作为执行第一任务的第一节点。
[0135]
在步骤s31-步骤s34中,若第一候选节点集合中包括多个第一候选节点,则按照预设评价参数确定多个第一候选节点的评分,选择评分最高的节点作为第一节点,这样,可以从网络拓扑情况、资源健康情况,以及空闲资源情况考虑,选取各方面条件最佳的节点作为第一任务的执行节点,以提高第一任务的执行效率,提高资源利用率。
[0136]
在一种可能的实现方式中,在上述实施例的基础上,如图5所示,上述步骤s34可以包括步骤s341-步骤s345:
[0137]
s341:对所述节点包括的当前任务按照所述预估运行时间的升序进行排序,得到所述节点对应的目标任务队列。
[0138]
当前时刻没有能够满足执行第一任务的条件的节点,则说明当前时刻各个节点均有任务在执行,或者当前时刻各个节点的可用资源量均小于第一资源量。那么,当一些节点的当前任务执行完毕后将可以释放一部分资源,从而可以满足第一任务的执行条件。
[0139]
因此,获取节点上部署的当前任务的预估运行时间,并按照预估运行时间的升序,对该节点上的任务进行排序,得到所述节点对应的目标任务队列。
[0140]
s342:从所述目标任务队列中的第一个任务开始,确定各个任务执行完成后释放的可用资源量。
[0141]
对于目标任务队列中的每一个任务,确定各个任务执行完成后可释放的可用资源量。
[0142]
s343:计算所述释放的可用资源量和所述节点的可用资源量的和,得到各个任务执行完成后所述节点的总可用资源量。
[0143]
资源快照中的可用资源量,为节点当前的可用资源量,当任务完成后释放一部分可用资源量,则可以得到各个任务执行完成后所述节点的总可用资源量。
[0144]
s344:根据所述各个任务执行完成后对应的可用资源量和所述第一资源量,确定所述节点可最早执行所述第一任务的目标时刻。
[0145]
节点上的任务是并行执行的,每一个任务有声明的资源需求,节点上资源有限,只能同时运行总和不超过节点上资源的任务。当某个任务执行完成后对应的可用资源量大于或等于第一资源量时,则该任务执行完成后,可执行第一任务。
[0146]
获取可用资源量最先达到第一资源量的时刻,将其作为该节点可最早执行第一资源请求的目标时刻。
[0147]
利用上述步骤s341-步骤s344,可用得到各个节点对应的目标时刻。
[0148]
s345:根据各个节点对应的所述目标时刻,确定可最早执行所述第一任务的节点,得到第一节点。
[0149]
从各个节点对应的所述目标时刻中,选择最早的目标时刻,确定该目标时刻对应的节点,将该节点作为执行第一任务的第一节点。
[0150]
对步骤s341-步骤s345举例如下:
[0151]
节点n上当前时刻没有空闲资源,有3个当前任务a、b、c,分别占用的资源量为3、2、1,任务a、b、c的预估运行时间分别为30分钟、20分钟、10分钟,即任务a、b、c分别在30,20,10分钟后执行完成。第一任务t的第一资源量为3。
[0152]
首先,对节点n包括的当前任务按照预估运行时间的升序进行排序,得到的目标任务队列为:{c,b,a}。然后,从目标任务队列中的第一个任务开始,确定c、b、a三个任务执行完成后释放的可用资源量分别为:1、2、3。然后,计算释放的可用资源量和节点的可用资源量的和。由于节点n上当前时刻没有空闲资源,即当前时刻节点的可用资源量为0。在执行完任务c后,节点的总可用资源量为1,执行完任务b后,节点的总可用资源量为1 2=3,执行完任务c后,节点的总可用资源量为1 2 3=6。由此可知,在任务b执行完成后,节点的总可用资源量即可满足第一资源量的需求。
[0153]
因此,节点n可最早执行第一任务的目标时刻为执行完任务b的时刻。
[0154]
应用上述方法,依次确定各个节点对应的目标时刻,从中确定可最早执行第一任务t的节点,得到第一节点。
[0155]
在步骤s341-步骤s345中,根据各个任务执行完成后对应的可用资源量和第一资源量,确定节点可最早执行第一任务的目标时刻,并根据各个节点对应的目标时刻,确定可最早执行第一任务的节点,得到第一节点。这样,针对每一个资源需求,可以分配到最早可执行任务的节点,提高了任务的执行效率,并且,仅当节点的总可用资源量满足第一资源量要求时,才开始执行任务,提高了资源利用率,避免了资源碎片化。
[0156]
图6为本发明实施例提供的资源调度装置的结构框图。
[0157]
如图6所示,该资源调度装置600包括:
[0158]
第一获取模块601,用于从资源请求队列中获取待调度的第一资源请求,并获取执行所述第一资源请求对应的第一任务所需的第一资源量;所述第一任务为所述资源请求队
列中当前优先级最高的任务;
[0159]
第二获取模块602,用于获取用于执行所述资源请求队列中的任务的节点集合,并获取所述节点集合中各个节点的资源快照,所述资源快照包括所述节点的可用资源量和所述节点的当前任务的预估运行时间;
[0160]
第一确定模块603,用于根据所述第一资源量和所述资源快照,确定可最早执行所述第一任务的第一节点;
[0161]
移除模块604,用于将所述第一节点从所述节点集合中移除;
[0162]
处理模块605,用于使用所述第一获取模块、所述第二获取模块、所述第一确定模块和所述移除模块,处理所述资源请求队列中的下一个资源请求,直到所述资源请求队列为空。
[0163]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0164]
在本发明提供的又一实施例中,还提供了一种设备,所述设备包括处理器和存储器,所述存储器种存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本发明实施例中所述的资源调度方法。
[0165]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现本发明实施例中所述的资源调度方法。
[0166]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0167]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0168]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0169]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

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

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

相关文献