本发明涉及计算机,特别涉及一种工作流任务的资源分配方法、装置、设备及介质。
背景技术:
1、工作流(workflow)已广泛在各个领域服务于大规模应用。工作流执行时需要大量资源,当遇到连续的工作流请求和意外的资源请求峰值时,工作流的计算资源需求可能是高度动态的,工作流不断变化的资源需求给工作流引擎的资源分配带来了巨大的管理负担,严重降低了工作流的执行效率。因此,高效的资源分配是工作流执行中的一个关键问题。
2、相关技术中,通过预测模型进行资源分配,但这样需要根据以前的数据进行收集和建模,前期准备工作需要消耗大量资源,计算复杂度和资源开销过高,阻碍了工作流管理引擎的自动运行流程。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种工作流任务的资源分配方法、装置、设备及介质,能够根据当前资源使用情况进行最优资源分配。其具体方案如下:
2、第一方面,本技术公开了一种工作流任务的资源分配方法,包括:
3、获取工作流任务以及所述工作流任务对应的任务资源请求量,统计历史任务对应的累计资源请求总量;
4、根据集群内每个节点的节点资源剩余量确定集群资源剩余总量,并根据所述节点资源剩余量筛选出最大节点资源剩余量;
5、基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量,利用资源缩放法计算出针对所述工作流任务的理论资源分配量;
6、基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量、所述最大节点资源剩余量和所述理论资源分配量,根据资源评估规则确定针对所述工作流任务的实际资源分配量。
7、可选的,所述根据集群内每个节点的节点资源剩余量确定集群资源剩余总量之前,还包括:
8、获取集群的节点列表和各节点上的容器组列表;
9、通过遍历所述容器组列表中的每个容器组,确定每个容器组的容器组资源请求量;
10、根据节点与容器组的对应关系,确定每个节点的节点资源请求量;
11、通过遍历所述节点列表中的每个节点,确定各节点的节点资源总量;
12、根据各节点的节点资源总量和所述节点资源请求量的差值,得到各节点的节点资源剩余量。
13、可选的,所述资源评估规则为根据第一评估条件、第二评估条件、第三评估条件、第四评估条件、第五评估条件和第六评估条件组成的;
14、所述基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量、所述最大节点资源剩余量和所述理论资源分配量,根据资源评估规则确定针对所述工作流任务的实际资源分配量,包括:
15、根据所述第一评估条件和所述第二评估条件进行资源评估;
16、若满足所述第一评估条件且满足所述第二评估条件,则根据所述第三评估条件和所述第四评估条件确定针对所述工作流任务的实际资源分配量;
17、若不满足所述第一评估条件但满足所述第二评估条件,则根据所述第四评估条件和所述第五评估条件确定针对所述工作流任务的实际资源分配量;
18、若满足所述第一评估条件但不满足所述第二评估条件,则根据所述第三评估条件和所述第六评估条件确定针对所述工作流任务的实际资源分配量;
19、若不满足所述第一评估条件且不满足所述第二评估条件,则根据所述理论资源分配量确定针对所述工作流任务的实际资源分配量;
20、其中,所述资源分配包括cpu分配和内存分配;所述累计资源请求总量包括累计cpu请求总量、累计内存请求总量;所述节点资源剩余量包括节点cpu剩余量、节点内存剩余量;所述集群资源剩余总量包括集群cpu剩余总量、集群内存剩余总量;所述最大节点资源剩余量包括最大节点cpu剩余量、最大节点内存剩余量;所述任务资源请求量包括任务cpu请求量、任务内存请求量;所述理论资源分配量包括理论cpu分配量、理论内存分配量;
21、其中,所述第一评估条件为累计cpu请求总量小于集群cpu剩余总量,所述第二评估条件为累计内存请求总量小于集群内存剩余总量,所述第三评估条件为任务cpu请求量小于最大节点cpu剩余量,所述第四评估条件为任务内存请求量小于最大节点内存剩余量,所述第五评估条件为理论cpu分配量小于最大节点cpu剩余量,所述第六评估条件为理论内存分配量小于最大节点内存剩余量。
22、可选的,所述根据所述第三评估条件和所述第四评估条件确定针对所述工作流任务的实际资源分配量,包括:
23、若满足所述第三评估条件,则将所述任务cpu请求量作为实际cpu分配量,否则,将所述最大节点cpu剩余量与预设资源分配系数的乘积作为实际cpu分配量;
24、若满足所述第四评估条件,则将所述任务内存请求量作为实际内存分配量,否则,将所述最大节点内存剩余量与预设资源分配系数的乘积作为实际内存分配量。
25、可选的,所述根据所述第四评估条件和所述第五评估条件确定针对所述工作流任务的实际资源分配量,包括:
26、若满足所述第四评估条件,则将所述任务内存请求量作为实际内存分配量,否则,将所述最大节点内存剩余量与预设资源分配系数的乘积作为实际内存分配量;
27、若满足所述第五评估条件,则将所述理论cpu分配量作为实际cpu分配量,否则,将所述最大节点cpu剩余量与预设资源分配系数的乘积作为实际cpu分配量。
28、可选的,所述根据所述第三评估条件和所述第六评估条件确定针对所述工作流任务的实际资源分配量,包括:
29、若满足所述第三评估条件,则将所述任务cpu请求量作为实际cpu分配量,否则,将所述最大节点cpu剩余量与预设资源分配系数的乘积作为实际cpu分配量;
30、若满足所述第六评估条件,则将所述理论内存分配量作为实际内存分配量,否则,将所述最大节点内存剩余量与预设资源分配系数的乘积作为实际内存分配量。
31、可选的,所述根据所述理论资源分配量确定针对所述工作流任务的实际资源分配量,包括:
32、将所述理论cpu分配量作为实际cpu分配量;
33、将所述理论内存分配量作为实际内存分配量。
34、可选的,所述基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量,利用资源缩放法计算出针对所述工作流任务的理论资源分配量,包括:
35、计算所述集群资源剩余总量与所述累计资源请求总量的比值;
36、将所述比值与所述任务资源请求量的乘积,作为针对所述工作流任务的理论资源分配量。
37、第二方面,本技术公开了一种工作流任务的资源分配装置,包括:
38、资源请求量确定模块,用于获取工作流任务以及所述工作流任务对应的任务资源请求量,统计历史任务对应的累计资源请求总量;
39、资源剩余量确定模块,用于根据集群内每个节点的节点资源剩余量确定集群资源剩余总量,并根据所述节点资源剩余量筛选出最大节点资源剩余量;
40、理论资源分配量确定模块,用于基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量,利用资源缩放法计算出针对所述工作流任务的理论资源分配量;
41、实际资源分配量确定模块,用于基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量、所述最大节点资源剩余量和所述理论资源分配量,根据资源评估规则确定针对所述工作流任务的实际资源分配量。
42、第三方面,本技术公开了一种电子设备,包括:
43、存储器,用于保存计算机程序;
44、处理器,用于执行所述计算机程序,以实现前述的工作流任务的资源分配方法。
45、第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的工作流任务的资源分配方法。
46、本技术中,获取工作流任务以及所述工作流任务对应的任务资源请求量,统计历史任务对应的累计资源请求总量;根据集群内每个节点的节点资源剩余量确定集群资源剩余总量,并根据所述节点资源剩余量筛选出最大节点资源剩余量;基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量,利用资源缩放法计算出针对所述工作流任务的理论资源分配量;基于所述任务资源请求量、所述集群资源剩余总量、所述累计资源请求总量、所述最大节点资源剩余量和所述理论资源分配量,根据资源评估规则确定针对所述工作流任务的实际资源分配量。
47、由此可见,根据任务资源请求量、集群资源剩余总量、累计资源请求总量、最大节点资源剩余量和理论资源分配量这些能够反映资源实时状态的数据,利用资源评估规则确定针对工作流任务的实际资源分配量,能够得到符合当前资源情况的最优资源分配,针对连续的工作流请求和意外的请求资源峰值做出适当的资源分配,并且,通过根据资源情况利用资源缩放法计算出针对工作流任务的理论资源分配量,能够保障资源分配的合理性,实现高效自适应资源分配,避免通过预测模型进行资源分配带来的大量资源消耗,降低资源分配成本,提高资源分配效率。