CN117290083A - 资源调整方法、装置、计算设备集群及可读存储介质 - Google Patents
资源调整方法、装置、计算设备集群及可读存储介质 Download PDFInfo
- Publication number
- CN117290083A CN117290083A CN202211013518.XA CN202211013518A CN117290083A CN 117290083 A CN117290083 A CN 117290083A CN 202211013518 A CN202211013518 A CN 202211013518A CN 117290083 A CN117290083 A CN 117290083A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- target
- target task
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 230000015654 memory Effects 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 10
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 9
- 238000005129 volume perturbation calorimetry Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001105 regulatory effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种资源调整方法、装置、计算设备集群及可读存储介质,涉及通信技术领域。该方法包括:获取多个任务中的每一个任务的任务信息,多个任务中包括目标任务和至少一个待执行的任务;根据多个任务的任务信息,确定目标任务的资源调整策略;当目标任务满足第一资源调整条件,或者运行目标任务的实例满足第二资源调整条件时,基于目标任务的资源调整策略调整用于运行目标任务的实例的数量和规格中的至少一种。该方法能够全面感知多个任务,基于多个任务的任务信息确定出的目标任务的资源调整策略的准确性较高。其中,多个任务中还包括待执行的任务。从而,在基于目标任务的资源调整策略进行资源调整的情况下,资源调整的准确性较高。
Description
本申请要求于2022年6月20日提交的申请号为202210695652.6、发明名称为“一种负载弹性伸缩方法、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中。
技术领域
本申请涉及通信技术领域,尤其涉及一种资源调整方法、装置、计算设备集群及可读存储介质。
背景技术
云是一种以互联网的形式为用户提供软硬件资源的技术。例如,云根据用户的业务需求,为用户提供与该业务需求相适配的资源。由于用户的业务需求可能发生变化,因此,需要一种资源调整方法,使得在业务需求发生变化的情况下,为该业务需求提供的资源能够相应的增加或者减少,实现资源与业务需求重新适配。
在相关技术中,监测中央处理器(central processing unit,CPU)使用率、内存使用率、磁盘读写速率和流量流入/流出速率等指标;当监测到某一项指标满足触发条件时,确定当前的资源与业务需求不再适配,按照固定值对资源进行增加或者减少。
然而,由于上述各项指标均表示当前的资源占用情况,当某一项指标满足触发条件时,意味着业务需求已经发生变化,基于当前的资源占用情况对资源进行调整的准确性较低。
发明内容
本申请提出一种资源调整方法、装置、计算设备集群及可读存储介质,用于提高资源调整的准确性。
第一方面,提供了一种资源调整方法,该方法包括:获取多个任务中的每一个任务的任务信息,该多个任务中包括目标任务和至少一个待执行的任务;根据该多个任务的任务信息,确定目标任务的资源调整策略;当目标任务满足第一资源调整条件,或者运行目标任务的实例满足第二资源调整条件时,基于该资源调整策略调整用于运行目标任务的实例的数量和规格中的至少一种。该方法能够全面感知该多个任务,基于该多个任务的任务信息确定出的目标任务的资源调整策略的准确性较高。其中,该多个任务中还包括待执行的任务。从而,在基于该目标任务的资源调整策略进行资源调整的情况下,资源调整的准确性较高。
在一种可能的实现方式中,该方法还包括:接收用户配置的资源更新限制,该资源更新限制包括最大费用和运行该目标任务的实例的最大数量中的至少一种;基于该资源调整策略调整用于运行该目标任务的实例的数量和规格中的至少一种,包括:基于该资源调整策略和该资源更新限制,调整用于运行该目标任务的实例的数量和规格中的至少一种。通过基于用户配置的资源更新限制进行资源调整,能够保证调整后的资源符合用户需求。
在一种可能的实现方式中,目标任务满足第一资源调整条件,包括:目标任务的预期执行时长大于目标任务的参考执行时长。示例性地,运行目标任务的实例满足第二资源调整条件,包括:运行目标任务的实例的CPU占用率高于占用率阈值。触发执行基于资源调整策略调整用于目标任务的实例的数量和规格中的至少一种的情况较为多样,该方法能够适用于多种情况。
在一种可能的实现方式中,目标任务为待执行的任务或者正在执行的任务。该方法使用的任务的执行情况较为多样。
在一种可能的实现方式中,任务信息包括资源占用量和资源占用时长。从而该方法能够获取到较为准确的资源占用情况,提高确定目标任务的资源调整策略的准确性。
在一种可能的实现方式中,根据多个任务的任务信息,确定目标任务的资源调整策略,包括:根据多个任务的任务信息和多个任务的参考执行时长,计算目标任务的资源需求;根据目标任务的资源需求和目标任务的可用资源量,确定目标任务的资源调整策略,资源调整策略用于使得调整后的目标任务的可用资源量满足目标任务的资源需求。通过计算目标资源的资源需求,该方法能够对完成该目标任务所需的资源量进行提前感知。在需要进行资源调整的情况下,该方法中由感知到需要进行资源调整到完成对资源调整所需的时间较短,从而能够降低资源调整所需的时长,提高资源调整的效率。
在一种可能的实现方式中,该方法还包括:根据初始资源量和多个任务的任务信息,计算目标任务的预期执行时长。从而在该目标任务的预期执行时长大于该目标任务的参考执行时长的情况下,能够触发基于目标任务的资源调整策略执行资源调整,使得目标任务的预期执行时长不超过该目标任务的参考执行时长。
在一种可能的实现方式中,获取多个任务的任务信息,包括:获取多个任务中的各个任务的任务类型;基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息,其中,任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。通过基于各个任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息,该方法获取任务信息的方式较为简便,获取效率较高。
在一种可能的实现方式中,获取多个任务的任务信息,包括:获取多个任务中的各个任务的任务类型;基于各个任务类型对应的历史执行信息,获取各个任务的任务信息。
在一种可能的实现方式中,任务类型为获取元数据、切片、转码或合并中的任一种。
第二方面,提供了一种资源调整装置,该装置包括:
获取单元,用于获取多个任务的任务信息,多个任务中包括目标任务和至少一个待执行的任务,该任务信息包括每一任务的任务信息;
确定单元,用于根据多个任务的任务信息,确定目标任务的资源调整策略;
调整单元,用于当目标任务满足第一资源调整条件,或者运行目标任务的实例满足第二资源调整条件时,基于该资源调整策略调整用于运行目标任务的实例的数量和规格中的至少一种。
在一种可能的实现方式中,该装置还包括:接收单元,用于接收用户配置的资源更新限制,该资源更新限制包括最大费用和运行目标任务的实例的最大数量中的至少一种;调整单元,用于基于该资源调整策略和该资源更新限制,调整用于运行目标任务的实例的数量和规格中的至少一种。
在一种可能的实现方式中,目标任务满足第一资源调整条件,包括:目标任务的预期执行时长大于目标任务的参考执行时长。
在一种可能的实现方式中,运行目标任务的实例满足第二资源调整条件,包括:运行目标任务的实例的CPU占用率高于占用率阈值。
在一种可能的实现方式中,目标任务为待执行的任务或者正在执行的任务。
在一种可能的实现方式中,任务信息包括资源占用量和资源占用时长。
在一种可能的实现方式中,确定单元,用于根据多个任务的任务信息和多个任务的参考执行时长,计算目标任务的资源需求;根据目标任务的资源需求和目标任务的可用资源量,确定目标任务的资源调整策略,该资源调整策略用于使得调整后的目标任务的可用资源量满足目标任务的资源需求。
在一种可能的实现方式中,该装置还包括:计算单元,用于根据初始资源量和多个任务的任务信息,计算目标任务的预期执行时长。
在一种可能的实现方式中,获取单元,用于获取多个任务中的各个任务的任务类型;基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息,其中,任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。
在一种可能的实现方式中,获取单元,用于获取多个任务中的各个任务的任务类型;基于各个任务类型对应的历史执行信息,获取各个任务的任务信息。
在一种可能的实现方式中,任务类型为获取元数据、切片、转码或合并中的任一种。
第三方面,提供了一种计算设备集群,该计算设备集群包括至少一个计算设备,各个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行第一方面中任一的资源调整方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行第一方面中任一的资源调整方法。
第五方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面中任一的资源调整方法。
示例性地,处理器为一个或多个,存储器为一个或多个。
示例性地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第六方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备集群运行时,使得计算设备集群执行第一方面中任一的资源调整方法。
第七方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行该存储器中存储的指令,使得安装有该芯片的至少一个计算设备执行第一方面中任一的资源调整方法。
示例性地,该芯片还包括:输入接口、输出接口和该存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。
应当理解的是,本申请的第二方面至第七方面的技术方案及其对应的可能的实现方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实现方式的技术效果,此处不再赘述。
附图说明
图1是本申请实施例提供的一种资源调整方法的实施环境示意图;
图2是本申请实施例提供的另一种资源调整方法的实施环境示意图;
图3是本申请实施例提供的一种资源调整方法的流程图;
图4是本申请实施例提供的一种排布结果的示意图;
图5是本申请实施例提供的一种资源调整方法的过程示意图;
图6是本申请实施例提供的一种资源排布过程的示意图;
图7是本申请实施例提供的一种容器的CPU占用情况的示意图;
图8是本申请实施例提供的一种转码任务的完成时间的示意图;
图9是本申请实施例提供的一种资源调整装置的结构示意图;
图10是本申请实施例提供的一种计算设备的结构示意图;
图11是本申请实施例提供的另一种计算设备集群的结构示意图;
图12是本申请实施例提供的另一种计算设备集群的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。为使本申请的目的、技术方案和优点更加清楚,下面结合附图,对本申请的实施例进行描述。
云是一种通过将实体的硬件资源虚拟化,以互联网的形式为用户提供软件资源和虚拟的硬件资源的技术。为便于说明,将软件资源和虚拟的硬件资源简称为资源。云能够根据用户的业务需求,为用户提供与该业务相适配的资源。具体地,资源包括计算资源、网络资源和存储资源等。其中,以计算资源为例,计算资源包括虚拟机、容器和裸金属服务器。需要说明的是,本申请不对资源的具体类型进行限制。由于用户的业务需求可能发生变化,云需要根据变化后的业务需求对提供的资源进行调整,以使调整后的资源能够与变化后的业务需求重新适配。其中,可采用资源调整方法根据变化后的业务需求对提供的资源进行调整。资源调整表现为对资源进行增加或者减少,资源调整方法也可称为资源的弹性伸缩(auto scaling,AS)方法。
在相关技术中,对于无计划性且无规律性的业务需求,通过配置CPU使用率、内存使用率、磁盘读写速率和流量流入/流出速率等指标的触发条件,对上述指标进行监测,实现资源调整。例如,当监测到上述指标中的某一项指标满足触发条件时,确定当前的资源与业务需求不再适配,按照固定值对资源进行增加或者减少,实现资源调整。其中,无计划性且无规律性的业务需求可以是指具有并发任务量大、任务突发且无法预测等特点的场景中的业务需求。上述场景包括但不限于离线视频转码场景或新闻服务场景。
相关技术中监测的各项指标均表示当前的资源占用情况,也就是说,相关技术是在业务需求对应的任务已经通过相应的资源执行之后,才能对上述指标进行监测,进而在某一项指标满足触发条件时,触发资源调整。然而,当某一项指标满足触发条件时,意味着业务需求已经发生变化,触发资源调整的时间点相较于业务需求发生变化的时间点会存在一定的延迟,基于当前的资源占用情况对资源进行调整的准确性较低。再有,由于完成资源调整需要一定的时长,相关技术中由业务需求发生变化到实现资源与业务需求重新适配的时长较长,调整效率较低。
本申请实施例提供了一种资源调整方法,能够提高资源调整的准确性。示例性地,该方法可应用于图1所示的实施环境,参见图1,该实施环境包括但不限于第一模块101、第二模块102、第三模块103、第四模块104、第五模块105、第六模块106和第七模块107。第一模块101分别与第二模块102和第六模块106通信连接,第二模块102还与第三模块103、第四模块104以及第五模块105通信连接,第三模块103与第五模块105通信连接,第四模块104与第五模块105通信连接,第六模块106还与第五模块105和第七模块107通信连接。通信连接的各个模块之间能够进行信息交互,通信连接可以基于有线网络或者无线网络实现,本申请实施例对此不加以限定。
示例性地,第六模块106用于获取第七模块107中存储的待执行的任务,第六模块106还用于获取第五模块105中正在执行的任务和第五模块105中的可用资源量,该可用资源量对应的资源用于运行任务。第六模块106还用于向第一模块101上报获取到的任务和该任务的可用资源量。第一模块101用于获取任务的任务信息和参考执行时长,基于获取到的任务信息和参考执行时长确定任务的资源需求;基于任务的资源需求和可用资源量,确定任务的资源调整策略。该第一模块101还用于基于任务的资源调整策略对该任务的可用资源量进行调整,或者向管理资源的第二模块102发送控制指令,以使第二模块102基于该控制指令对任务的可用资源量进行调整。第二模块102还用于获取第三模块103中的备用资源和第四模块104中存储的配置信息,基于该配置信息对该备用资源进行配置,以生成新的可用资源,从而实现对可用资源量的调整。
图2是本申请实施例提供的另一种资源调整方法的实施环境示意图。如图2所示,第一模块101可以为任务资源控制模块,该任务资源模块用于实现第一模块101所具有的功能。第二模块102可以为控制中心,该控制中心用于实现第二模块102所具有的功能。第三模块103为节点池,该节点池包括至少一个节点,一个节点为一个备用资源。第四模块104为镜像仓库,该镜像仓库用于存储至少一个镜像,一个镜像为一个执行程序的配置信息。第五模块105为工作负载(deployment),该工作负载包括基于配置信息配置完毕的至少一个节点,任一个配置完毕的节点包括至少一个实例。该实例提供的资源为待执行的任务对应的可用资源,该可用资源用于运行待执行的任务。不同规格的实例提供的资源不同。示例性地,实例包括物理主机、虚拟机或容器(pod)中的至少一种。第六模块106为云监控模块,该云监控模块用于实现第六模块106所具有的功能,也即云监控模块用于获取第七模块107中存储的待执行的任务、第五模块105中正在执行的任务和第五模块105中任务的可用资源量。第七模块107为任务队列,该任务队列用于存储待执行的任务。
上述图1和图2示出的各个模块可以包括在一个设备或者多个设备中。例如,参见图2,任务资源控制模块、控制中心、节点池、镜像仓库、工作负载和云监控均包括在云容器引擎中。该任务队列包括在云容器引擎之外的其他设备中。再有,在图1和图2示出的实施环境中,各个模块仅以功能进行划分,并不用于对各个模块的实现方式进行限定,各个模块可以基于需要进行合并。例如,在图1示出的实施环境中,第六模块106可以与第一模块101进行合并,使得第一模块101具有第六模块106的功能。也即第一模块101能够获取第七模块107中存储的待执行的任务,也能够获取第五模块105中正在执行的任务和第五模块105中任务的可用资源量。
可以理解的是,上述各个实施环境均可以包括多个模块,本申请实施例对此不加以限定。并且,图2示出的任务的数量、实例的数量、节点的数量和镜像的数量仅用于举例说明,本申请实施例对此也不加以限定。
本申请实施例提供的资源调整方法可如图3所示,接下来,结合图1或图2示出的实施环境,对该方法进行说明。示例性地,该方法应用于至少一个计算设备。图1或图2示出的各个模块可以包括在一个计算设备中,也可以分别包括在多个计算设备中。如图3所示,该方法包括但不限于S301至S303。
S301,获取多个任务的任务信息,该多个任务包括目标任务和至少一个待执行的任务,该任务信息包括每一任务的任务信息。
S301可以由第一模块执行。在一种可能的实现方式中,获取多个任务的任务信息之前,该方法还包括:基于业务需求获取至少一个任务流,任一个任务流包括至少一个子任务;获取至少一个任务流包括的各个子任务中未被执行的子任务和/或正在执行的子任务,基于获取到的子任务得到多个任务。
业务需求可以是用户下发的父任务,第一模块可以将用户下发的父任务拆分为至少一个子任务,将该至少一个子任务作为获取的一个任务流。示例性地,拆分用户下发的父任务是指将用户下发的父任务按照父任务的至少一个执行阶段进行拆分,得到至少一个子任务,一个子任务对应一个执行阶段。在用户下发多个父任务的情况下,第一模块可以将用户下发的多个父任务分别拆分,获取多个任务流,任一个任务流包括至少一个任务。再有,由于任务流是按照父任务的至少一个执行阶段对父任务进行拆分得到的,属于同一个任务流的至少一个子任务可以具有逻辑上的执行顺序。
关于获取至少一个任务流包括的各个子任务中未被执行的子任务和/或正在执行的子任务的方式,本申请实施例不加以限定。例如,第一模块为图2所示的任务资源控制模块,任务资源控制模块通过云监控模块向任务队列发送获取未被执行的任务的第一请求,接收任务队列响应于该第一请求返回的未被执行的子任务。任务资源控制模块还通过云监控模块向工作负载发送获取正在执行的子任务的第二请求,接收工作负载响应于该第二请求返回的正在执行的子任务。云监控模块也可以主动向任务资源控制模块发送未被执行的子任务和/或正在执行的子任务,本申请实施例不对云监控模块主动向任务资源控制模块发送未被执行的子任务和/或正在执行的子任务的时机进行限定。
在一种可能的实现方式中,基于获取到的子任务得到多个任务,包括:基于各个子任务的任务类型,将同一任务类型的子任务作为一个任务,得到多个任务;其中,对于该多个任务中的任一个任务,如果该任一个任务仅包括待执行的子任务,该任一个任务为待执行的任务,如果该任一个任务包括正在执行的子任务,该任一个任务为正在执行的任务。示例性地,在某一种任务类型的子任务的数量为一的情况下,该子任务即为得到的该任务类型的任务。获取到的多个任务中的目标任务可以为该多个任务中待执行的任务或者正在执行的任务。任务类型包括但不限于获取元数据、切片、转码或合并中的任一种。
本申请实施例不对获取子任务的任务类型进行限定,例如,可以通过如下获取任务类型方式一和获取任务类型方式二获取子任务的任务类型。
获取任务类型方式一,向存储子任务的任务类型的模块发送请求,接收其他模块响应于该请求发送的子任务的任务类型。
以图1所示的实施环境为例,第一模块可以向存储至少一个待执行的子任务的第七模块发送第三请求,该第三请求用于请求获取各个待执行的子任务的任务类型,接收第七模块响应于该第三请求返回的各个待执行的子任务的任务类型。第一模块还可以向用于执行子任务的第五模块发送第四请求,该第四请求用于请求获取正在执行的子任务的任务类型,接收第五模块响应于该第四请求返回的正在执行的子任务的任务类型。
获取任务类型方式二,通过接收存储任务类型的模块主动发送的各个子任务的任务类型,实现获取多个子任务的任务类型。
仍以图1示出的实施环境为例,第一模块可以接收第七模块主动发送的各个待执行的子任务的任务类型。例如,第七模块向第一模块发送至少一个待执行的子任务时,还向第一模块发送各个待执行的子任务的任务类型。第一模块还可以接收第五模块主动发送的正在执行的子任务的任务类型。例如,第五模块向第一模块发送正在执行的子任务时,还向第一模块发送正在执行的子任务的任务类型。
在一种可能的实现方式中,基于获取到的多个任务,获取该多个任务的任务信息和参考执行时长。用于执行S301的第一模块还获取目标任务的可用资源量。本申请实施例不对获取任务信息、参考执行时长和可用资源量的顺序进行限定。接下来,分别对获取任务信息、参考执行时长和可用资源量的过程进行说明。
获取多个任务的任务信息的方式包括但不限于如下获取任务信息方式一和获取任务信息方式二。
获取任务信息方式一,获取多个任务中的各个任务的任务类型;基于各个任务类型对应的历史执行信息,获取各个任务的任务信息。
例如,对于任一个任务类型,该任一个任务类型对应的历史执行信息包括完成该任一个任务类型的至少一个子任务的资源占用量和资源占用时长。示例性地,对于任一个任务类型,获取完成该任一个任务类型的多个子任务的资源占用量和资源占用时长,将完成该多个子任务的资源占用量的平均值作为该任一个任务类型对应的资源占用量,将完成该多个子任务的资源占用时长的平均值作为该任一个任务类型对应的资源占用时长。该任一个任务类型对应的资源占用量和资源占用时长可以作为该任一个任务类型的子任务的任务信息,从而能够基于各个子任务的任务类型获取各个子任务的任务信息,基于各个子任务的任务信息,得到各个任务的任务信息。
示例性地,在子任务的任务信息包括资源占用量和资源占用时长的情况下,对于任一个任务,将该任一个任务包括的各个子任务的资源占用量相加得到该任一个任务的资源占用量,将各个子任务的资源占用时长相加得到该任一个任务的资源占用时长。
也就是说,对于该多个任务中的任一个任务,该任一个任务的任务信息包括但不限于资源占用量和资源占用时长。该任一个任务的资源占用量是指执行该任一个任务所需占用的可用资源量,该任一个任务的资源占用时长是指执行该任一个任务时,占用该可用资源量的时长。示例性地,在该任一个任务包括多个子任务的情况下,该任一个任务的任务信息包括但不限于该任一个任务包括的各个子任务的资源占用量和资源占用时长。从而,能够获取到较为准确的资源占用情况,进而实现较为准确的资源调整。
获取任务信息方式二,获取多个任务中的各个任务的任务类型;基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息,其中,任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。由于各个任务包括的子任务的类型相同,各个任务的任务类型可以为得到各个任务的子任务的任务类型。获取各个任务的任务类型之后,可以基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息。
该任务类型与任务信息的对应关系可以是基于获取到的配置信息生成的。例如,在获取多个任务的任务信息之前,该方法还包括:获取任务类型和任务信息的配置信息;基于该任务类型和任务信息的配置信息,生成任务类型与任务信息的对应关系。
在一种可能的实现方式中,用户为父任务配置父任务信息。父任务信息包括但不限于父任务的资源占用量和资源占用时长。父任务的资源占用量是指执行该父任务所需占用的可用资源量,父任务的资源占用时长是指执行该父任务时,占用该可用资源量的时长。基于该父任务信息生成任务类型和任务信息的配置信息。例如,按照父任务的至少一个执行阶段,将该父任务拆分为至少一个子任务,一个子任务对应一个执行阶段,一个执行阶段对应一个任务类型;基于父任务信息和各个子任务的任务类型,为各个任务类型的子任务配置任务信息。
示例性地,在父任务信息包括父任务的资源占用量和资源占用时长的情况下,基于父任务信息和各个子任务的任务类型,为各个任务类型的子任务配置任务信息,包括:将父任务的资源占用量和资源占用时长按照任务类型进行拆分,得到各个子任务的资源占用量和资源占用时长。子任务的资源占用量是指执行该子任务所需占用的可用资源量,子任务的资源占用时长是指执行该子任务时,占用该可用资源量的时长。
本申请实施例不对按照任务类型对父任务的资源占用量和资源占用时长进行拆分的方式进行限定。例如,各个任务类型具有权重因子,按照各个任务类型的权重因子,对父任务的资源占用量和资源占用时长进行拆分。为各个任务类型的子任务配置任务信息时生成的信息称为任务类型和任务信息的配置信息。当然,用户也可以直接为各个任务类型的子任务配置任务信息。这种情况下,任务类型和任务信息的配置信息为用户为各个任务类型的子任务配置任务信息时生成的信息。通过获取任务类型和任务信息的配置信息,能够生成任务类型与任务信息的对应关系。
示例性地,任务类型与任务信息的对应关系预先存储在用于执行S301的第一模块中。也就是说,第一模块获取各个任务的任务类型之后,可以直接查询存储的任务类型与任务信息的对应关系,得到各个任务的任务信息。本申请实施例提供的方法中,获取任务类型与任务信息的对应关系的方式较为灵活。通过查询任务类型与任务信息的对应关系获取各个任务的任务信息,获取任务信息的效率较高。
在获取各个任务的任务类型以及任务类型与任务信息的对应关系之后,可以执行基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息。该过程可以包括:对于任一个任务包括的任一个子任务,基于该任一个子任务的任务类型,查询任务类型与任务信息的对应关系,得到该任一个子任务的任务信息;基于该任一个任务包括的各个子任务的任务信息,得到该任一个任务的任务信息。其中,得到该任一个任务的任务信息的方式与获取任务信息方式一中的相关内容原理相同,此处不再赘述。
在一种可能的实现方式中,用于执行S301的第一模块存储有各个任务类型的子任务的参考执行时长,子任务的参考执行时长是指由开始执行该子任务到完成该子任务的参考时长。对于任一个任务类型,该任一个任务类型的子任务的参考执行时长可以根据经验或实际需求进行设置,也可以基于该任一个任务类型的子任务的历史执行时长得到。该任一个任务类型的子任务的历史执行时长是指在历史情况中,第一模块完成该任一个任务类型的子任务的执行时长。示例性地,第一模块获取该任一个任务类型的多个子任务的历史执行时长,将该多个历史执行时长的平均值作为该任一个任务类型的子任务的参考执行时长。
第一模块可以基于各个任务类型的子任务的参考执行时长得到各个任务的参考执行时长。例如,对于获取到的任一个任务,第一模块基于该任一个任务包括的子任务的数量和该子任务的参考执行时长,得到该任一个任务的参考执行时长。该任一个任务的参考执行时长是指由开始执行该任一个任务到完成该任一个任务的参考时长。
在一种可能的实现方式中,第一模块还获取目标任务的可用资源量,该可用资源量为用于完成该目标任务的可用资源量。获取目标任务的可用资源量,包括:确定参考资源量中未被占用的资源量,将未被占用的资源量作为该目标任务的可用资源量,该参考资源量为用于完成业务需求的可用资源量。也即,该参考资源量为用于完成用户下发的父任务的可用资源量。参考资源量可以由用户根据其业务需求进行设置。示例性地,在可用资源为实例提供的资源的情况下,可用资源量为实例提供的资源量。例如,在图2示出的实施环境中,用于完成业务需求的可用资源包括节点1中的实例1至实例4提供的资源、以及节点2中的实例1至实例4提供的资源,参考资源量为8个实例提供的资源量。在这8个实例均未被占用的情况下,该8个实例提供的资源均为目标任务的可用资源,目标任务的可用资源量为8个实例提供的资源量。
示例性地,如果可用资源正在执行子任务,该可用资源被占用。由于正在执行的子任务将在一段时间后执行完成,被占用的可用资源可以在子任务执行完成之后变为未被占用的可用资源。也就是说,在不同的时间点上,目标任务的可用资源量可以不同。例如,在执行获取目标任务的可用资源量的操作的时间点上,某些可用资源正在被占用,则目标任务的可用资源量为参考资源量与被占用的可用资源量的差值。在一段时间后,被占用的可用资源中的子任务执行完成且没有被占用的可用资源,则在此情况下,目标任务的可用资源量等于参考资源量。在一种可能的实现方式中,在获取目标任务的可用资源量时,可以获取从执行获取目标任务的可用资源量的操作的时间点起,第一执行时长内的各个时间点对应的未被占用的可用资源量,将各个时间点对应的未被占用的可用资源量作为该目标任务在各个时间点的可用资源量。第一执行时长大于等于该目标任务的参考执行时长。
S302,根据多个任务的任务信息,确定目标任务的资源调整策略。
S302可以由第一模块执行。示例性地,根据多个任务的任务信息,确定目标任务的资源调整策略,包括S3021和S3022。
S3021,根据多个任务的任务信息和多个任务的参考执行时长,计算目标任务的资源需求。
在一种可能的实现方式中,根据多个任务的任务信息和该多个任务的参考执行时长,计算目标任务的资源需求,包括:根据初始资源量和多个任务的任务信息,计算目标任务的预期执行时长;基于该目标任务的预期执行时长和该目标任务的参考执行时长的关系,对初始资源量进行调整,使得计算的目标任务的预期执行时长不大于该目标任务的参考执行时长;基于该调整后的初始资源量得到该目标任务的资源需求。
其中,该初始资源量可以为该目标任务的可用资源量或者预设的可用资源量。示例性地,如果目标任务在第一执行时长内的各个时间点上的可用资源量不同,该初始资源量可以为目标任务在各个时间点上的可用资源量中的最大值,也即该初始资源量可以等于参考资源量。目标任务的预期执行时长是指由开始执行该目标任务到完成该目标任务的预期时长。
结合上述S301的内容可知,任务信息可以包括资源占用量和资源占用时长。则在一种可能的实现方式中,基于初始资源量和多个任务的任务信息,计算目标任务的预期执行时长,包括:基于各个任务的资源占用量和资源占用时长,对各个任务进行资源排布,根据排布结果计算目标任务的预期执行时长;其中,该预期执行时长内的各个时间点对应的资源占用量的总量不超过该初始资源量,各个时间点对应的资源占用比例大于等于阈值,该资源占用比例是指该资源占用量的总量与该初始资源量的比值。
在一种可能的实现方式中,基于各个任务的资源占用量和资源占用时长,对各个任务进行资源排布是指:在以资源量和时间为坐标轴的二维平面上,基于各个任务的资源占用量和资源占用时长,对各个任务进行资源排布;并且对各个任务进行资源排布时,各个时间点对应的资源占用量的总量不超过初始资源量,各个时间点对应的资源占用比例大于等于阈值。阈值可以根据经验或实际需求进行设置,本申请实施例对此不加以限定。例如,阈值为0.5。
由于对各个任务进行资源排布时,各个时间点对应的资源占用量的总量不超过初始资源量,且资源占用比例大于等于阈值,该资源排布的方式能够使得在不超过初始资源量的情况下,资源利用率较高。再有,通过在以资源量和时间为坐标轴的二维平面上,基于各个任务的资源占用量和资源占用时长进行资源排布,能够实现在时域上对资源进行较为准确的规划,得到的目标任务的资源需求的准确性较高。
示例性地,对于该多个任务中的任一个任务,该任一个任务包括一个或者多个子任务,对该任一个任务进行资源排布即为对该任一个任务包括的各个子任务进行资源排布。对各个子任务进行资源排布的过程与上述对各个任务进行资源排布的原理相同,此处不再赘述。示例性地,该多个任务包括的多个子任务具有执行顺序,对多个任务包括的各个子任务进行资源排布,包括:按照各个子任务的执行顺序,对各个子任务进行资源排布。各个子任务的执行顺序可以基于各个子任务在任务流中的顺序确定,本申请实施例对此不加以限定。
在得到目标任务的预期执行时长之后,根据该目标任务的预期执行时长和该目标任务的参考执行时长的关系的不同情况,对初始资源量进行调整,进而得到该目标任务的资源需求,包括但不限于如下情况A和情况B。
情况A,目标任务的预期执行时长大于目标任务的参考执行时长。
在一种可能的实现方式中,如果确定的目标任务的预期执行时长大于该目标任务的参考执行时长,则意味着该初始资源量不足,需要增大初始资源量。也就是说,在目标任务的预期执行时长大于该目标任务的参考执行时长的情况下,通过增加资源量的方式对初始资源量进行调整。
之后,基于增大后的初始资源量以及多个任务的任务信息,计算该目标任务的预期执行时长。如果计算的目标任务的预期执行时长仍大于该目标任务的参考执行时长,对该增大后的初始资源量再次增大,直到基于增大后的初始资源量和多个任务的任务信息计算的该目标任务的预期执行时长不大于该目标任务的参考执行时长为止,将此时的增大后的初始资源量作为该目标任务的资源需求。
情况B,目标任务的预期执行时长不大于该目标任务的参考执行时长。
示例性地,如果目标任务的预期执行时长不大于该目标任务的参考执行时长,可以不对初始资源量进行调整,将该初始资源量作为该目标任务的资源需求。当然,在此情况下,也可以对该初始资源量进行调整。例如,响应于目标任务的预期执行时长不大于目标任务的参考执行时长,减小初始资源量。基于减小后的初始资源量和多个任务的任务信息,计算该目标任务的预期执行时长。如果基于减小后的初始资源量和多个任务的任务信息计算的该目标任务的预期执行时长仍不大于该目标任务的参考执行时长,可以对该减小后的初始资源量再次减小,直到计算出的该目标任务的预期执行时长大于该目标任务的参考执行时长。获取最后一次满足目标任务的预期执行时长不大于目标任务的参考执行时长的资源量,将获取到的资源量作为该目标任务的资源需求。也就是说,该资源需求所对应的资源量是能够满足计算出的目标任务的预期执行时长不大于该目标任务的参考执行时长的最小资源量。从而,在将该资源量作为资源需求的情况下,能够使得用于执行该目标任务的资源量较小,节约资源。
在一种可能的实现方式中,完成资源调整会需要一定的时长,则在需要对初始资源量进行调整的情况下,对该时长以后的时间点对应的初始资源量进行调整。在完成对初始资源量的调整之后,再执行资源排布的操作。完成资源调整的过程将在后文中进行说明,此处暂不展开介绍。示例性地,确定需要对初始资源量进行调整的时间点称为第一时间点,完成资源调整所需的时长称为伸缩时长,对初始资源量进行调整后,对多个任务进行资源排布得到的排布结果可如图4所示。图4示出的排布结果中,对初始资源量进行调整的方式为增加资源量。
S3022,根据目标任务的资源需求和目标任务的可用资源量,确定目标任务的资源调整策略,该资源调整策略用于使得调整后的目标任务的可用资源量满足目标任务的资源需求。
示例性地,在目标任务的资源需求大于目标任务的可用资源量的情况下,确定该目标任务的资源调整策略为增加目标任务的可用资源量,使得增加后的目标任务的可用资源量不小于目标任务的资源需求。该资源调整策略还可以包括该资源需求与可用资源量的差值,也即,目标任务的资源调整策略为按照该目标任务的资源需求与该目标任务的可用资源量的差值,增加目标任务的可用资源量。
示例性地,在目标任务的资源需求小于目标任务的可用资源量的情况下,确定该目标任务的资源调整策略为减少目标任务的可用资源量,减少后的目标任务的可用资源量不小于目标任务的资源需求。该资源调整策略还可以包括可用资源量与该资源需求的差值,也即,目标任务的资源调整策略为按照该目标任务的可用资源量与该目标任务的资源需求的差值,减少目标任务的可用资源量。在目标任务的资源需求小于目标任务的可用资源量的情况下,也可以保持该目标任务的可用资源量不变,目标任务的可用资源量不小于该目标任务的可用资源量即可。
当然,目标任务的资源需求也可以等于该目标任务的可用资源量。在此情况下,目标任务的资源调整策略为保持目标任务的可用资源量不变。
为便于说明,将实例提供的资源量简称为实例资源量。在一种可能的实现方式中,如果可用资源为实例,该目标任务的资源需求即为完成该目标任务所需的实例资源量,该目标任务的可用资源量为用于完成该目标任务的实例资源量。在目标任务的资源需求大于该目标任务的可用资源量的情况下,该目标任务的资源调整策略为增加用于完成该目标任务的实例资源量。在目标任务的资源需求等于该目标任务的可用资源量的情况下,该目标任务的资源调整策略为保持用于完成该目标任务的实例资源量不变。在目标任务的资源需求小于该目标任务的可用资源量的情况下,该目标任务的资源调整策略为减少用于完成该目标任务的实例资源量、或者保持用于完成该目标任务的实例资源量。
通过计算目标资源的资源需求,该方法能够对完成该目标任务所需的资源量进行提前感知。在需要进行资源调整的情况下,该方法中由感知到需要进行资源调整到完成对资源调整所需的时间较短,从而能够降低资源调整所需的时长,提高资源调整的效率。
S303,当目标任务满足第一资源调整条件,或者运行该目标任务的实例满足第二资源调整条件时,基于该目标任务的资源调整策略调整用于运行该目标任务的实例的数量和规格中的至少一种。
S303可以由第一模块执行。在本申请实施例中,如果目标任务满足第一资源调整调节,或者运行该目标任务的实例满足第二资源调整条件,意味着目标任务的可用资源量不能满足该目标任务的资源需求,需要对目标任务的可用资源量进行调整。目标任务的可用资源量可以为用于运行该目标任务的实例提供的资源量。示例性地,目标任务满足第一资源调整条件,包括:目标任务的预期执行时长大于该目标任务的参考执行时长。该目标任务的预期执行时长的相关内容可参见S3021,此处不再赘述。示例性地,运行目标任务的实例满足第二资源调整条件,包括:运行目标任务的实例的CPU占用率高于占用率阈值。占用率阈值可以基于需求或实际经验进行设置,本申请实施例对此不加以限定。
在本申请实施例中,不同规格的实例提供的资源量不同,则基于该目标任务的资源调整策略调整该目标任务的可用资源量是指:基于该目标任务的资源调整策略调整用于运行该目标任务的实例的数量和规格中的至少一种。在一种可能的实现方式中,第一模块执行基于目标任务的资源调整策略调整目标任务的实例和数量和规格中的至少一种。在另一种可能的实现方式中,第一模块向第二模块发送控制指令,该第二模块为管理实例的数量和规格的模块,该控制指令用于指示第二模块基于该目标任务的资源调整策略调整用于运行该目标任务的实例的数量和规格中的至少一种。第一模块和第二模块可以属于同一个设备或者不同的设备。
示例性地,在图2示出的实施环境中,第一模块为任务资源控制模块,第二模块为控制中心。则当目标任务满足第一资源调整条件,或者运行目标任务的实例满足第二资源调整条件时,任务资源控制模块向控制中心发送控制指令,该控制指令用于指示控制中心基于目标任务的资源调整策略调整用于运行该目标任务的实例的数量和规格中的至少一种。
在一种可能的实现方式中,该方法还包括:接收用户配置的资源更新限制,该资源更新限制包括最大费用和运行目标任务的实例的最大数量中的至少一种;基于资源调整策略调整用于运行目标任务的实例的数量和规格中的至少一种,包括:基于资源调整策略和该资源更新限制,调整用于运行目标任务的实例的数量和规格中的至少一种。通过基于用户配置的资源更新限制进行资源调整,能够保证调整后的资源符合用户需求。
相较于相关技术中按照固定值对资源进行增加或减少,本申请实施例提供的方法中,通过先确定目标任务的资源调整策略,再基于目标任务的资源调整策略进行资源调整,资源调整的准确性较高且资源调整的方式较为灵活。
示例性地,在图2示出的实施环境中,增加用于运行目标任务的实例的数量,包括:从节点池中获取节点,从镜像仓库复制镜像到获取的节点中以得到新的实例。减少用于运行目标任务的实例的数量,包括:删除工作负载包括的实例。调整用于运行目标任务的实例的规格,包括:从节点池中获取节点,从镜像仓库复制镜像到获取的节点中以得到新的实例,该新的实例用于替换当前工作负载中的实例,实现对实例的规格的调整。
在一种可能的实现方式中,该方法还包括:对于该目标任务包括的任一个子任务,在调整后的用于该目标任务的实例中,确定与该任一个子任务对应的目标实例,通过该目标实例执行该任一个子任务。通过确定子任务对应的目标实例,再通过目标实例执行该子任务,能够实现对用于执行该子任务的实例的控制。相较于将各个子任务向工作负载发送,由工作负载确定用于执行各个子任务的实例的方式,能够对用于执行各个子任务的实例进行精确控制。示例性地,该确定任一个子任务对应的目标实例,通过该目标实例执行该任一个子任务的操作由第一模块执行。
在本申请实施例提供的方法中,获取多个任务的任务信息,基于多个任务的任务信息确定该多个任务中的目标任务的资源调整策略。该方法能够全面感知该多个任务,基于该多个任务的任务信息确定出的目标任务的资源调整策略的准确性较高。从而,在基于该目标任务的资源调整策略进行资源调整的情况下,资源调整的准确性较高。
接下来,以本申请实施例提供的方法应用于图2示出的实施环境以及离线视频转码场景为例进行说明,以更清楚地说明本申请实施例提供的资源调整方法。图5是本申请实施例提供的一种资源调整方法的过程示意图。
参见图5,业务需求包括N个离线视频转码任务,分别为转码任务1、转码任务2、…、转码任务N,N为正整数。基于该N个离线视频转码任务获取N个任务流,对于该N个任务流中的第i个任务流,该第i个任务流包括四个子任务,分别为获取元数据任务i、切片任务i、转码任务i和合并任务i,i为大于0且小于等于N的整数。这四个子任务的任务类型分别为获取元数据、切片、转码和合并。按照各个子任务的顺序将该N个任务流存储在任务队列中,如图5所示,该任务队列中存储的子任务包括:获取元数据任务1、切片任务1、获取元数据任务2、获取元数据任务3、转码任务1、切片任务2、…、合并任务N。
示例性地,该任务队列中的各个子任务均为待执行的子任务。工作负载中的实例为容器,各个容器均未被占用,也即各个容器均空闲。任务资源控制模块获取任务队列中的待执行的子任务,基于获取到的待执行的子任务获取多个任务。例如,基于各个子任务的任务类型,将同一个任务类型的子任务作为得到的一个任务。
目标任务可以为该多个任务中的任一个任务,以该多个任务中的目标任务为转码任务为例,该转码任务包括转码任务1至转码任务N。该转码任务的可用资源包括图5中的容器1、容器2、容器3、…、容器M,也即该转码任务的可用资源量为M,M为正整数。
获取多个任务之后,任务资源控制模块可以获取该多个任务中的各个任务的任务信息。示例性地,任务资源控制模块先获取各个任务的任务类型,再基于各个任务的任务类型,获取各个任务的任务信息。例如,任务资源控制模块基于各个任务类型对应的历史执行信息获取各个任务的任务信息,或者通过查询任务类型与任务信息的对应关系,得到各个任务的任务信息。
在一种可能的实现方式中,任务资源控制模块中还存储有任务类型—元数据—任务信息的对应关系。元数据为业务需求的执行对象的数据,例如,对于离线视频转码任务,元数据包括但不限于视频的分辨率、时长和码率。各个视频的元数据可以不同,从而对于分别对多个视频执行且类型相同的多个子任务,该多个子任务的任务信息可以不同。例如,对于分辨率不同的两个视频,在对这两个视频执行的转码的子任务的资源占用量相同的情况下,对分辨率较高的视频执行的转码的子任务的资源占用时长较长。在对这两个视频执行的转码的子任务的资源占用时长相同的情况下,对分辨率较高的视频执行的转码的子任务的资源占用量较高。
该任务类型—元数据—任务信息的对应关系也可以用于获取子任务的任务信息。例如,对于某一个任务流,通过先执行其中的获取元数据的子任务,能够获取到元数据,进而对于该任务流中的其他子任务,可以基于任务类型和获取到的元数据,查询任务类型—元数据—任务信息的对应关系,得到该子任务的任务信息。该任务类型—元数据—任务信息的对应关系可以是通过对多个测试视频分别执行各个任务类型的子任务,统计各个任务类型的子任务的资源占用量和资源占用时长得到的,该多个测试视频的元数据不同。
为便于说明,将任务类型与任务信息的对应关系称为第一查询关系,将任务类型—元数据—任务信息的对应关系称为第二查询关系。对于相同任务类型的两个子任务,由于第二查询关系中不同的元数据可以对应不同的任务信息,相较于基于第一查询关系得到的子任务的任务信息,基于第二查询关系得到的子任务的任务信息可以更加准确。从而,在基于第一查询关系得到的子任务的任务信息与基于第二查询关系得到的子任务的任务信息不同的情况下,任务资源控制模块可以将基于第二查询关系得到的子任务的任务信息作为资源排布时使用的任务信息。
示例性地,任务信息包括资源占用量和资源占用时长,任务资源控制模块基于各个任务的资源占用量和资源占用时长,对各个任务进行资源排布。在一种可能的实现方式中,任务资源控制模块对各个任务进行资源排布时,按照各个任务的执行顺序,对各个任务进行资源排布。由于任务资源控制模块还可以存储有任务类型—元数据—任务信息的对应关系,任务资源控制模块可以排布获取元数据任务先执行,从而能够进一步基于获取到的元数据查询任务类型—元数据—任务信息的对应关系,进而能够获取到较为准确的任务信息。
图6是本申请实施例提供的一种资源排布过程的示意图。如图6所示,任务资源控制模块获取各个子任务的资源占用量和资源占用时长;对各个子任务进行分类;基于各个子任务的资源占用量和资源占用时长,对分类后的各个子任务进行资源排布。
参见图6,各个时间点的可用资源量分别作为各个时间点对应的初始资源量。对分类后的各个子任务进行资源排布时,先排布所有的获取元数据的子任务,使得各个获取元数据的子任务先执行,获取到的元数据能够用于获取其他子任务的任务信息。然后排布切片的子任务,若某一个切片的子任务的资源占用时长较短,可以先排布与该切片的子任务属于同一个任务流的转码的子任务,以使该任务流的任务较早完成。排布切片的子任务时,也可以先排布所有的切片的子任务再排布转码的子任务,仅需满足预期执行时长内的各个时间点对应的资源占用量的总量不超过初始资源量,且各个时间点对应的资源占用比例大于等于阈值即可。
通过对多个任务进行资源排布,能够计算该目标任务的预期执行时长。从而在该目标任务的预期执行时长和目标任务的参考执行时长不同的情况下,可以基于该目标任务的预期执行时长和该目标任务的参考执行时长的关系,对初始资源量进行调整,使得通过资源排布计算的目标任务的预期执行时长不大于该目标任务的参考执行时长。
图6中仅示出了部分任务的排布结果,并不用于对执行资源排布的任务的任务类型和任务数量进行限定。示例性地,根据图6中的排布结果得到的目标任务的资源需求大于目标任务的可用资源量。该资源需求可以为图5所示的M+1。在此情况下,任务资源控制模块向控制中心发送控制指令,指示控制中心对可用资源量进行调整,使得调整后的可用资源量不小于M+1。例如,参见图5,控制中心基于接收到的控制指令生成容器M+1,实现对可用资源量的调整。
在一种可能的实现方式中,该任务资源控制模块还可以确定目标任务包括的各个子任务对应的目标实例,以通过各个子任务对应的目标实例执行该各个子任务。例如,如图5所示,任务资源控制模块确定该目标任务包括的各个子任务对应的目标容器,向工作负载发送该各个子任务,通过工作负载中该各个子任务对应的目标容器执行该各个子任务。
示例性地,对于离线视频转码场景,在转码任务包括40个转码的子任务,该40个子任务的可用资源为1个容器,也即该目标任务的可用资源量为1的情况下,相关技术的方法以及本申请实施例提供的方法中容器的CPU占用情况如图7所示。
图7是本申请实施例提供的一种容器的CPU占用情况的示意图。其中,图7的(1)对应相关技术的方法中容器的CPU占用情况,图7的(2)对应本申请实施例提供的方法中容器的CPU占用情况。无论是图7的(1)还是图7的(2),横轴均表示时间,纵轴均表示容器的CPU占用情况。可以看到,相关技术的方法中,转码任务下发的时间在15:21左右,在下发后6分钟左右,也即15:27左右,才有新的容器生成并运行转码任务。在本申请实施例提供的方法中,转码任务下发的时间在15:47左右,在下发后1分钟左右,也即15:48左右,有新的容器生成并运行转码任务。本申请实施例提供的方法由资源量需要调整到资源量调整完毕所需的时间较短。
图8是本申请实施例提供的一种转码任务的完成时间的示意图。如图8所示,相关技术的方法中,该40个子任务的完成时间连成的折线为图8示出的两条折线中位于上方的一条,该40个子任务中后25个子任务的完成时间均在500秒(second,s)左右。本申请实施例提供的方法中,该40个子任务的完成时间连成的折线为图8示出的两条折线中位于下方的一条,该40个子任务的完成时间在300s左右。如图8所示,本申请实施例提供的方法中的转码任务的完成时长较短。
图9是本申请实施例提供的一种资源调整装置的结构示意图。示例性地,该装置应用于图1所示的第一模块或图2所示的任务资源控制模块,以实现本申请实施例提供的资源调整方法。基于图9所示的如下多个单元,该图9所示的资源调整装置能够执行该第一模块或者该任务资源控制模块所执行的全部或部分操作。应理解到,该装置可以包括比所示单元更多的附加单元或者省略其中所示的一部分单元,本申请实施例对此不进行限制。如图9所示,该装置包括:
获取单元901,用于获取多个任务的任务信息,多个任务中包括目标任务和至少一个待执行的任务,该任务信息包括每一任务的任务信息;
确定单元902,用于根据多个任务的任务信息,确定目标任务的资源调整策略;
调整单元903,用于当目标任务满足第一资源调整条件,或者运行目标任务的实例满足第二资源调整条件时,基于该资源调整策略调整用于运行目标任务的实例的数量和规格中的至少一种。
在一种可能的实现方式中,该装置还包括:接收单元,用于接收用户配置的资源更新限制,该资源更新限制包括最大费用和运行目标任务的实例的最大数量中的至少一种;调整单元903,用于基于该资源调整策略和该资源更新限制,调整用于运行目标任务的实例的数量和规格中的至少一种。
在一种可能的实现方式中,目标任务满足第一资源调整条件,包括:目标任务的预期执行时长大于目标任务的参考执行时长。
在一种可能的实现方式中,运行目标任务的实例满足第二资源调整条件,包括:运行目标任务的实例的CPU占用率高于占用率阈值。
在一种可能的实现方式中,目标任务为待执行的任务或者正在执行的任务。
在一种可能的实现方式中,任务信息包括资源占用量和资源占用时长。
在一种可能的实现方式中,确定单元902,用于根据多个任务的任务信息和多个任务的参考执行时长,计算目标任务的资源需求;根据目标任务的资源需求和目标任务的可用资源量,确定目标任务的资源调整策略,该资源调整策略用于使得调整后的目标任务的可用资源量满足目标任务的资源需求。
在一种可能的实现方式中,该装置还包括:计算单元,用于根据初始资源量和多个任务的任务信息,计算目标任务的预期执行时长。
在一种可能的实现方式中,获取单元901,用于获取多个任务中的各个任务的任务类型;基于各个任务的任务类型,查询任务类型与任务信息的对应关系,得到各个任务的任务信息其中,任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。
在一种可能的实现方式中,获取单元901,用于获取多个任务中的各个任务的任务类型;基于各个任务类型对应的历史执行信息,获取各个任务的任务信息。
在一种可能的实现方式中,任务类型为获取元数据、切片、转码或合并中的任一种。
在本申请实施例提供的装置中,获取多个任务的任务信息,基于多个任务的任务信息确定该多个任务中的目标任务的资源调整策略。该装置能够全面感知该多个任务,基于该多个任务的任务信息确定出的目标任务的资源调整策略的准确性较高。从而,在基于该目标任务的资源调整策略进行资源调整的情况下,资源调整的准确性较高。
上述获取单元901、确定单元902和调整单元903均可以通过软件实现或者通过硬件实现。接下来以获取单元901为例,对获取单元901的实现方式进行说明。类似的,确定单元902和调整单元903的实现方式可以参考获取单元的实现方式。
在一种可能的实现方式中,获取单元901通过软件实现。也即获取单元901为软件功能单元,该获取单元901可以包括运行在计算实例上的代码。其中,计算实例包括但不限于物理主机、虚拟机、容器中的至少一种。物理主机可以称为计算设备。示例性地,该计算实例可以是一台或者多台。例如,获取单元901可以包括运行在多个主机/虚拟机/容器上的代码。用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,一个region可以包括多个AZ。
示例性地,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,一个VPC设置在一个region内。同一region内的两个VPC之间、以及不同region的VPC之间的跨区通信通过在每个VPC内设置通信网关实现,通过通信网关实现VPC之间的互连。
在另一种可能的实现方式中,获取单元901通过硬件实现。也即获取单元901为硬件功能单元,获取单元901可以包括至少一个计算设备,如服务器等。示例性地,获取单元901也可以是利用专用集成电路(application-specific integrated circuit,ASIC)、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
获取单元901包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。获取单元901包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。示例性地,获取单元901包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,该多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
示例性地,在其他实施例中,获取单元901可以用于执行资源调整方法中的任意步骤,确定单元902可以用于执行资源调整方法中的任意步骤,调整单元903可以用于执行资源调整方法中的任意步骤,获取单元901、确定单元902、以及调整单元903负责实现的步骤可根据需要指定,通过获取单元901、确定单元902、以及调整单元903分别实现资源调整方法中不同的步骤来实现资源调整装置的全部功能。
示例性地,本申请还提供一种计算设备1000。如图10所示,计算设备1000包括:总线1002、处理器1004、存储器1006和通信接口1008。处理器1004、存储器1006和通信接口1008之间通过总线1002通信。计算设备1000可以是服务器或终端设备。应理解,本申请不限定计算设备1000中的处理器、存储器的个数。
总线1002可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1002可包括在计算设备100各个部件(例如,存储器1006、处理器1004、通信接口1008)之间传送信息的通路。
处理器1004可以包括CPU、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器1006可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1006还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器1006中存储有可执行的程序代码,处理器1004执行该可执行的程序代码以分别实现前述获取单元901、确定单元902和调整单元903的功能,从而实现资源调整方法。也即,存储器1006上存有用于执行资源调整方法的指令。
或者,存储器1006中存储有可执行的代码,处理器1004执行该可执行的代码以实现前述资源调整装置的功能,从而实现资源调整方法。也即,存储器1006上存有用于执行资源调整方法的指令。
通信接口1008使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1000与其他设备或通信网络之间的通信。
在一种可能的实现方式中,本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图11所示,该计算设备集群包括至少一个计算设备1000。计算设备集群中的一个或多个计算设备1000中的存储器1006中可以存有相同的用于执行资源调整方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1000的存储器1006中也可以分别存有用于执行资源调整方法的部分指令。换言之,一个或多个计算设备1000的组合可以共同执行用于执行资源调整方法的指令。
需要说明的是,计算设备集群中的不同的计算设备1000中的存储器1006可以存储不同的指令,分别用于执行资源调整装置的部分功能。也即,不同的计算设备1000中的存储器1006存储的指令可以实现获取单元901、确定单元902和调整单元903中的一个或多个单元的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,该网络可以是广域网或局域网等等。图12为本申请实施例提供的另一种计算设备集群的结构示意图,如图12所示,两个计算设备1000A和1000B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与该网络进行连接。在一种可能的实现方式中,计算设备1000A中的存储器1006中存有执行获取单元901的功能的指令。同时,计算设备1000B中的存储器1006中存有执行确定单元902和调整单元903的功能的指令。
图12所示的计算设备集群之间的连接方式可以是考虑到本申请提供的资源调整方法需要获取多个任务的任务信息,将确定单元902以及调整单元903实现的功能交由计算设备1000B执行。
应理解,图12中示出的计算设备1000A的功能也可以由多个计算设备1000完成。同样,计算设备1000B的功能也可以由多个计算设备1000完成。
示例性地,本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图11和图12的计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备1000中的存储器1006中可以存有相同的用于执行资源调整方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1000的存储器1006中也可以分别存有用于执行资源调整方法的部分指令。换言之,一个或多个计算设备1000的组合可以共同执行用于执行资源调整方法的指令。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行图3中的资源调整方法。
本申请实施例提供了一种包含指令的计算机程序产品,当该指令被计算设备集群执行时,可以使得计算设备集群执行上述方法实施例中对应的各个步骤和/或流程。
本申请实施例提供了一种芯片,包括处理器,该处理器用于从存储器中调用并运行存储器中存储的指令,使得安装有该芯片的至少一个计算设备执行上述各方面中的方法。
示例性地,该芯片还包括:输入接口、输出接口和该存储器,该输入接口、该输出接口、该处理器以及该存储器之间通过内部连接通路相连。
本申请实施例还提供了一种设备,该设备包括上述芯片。可选地,该设备为计算设备。示例性地,该设备为服务器或者终端设备。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的资源调整装置的处理器,使得程序代码在被计算机或其他可编程的资源调整装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)或闪存、光存储设备、磁存储设备,或其任意合适的组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一模块可以被称为第二模块,并且类似地,第二模块可以被称为第一模块。第一模块和第二模块都可以是任一类型的计算设备,并且在某些情况下,可以是单独且不同的计算设备。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个任务是指两个或两个以上的任务。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
Claims (25)
1.一种资源调整方法,其特征在于,所述方法包括:
获取多个任务的任务信息,所述多个任务中包括目标任务和至少一个待执行的任务,所述任务信息包括每一任务的任务信息;
根据所述多个任务的任务信息,确定所述目标任务的资源调整策略;
当所述目标任务满足第一资源调整条件,或者运行所述目标任务的实例满足第二资源调整条件时,基于所述资源调整策略调整用于运行所述目标任务的实例的数量和规格中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户配置的资源更新限制,所述资源更新限制包括最大费用和运行所述目标任务的实例的最大数量中的至少一种;
所述基于所述资源调整策略调整用于运行所述目标任务的实例的数量和规格中的至少一种,包括:
基于所述资源调整策略和所述资源更新限制,调整用于运行所述目标任务的实例的数量和规格中的至少一种。
3.根据权利要求1或2所述的方法,其特征在于,所述目标任务满足第一资源调整条件,包括:
所述目标任务的预期执行时长大于所述目标任务的参考执行时长。
4.根据权利要求1至3中任一所述的方法,其特征在于,运行所述目标任务的实例满足第二资源调整条件,包括:
所述运行所述目标任务的实例的中央处理器CPU占用率高于占用率阈值。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述目标任务为待执行的任务或者正在执行的任务。
6.根据权利要求1至5中任一所述的方法,其特征在于,所述任务信息包括资源占用量和资源占用时长。
7.根据权利要求1至6中任一所述的方法,其特征在于,所述根据所述多个任务的任务信息,确定所述目标任务的资源调整策略,包括:
根据所述多个任务的任务信息和所述多个任务的参考执行时长,计算所述目标任务的资源需求;
根据所述目标任务的资源需求和所述目标任务的可用资源量,确定所述目标任务的资源调整策略,所述资源调整策略用于使得调整后的所述目标任务的可用资源量满足所述目标任务的资源需求。
8.根据权利要求3中所述的方法,其特征在于,所述方法还包括:
根据初始资源量和所述多个任务的任务信息,计算所述目标任务的预期执行时长。
9.根据权利要求1至8任一所述的方法,其特征在于,所述获取多个任务的任务信息,包括:
获取所述多个任务中的各个任务的任务类型;
基于所述各个任务的任务类型,查询任务类型与任务信息的对应关系,得到所述各个任务的任务信息,其中,所述任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。
10.根据权利要求9所述的方法,其特征在于,所述任务类型为获取元数据、切片、转码或合并中的任一种。
11.一种资源调整装置,其特征在于,所述装置包括:
获取单元,用于获取多个任务的任务信息,所述多个任务中包括目标任务和至少一个待执行的任务,所述任务信息包括每一任务的任务信息;
确定单元,用于根据所述多个任务的任务信息,确定所述目标任务的资源调整策略;
调整单元,用于当所述目标任务满足第一资源调整条件,或者运行所述目标任务的实例满足第二资源调整条件时,基于所述资源调整策略调整用于运行所述目标任务的实例的数量和规格中的至少一种。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收用户配置的资源更新限制,所述资源更新限制包括最大费用和运行所述目标任务的实例的最大数量中的至少一种;
所述调整单元,用于基于所述资源调整策略和所述资源更新限制,调整用于运行所述目标任务的实例的数量和规格中的至少一种。
13.根据权利要求11或12所述的装置,其特征在于,所述目标任务满足第一资源调整条件,包括:所述目标任务的预期执行时长大于所述目标任务的参考执行时长。
14.根据权利要求11至13中任一所述的装置,其特征在于,运行所述目标任务的实例满足第二资源调整条件,包括:所述运行所述目标任务的实例的中央处理器CPU占用率高于占用率阈值。
15.根据权利要求11至14中任一所述的装置,其特征在于,所述目标任务为待执行的任务或者正在执行的任务。
16.根据权利要求11至15中任一所述的装置,其特征在于,所述任务信息包括资源占用量和资源占用时长。
17.根据权利要求11至16中任一所述的装置,其特征在于,所述确定单元,用于根据所述多个任务的任务信息和所述多个任务的参考执行时长,计算所述目标任务的资源需求;根据所述目标任务的资源需求和所述目标任务的可用资源量,确定所述目标任务的资源调整策略,所述资源调整策略用于使得调整后的所述目标任务的可用资源量满足所述目标任务的资源需求。
18.根据权利要求13中所述的装置,其特征在于,所述装置还包括:
计算单元,用于根据初始资源量和所述多个任务的任务信息,计算所述目标任务的预期执行时长。
19.根据权利要求11至18任一所述的装置,其特征在于,所述获取单元,用于获取所述多个任务中的各个任务的任务类型;基于所述各个任务的任务类型,查询任务类型与任务信息的对应关系,得到所述各个任务的任务信息,其中,所述任务类型与任务信息的对应关系基于任务类型和任务信息的配置信息得到。
20.根据权利要求19所述的装置,其特征在于,所述任务类型为获取元数据、切片、转码或合并中的任一种。
21.一种计算设备集群,其特征在于,所述计算设备集群包括至少一个计算设备,各个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至10中任一所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至10中任一所述的方法。
23.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至10中任一所述的方法。
24.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的至少一个计算设备执行如权利要求1至10中任一所述的方法。
25.根据权利要求24所述的芯片,其特征在于,还包括:输入接口、输出接口和所述存储器,所述输入接口、所述输出接口、所述处理器以及所述存储器之间通过内部连接通路相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/092337 WO2023246330A1 (zh) | 2022-06-20 | 2023-05-05 | 资源调整方法、装置、计算设备集群及可读存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210695652 | 2022-06-20 | ||
CN2022106956526 | 2022-06-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117290083A true CN117290083A (zh) | 2023-12-26 |
Family
ID=89250560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211013518.XA Pending CN117290083A (zh) | 2022-06-20 | 2022-08-23 | 资源调整方法、装置、计算设备集群及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117290083A (zh) |
WO (1) | WO2023246330A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118277104A (zh) * | 2024-05-31 | 2024-07-02 | 阿里巴巴(中国)有限公司 | 资源调整方法、云计算资源调整方法、计算设备 |
CN118377601A (zh) * | 2024-06-20 | 2024-07-23 | 浙江大华技术股份有限公司 | 任务处理方法、设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118170530A (zh) * | 2024-02-01 | 2024-06-11 | 中国铁塔股份有限公司 | 资源整合方法、资源整合装置、电子设备及可读存储介质 |
CN118132279B (zh) * | 2024-05-08 | 2024-08-30 | 北京壁仞科技开发有限公司 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
CN118349365B (zh) * | 2024-06-18 | 2024-09-10 | 深圳市银雁科技有限公司 | 一种资源调度方法、装置、电子设备及存储介质 |
CN118656217A (zh) * | 2024-08-16 | 2024-09-17 | 云粒智慧科技有限公司 | 流程调度策略的确定方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815008A (zh) * | 2018-12-21 | 2019-05-28 | 航天信息股份有限公司 | Hadoop集群用户资源监控方法和系统 |
CN110209467B (zh) * | 2019-05-23 | 2021-02-05 | 华中科技大学 | 一种基于机器学习的弹性资源扩展方法和系统 |
CN112084002B (zh) * | 2020-08-03 | 2022-09-02 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
CN113391911B (zh) * | 2021-07-05 | 2024-03-26 | 中国工商银行股份有限公司 | 一种大数据资源动态调度方法、装置和设备 |
CN114327918B (zh) * | 2022-03-11 | 2022-06-10 | 北京百度网讯科技有限公司 | 调整资源量的方法、装置、电子设备和存储介质 |
-
2022
- 2022-08-23 CN CN202211013518.XA patent/CN117290083A/zh active Pending
-
2023
- 2023-05-05 WO PCT/CN2023/092337 patent/WO2023246330A1/zh unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118277104A (zh) * | 2024-05-31 | 2024-07-02 | 阿里巴巴(中国)有限公司 | 资源调整方法、云计算资源调整方法、计算设备 |
CN118277104B (zh) * | 2024-05-31 | 2024-09-24 | 阿里巴巴(中国)有限公司 | 资源调整方法、云计算资源调整方法、计算设备 |
CN118377601A (zh) * | 2024-06-20 | 2024-07-23 | 浙江大华技术股份有限公司 | 任务处理方法、设备及存储介质 |
CN118377601B (zh) * | 2024-06-20 | 2024-09-06 | 浙江大华技术股份有限公司 | 任务处理方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023246330A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117290083A (zh) | 资源调整方法、装置、计算设备集群及可读存储介质 | |
US10572411B2 (en) | Preventing software thread blocking due to interrupts | |
US10904184B2 (en) | Smart message delivery based on transaction processing status | |
CN109408205B (zh) | 基于hadoop集群的任务调度方法和装置 | |
US20180341527A1 (en) | Task deployment method, task deployment apparatus, and storage medium | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN110399213A (zh) | 确定应用程序的资源需求的方法、装置、电子设备及介质 | |
US9703597B2 (en) | Dynamic timeout period adjustment of service requests | |
JP7418569B2 (ja) | 異種プラットフォームでのハードウェアアクセラレーションによるタスクのスケジューリング及び負荷分散のための送信及び同期技術 | |
US10761888B2 (en) | Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium | |
CN114327843A (zh) | 任务调度方法及装置 | |
CN106569898A (zh) | 一种资源分配的方法以及移动终端 | |
US20190278728A1 (en) | Self-moderating bus arbitration architecture | |
CN114595043A (zh) | 一种io调度方法和装置 | |
CN111382141B (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
US10616317B2 (en) | Method and system for affinity load balancing | |
CN114675973A (zh) | 资源管理方法、设备、存储介质及程序产品 | |
US20170063976A1 (en) | Dynamic record-level sharing (rls) provisioning inside a data-sharing subsystem | |
CN117785486B (zh) | 环境资源调配方法、装置、设备和介质 | |
US20230401319A1 (en) | System and method for performing hierarchical and incremental workload scanning | |
US11972287B2 (en) | Data transfer prioritization for services in a service chain | |
US20230136226A1 (en) | Techniques for auto-tuning compute load resources | |
US20220171657A1 (en) | Dynamic workload tuning | |
CN115981872A (zh) | 算法资源的调用方法、装置、电子设备和存储介质 | |
CN116366578A (zh) | 数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |