基于云服务的资源分配方法及装置与流程

文档序号:38460194发布日期:2024-06-24 14:46阅读:21来源:国知局
基于云服务的资源分配方法及装置与流程

本技术涉及资源分配,特别涉及一种基于云服务的资源分配方法及装置。


背景技术:

1、在运用大数据分析技术时,为了提高数据分析效率,可以将大规模的数据分析作业转化为大量的高并行化计算任务,并利用分布式部署的集群实现该大量的高并行化计算任务,以实现高效的数据分析。那么,如何对任务和集群中的资源进行调度是非常重要的。

2、目前,在对任务进行资源调度时,通常先预估任务的算力需求,然后根据该算力需求为任务分配资源。

3、但是,该调度方式的调度粒度较粗,导致集群中资源的利用率较低。


技术实现思路

1、本技术提供了一种基于云服务的资源分配方法及装置。本技术能够提高作业和资源的匹配度,实现更精准的资源分配,从而提高资源的利用率。本技术提供的技术方案如下:

2、第一方面,本技术提供了一种基于云服务的资源分配方法。该方法可由云平台执行。该方法包括:获取资源集群中资源的能力等级信息,资源集群包括至少一种异构资源,异构资源包括多种子资源,多种子资源具有同种能力但能力等级不同;获取待分配资源的作业的负载情况;基于负载情况和能力等级信息,为作业分配资源集群中的资源。

3、在该基于云服务的资源分配方法中,由于需要获取资源集群中资源的能力等级信息,该能力等级信息能够指示资源集群中资源的能力等级,根据该能力等级信息能够对具有不同能力的资源进行区分。在为作业分配资源集群中的资源时,能够考虑异构资源能力不均衡的特点,结合资源的能力等级和作业的负载情况,实现资源和作业的双向匹配,能够提高作业和资源的匹配度,实现更精准的资源分配,从而提高资源的利用率,并有助于改善作业的计算并行度。

4、在一种实现方式中,获取待分配资源的作业的负载情况,包括:获取作业的负载指标,负载指标包括以下一个或多个:作业的执行逻辑、数据并行度、作业算子及其涉及的数据量;基于负载指标,获取作业的负载情况。作业的执行逻辑用于指示作业的整体实现逻辑。可选的,作业的执行逻辑可以通过作业的执行计划和有向无环图反映。执行计划用于反映实现作业所需的算子和数据,以及作业中任务所需的算力。有向无环图用于反映作业中执行阶段的映射关系和运算逻辑。作业的数据并行度用于指示作业的组成单元(如执行任务)能够被并行执行的程度。作业可以通过算法实现,算法通常包括一个或多个作业算子,作业算子是对作业的操作对象执行的一项或多项操作的集合。作业算子涉及的数据量是执行作业算子需要处理的数据量,可认为是作业算子的输入数据量。

5、可选的,负载指标还可以包括因作业的运行情况和为作业分配的资源等因素发生改变的指标。例如,负载指标还包括以下一个或多个:作业的计算并行度、输入数据量和为作业分配的资源的空闲时间。作业的计算并行度是指在使用资源执行作业的过程中,作业的组成单元(如执行任务)实际被并行执行的程度。作业的输入数据量是在使用资源执行作业的过程中,实际输入的数据量。为作业分配的资源的空闲时间是指为作业分配的资源未被实际使用的时间。

6、由于作业的计算并行度、输入数据量和为作业分配的资源的空闲时间均在作业的执行过程中体现,会受到影响作业运行状态的因素(如已为作业分配的资源)的影响,所以需要在作业执行过程获取。这些负载指标体现了作业的实际执行情况,因此可用于对作业执行前获取的负载指标所体现的负载情况进行更新。此时,基于该负载指标进行资源分配实际是调整为作业分配的资源。通过在作业的执行过程中获取负载指标,能够根据该负载指标获取作业的实际执行情况,获取作业对资源的实际需求情况,有助于更精准地对资源和作业进行匹配,进一步提高资源的利用率。并且,根据在作业之前获取的负载指标通常只能知道执行作业需要使用哪些资源,而无法知道资源的使用时长,通过在作业的执行过程中获取为作业分配的资源的空闲时间,能够根据其确定作业对资源的使用时长,从而根据该使用时长实现对作业的负载情况的精细监控,有助于更精准地对资源和作业进行匹配。

7、对于需要由同一计算设备分配资源的所有作业来说,其需要获取的负载指标均相同。但是,基于对作业的一些定制化需求和不同作业的个体化差异的考虑,计算设备默认采集的部分负载指标可能是某些作业不需要的。因此,基于负载指标,获取作业的负载情况,包括:基于作业的定制化指标清单,对负载指标进行指标过滤;基于经过过滤的负载指标,获取作业的负载情况。

8、在一种实现场景中,作业包括至少一个执行阶段,执行阶段包括至少一个执行任务。则获取作业的负载指标,包括:以作业和/或执行阶段为单位,获取负载指标。可选的,也可以以任务为单位,获取负载的指标。

9、可选的,在基于负载情况和能力等级信息,为作业分配资源集群中的资源之前,方法还包括:在作业的运行过程中,获取作业对已为其分配的资源的使用情况。相应的,基于负载情况和能力等级信息,为作业分配资源集群中的资源,包括:基于负载情况、能力等级信息和使用情况,为作业分配资源集群中的资源。

10、通过在作业的执行过程中获取该使用情况,能够根据该使用情况获取资源的实际使用情况,得到资源集群中的可分配资源,有助于更精准地对资源和作业进行匹配,从而提高资源的利用率。

11、在一种实现方式中,该使用情况可以基于提供资源的主机的微体系架构事件和/或资源执行程序指令的速度反映。微体系架构事件可以反映用于执行作业的虚拟机的运行状态。资源执行程序指令的速度可以反映作业对为其分配的物理内核的占用率。

12、可选的,在基于负载情况和能力等级信息,为作业分配资源集群中的资源之前,方法还包括:获取作业的性能瓶颈指标,性能瓶颈指标用于指示作业的性能瓶颈。相应的,基于负载情况和能力等级信息,为作业分配资源集群中的资源,包括:基于负载情况、能力等级信息和性能瓶颈指标,为作业分配资源集群中的资源。

13、可选的,该性能瓶颈指标可以通过输入/输出亲和性反映。作业的i/o亲和性指示该作业是否与i/o亲和。当作业的i/o亲和性为亲和时,表示作业的性能瓶颈主要在i/o上,需要更多的资源缓解i/o压力(比如增大并行度)。

14、若性能瓶颈指示作业的性能瓶颈主要在输入/输出上时,则在为作业分配异构资源时,可以优先向作业分配该异构资源中能力较低的资源。例如,当性能瓶颈指标指示作业的性能瓶颈为输入/输出性能,且内核资源包括超核和普核时,在为作业分配内核资源时,可以优先为作业分配普核,或者,当资源集群中没有可用的普核时,也可以向作业分配超核。这样一来,在相同的成本基础上,能够为作业分配更多的内核,从而将作业的计算并行度最大化。相应地,也能够将异构资源中能力较高的资源用于对资源能力有较高需求的作业,实现资源的有效利用。

15、本技术提供的基于云服务的资源分配方法可用于为作业分配初始资源,也可用于对为作业分配的初始资源进行调整。当本技术提供的基于云服务的资源分配方法用于对为作业分配的初始资源进行调整时,基于负载情况和能力等级信息,为作业分配资源集群中的资源,包括:在为作业分配初始资源的基础上,基于负载情况和能力等级信息,调整为作业分配的资源。

16、在一种实现方式中,基于负载情况和能力等级信息,为作业分配资源集群中的资源,包括:基于负载情况和能力等级信息,得到分配决策,分配决策指示向作业分配的资源;对分配决策进行审核;基于分配决策及其审核结果,为作业分配资源集群中的资源。

17、分配决策用于指示需要向作业分配的资源,但是资源集群的实际情况可能无法满足该分配决策。因此,在一种实现方式中,对分配决策进行审核,包括:获取资源集群中的可分配资源;基于可分配资源对分配决策进行审核。

18、可选的,分配决策指示向作业分配的资源的种类、每种资源的数量和能力等级。这样一来,就能够根据作业对资源的实际需求为作业分配各种资源,控制为作业分配的各种资源的配比,如控制内存与内核的资源配比,实现对资源的精细分配,提高作业和资源的匹配度,从而提高资源的利用率。

19、其中,基于分配决策及其审核结果,为作业分配资源集群中的资源,包括:当审核结果指示可分配资源能够满足分配决策时,按照分配决策为作业分配资源集群中的资源;当审核结果指示可分配资源不能够满足分配决策时,基于可分配资源对分配决策进行调整,按照调整后的分配决策为作业分配资源集群中的资源。

20、通过对分配决策进行审核,并在分配决策不通过审核时,基于可分配资源对分配决策进行调整,能够结合资源集群的实际情况对分配决策进行调整,实现了对分配决策的动态调整,能够有效保证作业与资源的匹配度,有助于提高资源的利用率。并且,当分配决策指示向作业分配的资源的种类、每种资源的数量和能力等级时,基于可分配资源对分配决策进行调整时,能够分别对每种资源进行调整,实现对多种资源的配比的调整,如实现内核和内存的配比的调整。通过调整多种资源的配比,能够提高每种资源与作业的匹配度,降低对资源的浪费,有助于提高资源的利用率。

21、在一种实现方式中,基于分配决策及其审核结果,为作业分配资源集群中的资源,包括:基于分配决策及其审核结果,从资源集群中为作业申请资源;将作业与为作业申请到的资源绑定。

22、可选的,由于作业包括多个任务,分配决策可以指示为每个任务分配资源,则将作业与为作业申请到的资源绑定,包括:将为每个任务申请到的资源与对应的任务绑定。

23、可选的,本技术中的资源可以包括物理资源,和/或,在物理资源的基础上虚拟出的虚拟资源。当异构资源为虚拟资源时,异构资源的多种子资源分别在具有同种能力但能力等级不同的多种物理资源的基础上虚拟得到。

24、在资源集群中,物理资源可以携带有标签,该标签用于指示该物理资源的能力等级,即该标签记录有物理资源的能力等级信息。则可以读取物理资源的标签,以得到该物理资源的能力等级信息。其中,物理资源的能力等级为物理资源的底层资源指标。

25、当资源为在物理资源的基础上虚拟出的虚拟资源时,该虚拟资源的能力等级基于该虚拟资源依赖的物理资源确定。在一种实现方式中,虚拟资源可以携带有标签,该标签用于指示该虚拟资源的能力等级,则可以读取虚拟资源的标签,以得到该虚拟资源的能力等级信息。在另一种实现方式中,可以获取物理资源与在其基础上虚拟出的虚拟资源的映射关系,基于映射关系确定虚拟资源依赖的物理资源,然后获取虚拟资源依赖的物理资源的能力等级信息,将该能力等级信息确定为虚拟资源的能力等级信息,从而得到虚拟资源的能力等级信息。其中,映射关系用于指示物理资源与在其基础上虚拟出的虚拟资源的对应关系。

26、可选的,至少一种异构资源包括内核异构资源,内核异构资源包括:超级内核和普通内核,超级内核的能力等级高于普通内核的能力等级。

27、第二方面,本技术提供了一种基于云服务的资源分配装置。该基于云服务的资源分配装置可配置于云平台。该基于云服务的资源分配装置包括:获取模块,用于获取资源集群中资源的能力等级信息,资源集群包括至少一种异构资源,异构资源包括多种子资源,多种子资源具有同种能力但能力等级不同;获取模块,还用于获取待分配资源的作业的负载情况;分配模块,用于基于负载情况和能力等级信息,为作业分配资源集群中的资源。

28、可选的,获取模块,具体用于:获取作业的负载指标,负载指标包括以下一个或多个:作业的执行逻辑、数据并行度、作业算子及其涉及的数据量;基于负载指标,获取作业的负载情况。

29、可选的,负载指标还包括以下一个或多个:作业的计算并行度、输入数据量和为作业分配的资源的空闲时间。

30、可选的,获取模块,具体用于:基于作业的定制化指标清单,对负载指标进行指标过滤;基于经过过滤的负载指标,获取作业的负载情况。

31、可选的,作业包括至少一个执行阶段,执行阶段包括至少一个执行任务,获取模块,具体用于:以作业和/或执行阶段为单位,获取负载指标。

32、可选的,获取模块,还用于:在作业的运行过程中,获取作业对已为其分配的资源的使用情况。相应的,分配模块,具体用于:基于负载情况、能力等级信息和使用情况,为作业分配资源集群中的资源。

33、可选的,使用情况基于提供资源的主机的微体系架构事件和/或资源执行程序指令的速度反映。

34、可选的,获取模块,还用于:获取作业的性能瓶颈指标,性能瓶颈指标用于指示作业的性能瓶颈。相应的,分配模块,具体用于:基于负载情况、能力等级信息和性能瓶颈指标,为作业分配资源集群中的资源。

35、可选的,分配模块,具体用于:当性能瓶颈指标指示作业的性能瓶颈为输入/输出性能时,基于负载情况和能力等级信息,为作业分配异构资源中能力等级较低的资源。

36、可选的,分配模块,具体用于:在为作业分配初始资源的基础上,基于负载情况和能力等级信息,调整为作业分配的资源。

37、可选的,分配模块,具体用于:基于负载情况和能力等级信息,得到分配决策,分配决策指示向作业分配的资源;对分配决策进行审核;基于分配决策及其审核结果,为作业分配资源集群中的资源。

38、可选的,分配决策指示向作业分配的资源的种类、每种资源的数量和能力等级。

39、可选的,分配模块,具体用于:获取资源集群中的可分配资源;基于可分配资源对分配决策进行审核。

40、可选的,分配模块,具体用于:当审核结果指示可分配资源能够满足分配决策时,按照分配决策为作业分配资源集群中的资源;当审核结果指示可分配资源不能够满足分配决策时,基于可分配资源对分配决策进行调整,按照调整后的分配决策为作业分配资源集群中的资源。

41、可选的,分配模块,具体用于:基于分配决策及其审核结果,从资源集群中为作业申请资源;将作业与为作业申请到的资源绑定。

42、可选的,作业包括多个任务,分配决策指示为每个任务分配资源,分配模块,具体用于:将为每个任务申请到的资源与对应的任务绑定。

43、可选的,资源包括在物理资源的基础上虚拟出的虚拟资源。

44、可选的,获取模块,具体用于:获取物理资源与在其基础上虚拟出的虚拟资源的映射关系;基于映射关系和物理资源的能力等级信息,得到资源的能力等级信息。

45、可选的,至少一种异构资源包括内核异构资源,内核异构资源包括:超级内核和普通内核,超级内核的能力等级高于普通内核的能力等级。

46、第三方面,本技术提供了一种计算设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术第一方面以及其任一种可能的实现方式中提供的方法。

47、第四方面,本技术提供了一种计算机集群,包括多个计算设备,多个计算设备包括多个处理器和多个存储器,多个存储器中存储有程序指令,多个处理器运行程序指令,使得计算机集群执行本技术第一方面以及其任一种可能的实现方式中提供的方法。

48、第五方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算设备上运行时,使得计算设备执行本技术第一方面以及其任一种可能的实现方式中提供的方法。

49、第六方面,本技术提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术第一方面以及其任一种可能的实现方式中提供的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1