CN115794337B - 资源调度方法、装置、云平台、设备及存储介质 - Google Patents
资源调度方法、装置、云平台、设备及存储介质 Download PDFInfo
- Publication number
- CN115794337B CN115794337B CN202211423815.1A CN202211423815A CN115794337B CN 115794337 B CN115794337 B CN 115794337B CN 202211423815 A CN202211423815 A CN 202211423815A CN 115794337 B CN115794337 B CN 115794337B
- Authority
- CN
- China
- Prior art keywords
- resource
- task
- target
- node
- migrated
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 139
- 230000005012 migration Effects 0.000 claims description 87
- 238000013508 migration Methods 0.000 claims description 87
- 230000008569 process Effects 0.000 claims description 55
- 230000004044 response Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 23
- 238000012216 screening Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 15
- 230000001965 increasing effect Effects 0.000 claims description 8
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 abstract description 45
- 238000007726 management method Methods 0.000 description 20
- 230000009467 reduction Effects 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000002699 waste material Substances 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012896 Statistical algorithm Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000008786 sensory perception of smell Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种资源调度方法、装置、云平台、设备以及存储介质,涉及云服务技术领域,尤其涉及云计算技术领域。该资源调度方法包括:获取目标任务的任务参数,任务参数包括资源申请量;根据任务参数,确定目标任务的预测运行时长;获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长;根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点;根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。本公开提供的资源调度方法根据目标任务的预测运行时长和候选资源节点中资源的可用时长,选择目标资源节点执行该目标任务,可有效减少资源碎片,提高集群资源的利用率。
Description
技术领域
本公开涉及云服务技术领域,具体涉及云计算技术领域,尤其涉及一种资源调度方法、装置、云平台、设备、存储介质以及计算机程序产品。
背景技术
随着云计算技术的发展以及用户业务需求的扩展,云原生的概念被提出。云原生是一种可以充分利用云计算优势构建和运行应用的方式。在云原生多用户的环境下,集群在长期服务的过程中,会产生资源碎片,导致集群资源无法充分利用,从而导致集群资源的浪费。
发明内容
本公开提供了一种资源调度方法、装置、云平台、设备、存储介质以及计算机程序产品,该资源调度方法、装置可应用于云平台,提高集群资源的利用率。
根据本公开的第一方面,提供了一种资源调度方法,包括:
获取目标任务的任务参数,任务参数包括资源申请量;
根据任务参数,确定目标任务的预测运行时长;
获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长;
根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点;
根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
根据本公开的第二方面,提供了一种资源调度装置,包括:
第一获取模块,被配置为获取目标任务的任务参数,任务参数包括资源申请量;
第一确定模块,被配置为根据任务参数,确定目标任务的预测运行时长;
第二获取模块,被配置为获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长;
第二确定模块,被配置为根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点;
调度模块,被配置为根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
根据本公开的第三方面,提供了一种云平台,包括:
计算集群,包括至少一个资源节点,所述资源节点中的资源用于运行任务;
管理集群,用于接收待运行的任务,并执行第一方面提供的方法,以调度所述计算集群中的资源运行所述待运行的任务。
根据本公开的第四方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面提供的方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面提供的方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据第一方面提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示出了可以应用本公开的资源调度方法的示例性系统架构;
图2示出了根据本公开的资源调度方法的一种实施例的流程图;
图3示出了根据本公开的资源调度方法的第二种实施例的流程图;
图4示出了根据本公开的资源调度方法的第三种实施例的流程图;
图5示出了根据本公开的资源调度装置的一种实施例的结构示意图;
图6示出了根据本公开的云平台的一种实施例的结构示意图;
图7示出了根据本公开的云平台中管理集群的一种实施例的示意图;
图8示出了根据本公开的云平台中管理集群的另一种实施例的示意图;
图9示出了用来实现本公开的资源调度方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
随着云计算技术的发展和用户业务需求的扩展,云原生的概念被提出,云原生是一种构建和运行应用程序的方法,可充分利用云计算的优势。从软件开发角度看,云原生技术为企业带来了更快进行业务创新的价值。利用云原生技术重塑企业的软件生产流水线,可以加大业务组件的复用程度,将软件交付周期降低到小时甚至分钟级别,从而提升业务的市场嗅觉灵敏度,增强市场反应能力。
在云原生技术中,一组网络服务实体称为一个集群,该网络服务实体可以为硬件和/或软件,例如,一组计算机系统或一组服务器。其中,每个集群中包括若干节点,例如,每一台独立主机可作为一个节点。每个节点上分布有相同或不同的资源,节点上的资源至少包括以下一种:CPU(Central Processing Unit,中央处理器)、内存(Memory)、GPU(Graphics Processing Unit,视觉处理器)、NPU(Neural network Processing Unit,神经网络处理器)、XPU(X Processing Unit,算力高于CPU的任意专用处理器)等。用户可以在集群中创建任务,并利用集群上的资源运行该任务。
多用户使用集群资源时,通常是创建作业任务,然后按照当前用户的资源配额对该任务进行资源预分配,再将任务调度到具体的资源节点、绑定相应的资源以运行该任务,在任务运行完毕后释放之前分配的资源。但是由于各类作业任务的运行时长和资源使用情况不同,在集群长期运行任务的过程中,容易出现较多的资源碎片,导致集群资源无法充分利用,从而导致集群资源的浪费。
针对这种浪费,相关技术中的改进方案包括:根据任务的资源使用情况定期打散各节点的资源和任务的调度关系,再根据节点的资源使用情况进行重新调度;或者,根据任务的资源使用情况,对任务的资源进行伸缩。但是前者并不支持在时间维度对资源进行调度以及任务资源的伸缩,后者在对任务的资源进行伸缩时只考虑过去一段时间内资源使用情况,而未考虑任务未来可能的运行时长。因此,仍然会导致大量的资源碎片,集群的资源浪费严重。
本公开提供一种资源调度方法,为集群中各节点的资源添加可用时长作为其资源参数之一,并可以根据目标任务的任务参数自感知任务的预测运行时长,再根据该可用时长和目标任务的预测运行时长,选择与目标任务相适配的资源节点,以减少集群中的资源碎片,提高集群资源的利用率。
图1示出了可以应用本公开的资源调度方法或资源调度装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、网络102和服务器103。其中,网络102用以在终端设备101和服务器103之间提供通信链路,可以包括各种连接类型,例如,有线通信链路、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送信息等。示例性地,终端设备101上可以安装有各种客户端应用。用户可以通过终端设备101向服务器103发送待运行的任务或发送创建新任务的申请,或者通过终端设备101在服务器103上创建新任务,还可以通过终端设备101获取服务器103上的资源类型、资源调度情况、任务运行信息等。
终端设备101可以是硬件,也可以是软件。当终端设备101为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101为软件时,可以安装在上述电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
本公开实施例所提供的资源调度方法一般由服务器103执行,相应地,资源调度装置一般设置于服务器103中。
需要说明的是,图1中的终端设备101、网络102和服务器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备101、网络102和服务器103。
在本公开实施例中,该资源调度方法由服务器103执行,并将处理结果发送到安装有客户端的终端设备101,例如,将以目标呈现规则所呈现的待呈现信息直接发送到终端设备101的客户端或浏览器页面等展示页面中进行呈现。
图2示出了根据本公开的资源调度方法的一种实施例的流程200,参照图2所示,该资源调度方法包括以下步骤:
步骤S201,获取目标任务的任务参数,该任务参数包括资源申请量。
用户在创建待运行的任务时,目的是利用集群中的资源运行该任务,因此,创建任务的过程中,会确定在集群中完整运行该任务所需要的资源量,即任务的资源申请量,并将该资源申请量作为任务参数之一进行标记。示例性地,该资源申请量可以包括需要用到的资源类型和各类型资源对应的资源量。
在本实施例中,资源调度方法的执行主体,例如图1所示的服务器103,在接收到有新创建的待运行的目标任务后,获取目标任务的任务参数,该任务参数包括目标任务的资源申请量,还可以包括任务创建者、任务类型、需使用的计算框架、任务数据规模、创建时间等参数信息。
上述执行主体,获取目标任务的任务参数,以便依据该任务参数为目标任务调度与之适配的资源,用以执行该目标任务。例如,调度与目标任务的资源申请量相适配的资源,用以执行目标任务,以期对集群中的资源进行充分利用,避免因调度过多的资源而产生过多的资源碎片,导致资源浪费。
步骤S202,根据任务参数,确定目标任务的预测运行时长。
在本实施例中,资源调度方法的执行主体,如图1所示的服务器103,根据步骤S201中获取的任务参数,确定目标任务的预测运行时长。
在一些可选的实现方式中,上述执行主体可以通过统计学算法、神经网络模型等至少一种方式,根据目标任务的任务参数,确定其预测运行时长。
在本公开实施例的一些可选的实现方式中,上述执行主体可以通过预先训练的预测模型确定目标任务的预测运行时长。该预先训练的预测模型可以为神经网络模型。
示例性地,可以通过采集集群上的所有任务的任务参数,包括任务创建者、任务类型、任务使用的框架、数据规模、创建时间、运行开始时间、结束时间、任务的资源申请量、实际资源使用量等。利用上述任务参数对预测模型进行训练,其中,通过任务的运行开始时间与结束时间,可以确定任务的实际运行时长,以各任务的任务类型、任务使用的框架、数据规模任务的资源申请量、实际资源使用量等任务参数为输入,以对应任务的实际运行时长为输出,对预测模型进行训练,以期使得该预测模型输出的预测运行时长无限接近其实际运行时长。
上述执行主体可以将获取的目标任务的各任务参数作为输入,输入上述训练好的预测模型,即可得到该目标任务的预测运行时长。
本公开实施例提供的资源调度方法,可以通过目标任务的资源申请量和预测运行时长两方面选择运行该目标任务的目标资源节点,以减少为目标任务调度资源后产生的资源碎片,提高集群资源的利用率。
步骤S203,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长。
在本实施例中,资源调度方法的执行主体,如图1所示的服务器103,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长。其中,集群为资源集群,包括若干节点,每个节点上分布有相同或不同的资源。节点上的资源至少包括以下一种:CPU(Central Processing Unit,中央处理器)、内存(Memory)、GPU(Graphics ProcessingUnit,视觉处理器)、NPU(Neural network Processing Unit,神经网络处理器)、XPU(XProcessing Unit,算力高于CPU的任意专用处理器)等。
在一些可选的实现方式中,可用时长可用以表征某一资源节点上的所有资源的可运行时长。在另外一些可选的实现方式中,可用时长也可以表征某一资源节点上未被调度给任何任务的资源的可用时长。
以下以可用时长t表征某一资源节点上未被调度给任何任务的资源的可运行时长为例,进行说明。相对应的,资源节点上所有资源的可运行时长为该资源节点的总时长T。
在云原生的应用中,集群资源的资源参数往往为空间维度参数,例如,CPU为2核、存储空间Memory为10Gi等,但并不包括时间维度参数。而在本公开实施例中,集群资源的资源参数包括空间维度参数,例如,某节点的资源总量D、资源可用量d,还包括时间维度参数,例如,某节点的总时长T、可用时长t。其中,节点的资源总量D是指该节点上所有同类资源的空间量之和,资源可用量d是指该节点上当前未被调度给任何任务的可用资源量,节点的总时长T是指该节点上所有资源运行任务的总时长,可用时长t是指该节点上当前未被调度给任何任务的可用资源的可运行时长。
本公开实施例通过向节点上资源的资源参数中引入时间维度参数,例如可用时长t,可依据资源可用量d和可用时长t对节点进行双重筛选,从而选择与目标任务的资源申请量和预测运行时长相适配的节点运行目标任务,减少资源碎片,提高资源利用率。
其中,向节点上资源的资源参数中引入时间维度参数,该时间维度参数是依据节点上资源的空间维度参数确定的。例如,集群某节点的总时长T是依据该节点的资源总量D确定的,可用时长t则与其资源可用量d相对应。
在一些可选的实现方式中,可以依据节点上资源的计算速度、运行速度等速度获效率参数,根据其资源总量D确定相应的总时长T,或者根据其资源可用量d确定其可用时长t。
需要指出的是,由于任一节点上的资源总量D是确定的,因此,其对应的总时长T为相对固定值。而随着节点上任务的运行过程的推进,其使用过的资源被释放,因此,节点上的资源可用量d是相对变量,但是其资源可用量d小于或等于资源总量D,相对应的,节点上资源的可用时长t也是相对变量,可用时长t小于或等于总时长T。
例如,某一节点的资源总量D为:CPU-4核、Memory-10Gi,其总时长T为7天,若该节点的资源流转规则为按天流转,即该节点上的资源在运行任务中,以天为单位释放使用过的资源。也就是说,若该节点上的部分资源被调度运行任务,剩余资源的可用时长t为3天,在不向该节点上调度新任务的情况下,每过一天,其对应用过的资源被释放,其剩余资源的可用时长t增加1天。
在本公开实施例的一些可选的实现方式中,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长,包括:根据预设筛选规则,从集群中确定至少一个候选资源节点;获取至少一个候选资源节点的资源可用量;根据资源可用量,确定至少一个候选资源节点的可用时长。
在本公开实施例中,上述执行主体可以先根据预设筛选规则,从集群上的所有节点中确定出至少一个候选资源节点。
在一些可选的实现方式中,预设筛选规则可以采用相关技术中默认的资源调度规则,即不包括时间参数的资源调度规则。示例性地,预设筛选规则可以包括以下至少一项:节点亲和性是否满足、设备资源是否满足、存储卷是否存在等。
本公开中的预设筛选规则主要是依据集群中各节点的资源剩余量与目标任务的资源申请量相比较,进行筛选,将其资源剩余量满足目标任务的资源申请量的节点筛选出来,作为候选资源节点。
上述执行主体在根据预设筛选规则筛选出至少一个候选资源节点之后,获取该至少一个候选资源节点的资源可用量d,并据以确定各候选资源节点的可用时长t,以便再通过该可用时长对至少一个候选资源节点进一步筛选,进一步提高节点的资源利用率,减少资源碎片。
步骤S204,根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点。
在本实施例中,资源调度方法的执行主体,例如图1所示的服务器103,根据目标任务的预测运行时长和各候选资源节点的可用时长,从至少一个候选资源节点中确定出目标资源节点。即,对其资源可用量满足资源申请量的至少一个候选资源节点,依据预测运行时长和可用时长进行二次筛选,选出产生资源碎片相对最小的目标资源节点。经过上述双重筛选,目标资源节点的资源可用量、可用时长与目标任务的资源申请量、预测运行时长相适配,且能够产生的资源碎片相对最小。
示例性地,根据预测运行时长和候选资源节点的可用时长进行二次筛选时,根据其筛选规则不同,筛选的目标资源节点也不同。例如,可以根据候选资源节点的可用时长与预测运行时长的差值,选择其可用时长大于预测运行时长、且与预测运行时长最接近的候选资源节点作为目标资源节点。再例如,还可以结合候选资源节点上资源的流转频率和/或资源对应的总时长等进行筛选。
在本公开实施例的一些可选的实现方式中,根据预测运行时长和可用时长,确定至少一个候选资源节点中用于处理目标任务的目标资源节点,包括:根据预测运行时长和可用时长,确定至少一个候选资源节点的调度分数;根据调度分数,从至少一个候选资源节点中确定目标资源节点。
示例性地,该调度分数可以依据可用时长与预测运行时长的差值确定。
在一些可选的实现方式中,调度分数依据可用时长t和预测运行时长t1的差值与该候选资源节点的总时长T的比值X确定,即X=(t-t1)/T,X越大,说明对目标任务调度该候选资源节点上的资源后,该候选资源节点上剩余的资源碎片越小,则该候选资源节点的调度分数越高。据此,所预测的资源碎片是相对候选资源节点的资源总量D而言,可有效保证所筛选出的目标资源节点在为目标任务调度资源后,其所剩余的资源碎片在该目标资源节点上为最小,从而提高目标资源节点的资源利用率,进而提高集群资源的利用率。
根据上述方式确定调度分数,再选取调度分数最高的候选资源节点,作为目标资源节点,可有效减小目标资源节点中的资源碎片,保证该目标资源节点的资源调度率最大化,提高集群资源利用率。
步骤S205,根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,依据步骤S204中确定的目标资源节点,再根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务,在确保目标资源节点的资源调度率的前提下,运行目标任务,提高集群资源的利用率。
在本公开实施例的一些可选的实现方式中,根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务,包括:根据目标资源节点的资源可用量和目标任务的资源申请量,调度目标资源节点中与资源申请量适配的目标资源运行目标任务,并更新目标资源节点的资源可用量。
示例性地,若在目标资源节点上对目标任务调度的资源量与目标任务的资源申请量相等,则目标资源节点上更新后的资源可用量为更新前的资源可用量与目标任务的资源申请量的差值。
在对目标资源节点上的资源进行调度后,实时更新目标资源节点的资源可用量,可确保集群资源的统计准确度,提高集群资源的调度准确性。
本公开实施例提供的资源调度方法,分别根据目标任务的资源申请量和预测运行时长,对集群中的节点进行双重筛选,以确定目标资源节点,实现目标资源节点上资源的利用率最大化,有效减小资源碎片,从而提高集群中资源的利用率。
图3示出了根据本公开的资源调度方法的一种实施例的流程300,参照图3所示,该资源调度方法包括以下步骤:
步骤S301,获取目标任务的任务参数,该任务参数包括资源申请量。
步骤S302,根据任务参数,确定目标任务的预测运行时长。
步骤S303,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长。
步骤S304,根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点。
步骤S305,根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,依次执行上述步骤S301-S305。其中,步骤S301-S305与前述实施例的步骤S201-S205基本一致,具体实现方式可以参考前述对步骤S201-S205的描述,此处不再赘述。
步骤S306,获取目标资源节点的资源剩余量和在当前时刻之前第一运行时长内目标任务的平均资源使用率。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,在目标任务的运行过程中,获取目标资源节点的资源剩余量和在当前时刻之前第一运行时长内目标任务的平均资源使用率。其中,第一运行时长小于或等于目标任务的实际运行时长。
上述执行主体可在目标任务执行过程中,实时获取目标资源节点当前的资源剩余量,以判断是否可以对该目标资源节点的剩余资源进行再调度。例如,在随着目标任务的运行,当达到目标资源节点的资源流转周期后,被释放的资源也被更新为剩余资源,当有新的任务被创建并待调度时,可对该目标资源节点作为普通节点,重复步骤S301-S305,进行再筛选、调度,以避免目标资源节点上的资源长时间处于空闲状态,进一步提高该目标资源节点上资源的利用率。
上述执行主体还可以实时获取在当前时刻之前第一运行时长内目标任务的平均资源使用率,据以判断调度给目标任务的资源量是否满足目标任务的实际运行需求,避免目标任务运行时资源不足而导致任务运行失败,或者资源过剩而导致资源浪费,可以在确保目标任务运行顺畅的情况下,提高资源利用率。
其中,在当前时刻之前第一运行时长内目标任务的平均资源使用率,可以直接获取,也可以间接获取。
在一些可选的实现方式中,上述执行主体可直接获取目标任务的实际运行时长、任一时刻的实际资源使用总量、任一时刻的瞬时资源使用率等。例如,上述执行主体可以根据当前时刻的实际资源使用总量、当前时刻之前第一运行时长之前时刻的实际资源使用总量,确定该第一运行时长内的实际资源使用量,再根据该第一运行时长及其实际资源使用量,确定该第一运行时长内的平均资源使用率。再例如,上述执行主体还可以根据当前时刻之前第一运行时长内的多个瞬时资源使用率,取平均值,确定该第一运行时长内的平均资源使用率。上述执行主体还可以采用相关技术中可实现的其他计算方法来确定该第一运行时长内的平均资源使用率,在此不做限定和赘述。
步骤S307,响应于目标任务的平均资源使用率满足预设调整条件,确定目标任务的资源调整策略。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,在获取当前时刻之前第一运行时长内目标任务的平均资源使用率后,响应于该平均资源使用率满足预设调整条件,确定目标任务的资源调整策略。
根据当前时刻之前第一运行时长内目标任务的平均资源使用率,判断调度给目标任务的资源量是否需要调整,例如,若该平均资源使用率较高,据以确定调度给目标任务的资源量偏少,难以保证该目标任务成功运行完毕;再例如,若该平均资源使用率较低,并据以确定调度给目标任务的资源量过高,可能导致目标任务运行完毕后剩余资源较多。在出现以上任一种情况时,均需要对调度给目标任务的资源量进行相应的调整,以保证在目标任务的顺畅运行的基础上,提高资源利用率,减少资源碎片。其具体调整策略,则可以依据当前时刻之前第一运行时长内目标任务的平均资源使用率确定。
在本公开实施例的一些可选的实现方式中,响应于目标任务的平均资源使用率满足预设调整条件,确定目标任务的资源调整策略,包括:响应于目标任务的平均资源使用率小于第一预设阈值,确定缩容为目标任务的资源调整策略,并确定目标任务的资源缩容量;响应于目标任务的平均资源使用率大于第二预设阈值,确定扩容为目标任务的资源调整策略,并确定目标任务的资源扩容量;其中,第一预设阈值小于第二预设阈值。
在本方案中,第一预设阈值、第二预设阈值均可以参照目标任务的预测平均使用率设置。其中,目标任务的预测平均使用率为目标任务的资源申请量与预测运行时长的比值。以目标任务的预测平均使用率为1,则第一预设阈值为小于1的百分数,第二预设阈值可以为小于或等于1的百分数。
示例性地,若第一预设阈值r1为50%,在当前时刻之前第一运行时长内目标任务的平均资源使用率R1<r1,即该平均资源使用率R1小于目标任务的预测平均使用率的50%,例如R1=45%,则认为预测平均资源使用率过高,即资源申请量过高,也就是说,目标资源节点上对应目标任务的资源调度量过大。此时可认为该资源调度量的至少50%(即1-50%)会剩余,成为资源碎片,导致资源过度浪费。此时,为减少资源浪费、提高资源利用率,可减少目标资源节点上对应目标任务的资源调度量,即对调度给目标任务的资源量进行缩容。也就是说,确定缩容为目标任务的资源调整策略。
其对应的资源缩容量即为上述可能被剩余的资源量,即为目标资源节点上对应目标任务的资源调度量×(1-r1),或者,也可以确定该目标任务的资源缩容量=目标任务的资源申请量×(1-r1)。
示例性地,若第二预设阈值r2为90%,在当前时刻之前第一运行时长内目标任务的平均资源使用率R1>r2,即该平均资源使用率R1大于目标任务的预测平均使用率的90%,例如R1=96%,则认为该平均资源使用率R1较为接近目标任务的预测平均资源使用率。此时,为避免目标任务的资源申请量小于其实际需求量,保证目标任务能够顺利运行完毕,可适当增加目标资源节点上对应目标任务的资源调度量,即对调度给目标任务的资源量进行扩容。也就是说,将扩容确定为目标任务的资源调整策略。
其对应的资源扩容量可以根据实际情况选择设置,示例性地,可以设置为目标任务的资源申请量的10%-30%,例如,可以设置该目标任务的资源扩容量=资源申请量×20%。需要指出的是,其资源扩容量的设置可以根据其平均资源使用率R1与第二预设阈值r2进行适应性选择,以在保证目标任务能够顺利运行完毕的情况下,避免产生过大的资源碎片,确保资源被充分利用。
本公开实施例的资源调度方法可以根据目标任务在当前时刻之前第一运行时长内的平均资源使用率与其预测平均资源使用率进行比较,确定其资源申请量是否过大或偏小,进而确定相应的资源调整策略,并确定对应的资源缩容量或资源扩容量,以保证目标任务顺利运行、并提高资源利用率,避免产生过大的资源碎片。
步骤S308,根据目标资源节点的资源剩余量和/或资源调整策略,在目标任务运行过程中,调整目标资源节点上对应目标任务的资源调度量。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,根据目标资源节点的资源剩余量和/或资源调整策略,在目标任务运行过程中,调整目标资源节点上对应目标任务的资源调度量。
上述执行主体可以在目标任务的运行过程中,对目标资源节点上对应目标任务的资源调度量进行调整,无需暂停或终止目标任务,有效避免因对资源调度量的调整而重启目标任务,确保目标任务的运行效率。
在本公开实施例的一些可选的实现方式中,响应于资源调整策略为缩容,根据目标资源节点的资源剩余量和/或资源调整策略,在目标任务运行过程中,调整目标资源节点上对应目标任务的资源调度量,包括:获取目标任务的剩余运行时长;根据目标任务的剩余运行时长和目标任务的平均资源使用率,确定目标任务的剩余资源需求量;响应于剩余资源需求量大于资源申请量与资源缩容量的差值,等待第一预设时长,重新确定目标任务的剩余资源需求量;响应于累计等待时长达到第二预设时长,停止缩容;其中第二预设时长大于第一预设时长;响应于剩余资源需求量小于或等于资源申请量与资源缩容量的差值,按照资源缩容量减少目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。
在本方案中,目标任务的资源调整策略为缩容。上述执行主体获取目标任务的剩余运行时长,该剩余运行时长是参考目标任务的预测运行时长而言,是预测剩余运行时长,即预测运行时长与历史运行时长的差值。示例性地,上述执行主体可直接获取目标任务的历史运行时长,根据预测运行时长与历史运行时长的差值确定其剩余运行时长。
其中,目标任务的剩余资源需求量为目标任务在剩余运行时长内所需求的资源量,也是预测值。在本实现方式中,依据目标任务在当前时刻前第一运行时长内的平均资源使用率,预测其剩余资源需求量。示例性地,目标任务的剩余资源需求量为其在第一运行时长内的平均资源使用率与剩余运行时长的乘积。
然后,上述执行主体根据目标任务的资源申请量和资源缩容量,确定其缩容后的资源量能否满足剩余资源需求量,若满足,则立即进行缩容;若不满足,则等待一段时间后,重新确定目标任务的剩余资源需求量、并再次确定是否满足。
也就是说,当执行主体确定目标任务的剩余资源需求量大于其资源申请量与资源缩容量的差值,即确定其不满足缩容需求,等待第一预设时长,重新确定目标任务的剩余资源需求量,然后再次确定是否满足缩容需求,如此循环。而当累计等待时长达到第二预设时长后,停止缩容,即不再对该目标任务进行缩容。
例如,第一预设时长为2小时,第二预设时长为12小时,当执行主体确定目标任务的剩余资源需求量大于其资源申请量与资源缩容量的差值,每等待2小时,重新确定目标任务的剩余资源需求量,直至目标任务的剩余资源需求量小于或等于其资源申请量与资源缩容量的差值;否则,当累计等待时长达12小时,重新确定的目标任务的剩余资源需求量仍大于其资源申请量与资源缩容量的差值时,不再对该目标任务执行缩容。
而当执行主体确定目标任务的剩余资源需求量小于或等于其资源申请量与资源缩容量的差值,即确定其满足缩容需求,此时,执行主体可直接按照资源缩容量减少目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。其中,缩容后对应目标任务的资源调度量为目标任务的资源申请量与资源缩容量的差值,更新后的目标资源节点的资源剩余量为更新前的资源剩余量与资源缩容量之和。
在本实施例的资源调度方法中,通过计算目标任务的剩余资源需求量,并依据其资源申请量和资源缩容量,先确定目标任务当前的资源量是否满足缩容需求,只有在满足缩容需求的情况下,才执行缩容操作,有效保证缩容后的资源量仍然满足目标任务的运行需求,在保证目标任务能够顺畅运行完毕的前提下,减小资源碎片,减少资源浪费。
在本公开实施例的一些可选的实现方式中,响应于资源调整策略为扩容,根据目标资源节点的资源剩余量和/或资源调整策略,在目标任务运行过程中,调整目标资源节点上对应目标任务的资源调度量,包括:响应于目标资源节点的资源剩余量大于或等于资源扩容量,按照资源扩容量增加目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。
在本方案中,目标任务的资源调整策略为扩容。执行主体获取目标资源节点的资源剩余量,当确定目标资源节点的资源剩余量大于或等于资源扩容量时,确定目标资源节点的资源剩余量满足扩容需求,即可以执行扩容。此时,执行主体按照资源扩容量增加目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。其中,扩容后对应目标任务的资源调度量为扩容前对应目标任务的资源调度量与资源扩容量之和,更新后目标资源节点的资源剩余量为更新前的资源剩余量与资源扩容量之差。
执行主体在确定目标资源节点的资源剩余量小于资源扩容量时,认为目标资源节点的资源剩余量不满足扩容需求。此时,执行主体可以停止扩容;也可以在等待第三预设时长后,重新确定资源扩容量,直到重新确定的资源扩容量小于目标资源节点的资源剩余量后,执行对应的扩容操作,或者累计等待时长达到第四预设时长后,再停止扩容。其中,第四预设时长大于第三预设时长。
本实现方式在确定目标资源节点的资源剩余量满足扩容需求的情况下,执行扩容操作,有效保证为目标任务调度足够多的资源来确保目标任务的顺利运行,避免导致目标任务因资源不足而运行失败。
本公开实施例提供的资源调度方法,在目标任务的运行过程中,依据目标任务在第一运行时长内的平均资源使用率,确定是否需要对目标任务的资源量进行调整,并确定对应的资源调整策略,据以对目标资源节点上对应目标任务的资源调度量进行精准缩容或扩容,在不影响目标任务运行效率和运行顺畅性的前提下,有效减少资源碎片,提高资源利用率。
图4示出了根据本公开的资源调度方法的一种实施例的流程400,参照图4所示,该资源调度方法包括以下步骤:
步骤S401,获取目标任务的任务参数,该任务参数包括资源申请量。
步骤S402,根据任务参数,确定目标任务的预测运行时长。
步骤S403,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长。
步骤S404,根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点。
步骤S405,根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,依次执行上述步骤S401-S405。其中,步骤S401-S405与前述实施例的步骤S201-S205基本一致,具体实现方式可以参考前述对步骤S201-S205的描述,此处不再赘述。
步骤S406,获取集群中各节点的资源剩余量和各任务的调度状态信息。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,在集群上各任务的运行过程中,实时获取集群中各节点的资源剩余量以及各任务的调度状态信息,以便实时了解集群中各节点的资源情况,并据以对运行中的任务进行调整,从而将不同节点上的资源碎片进行整合,以进一步提高集群资源的利用率。
步骤S407,响应于各节点的资源剩余量和/或各任务的调度状态信息满足预设整理条件,从各节点中确定出候选整理节点,并确定候选整理节点上的任务为待迁移任务;其中,候选整理节点的剩余资源量大于第三预设阈值。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,对步骤S406中获取的各节点的资源剩余量以及各任务的调度状态信息进行判断,当各节点的资源剩余量、各任务的调度状态信息中任一项满足预设整理条件时,从各节点中确定出候选整理节点,并将候选整理节点上的任务确定为待迁移任务,以期将该待迁移任务迁移至其它节点,然后释放该候选整理节点上对应的资源,实现对不同节点之间的资源碎片的整合。
在本公开实施例的一些可选的实现方式中,预设整理条件包括以下至少一项:至少两个节点的资源剩余量在第五预设时长内始终大于预设剩余量;至少一个任务的调度状态信息在第五预设时长内始终为未调度成功、且集群中各节点的资源剩余量之和大于未调度成功的任务的资源申请量。
其中,执行主体确定在第五预设时长内,集群中至少两个节点的资源剩余量始终大于预设剩余量,说明集群中在不同的节点中均存在较大的资源碎片,可以将不同节点中的资源碎片进行整合,以将资源碎片留存在尽量少的节点中,便于对资源进行调度,进一步提高集群资源的利用率。
相适应的,执行主体确定在第五预设时长内,集群中至少有一个任务始终未能调度成功、且集群中各节点的资源剩余量之和大于该未调度成功的任务的资源申请量,说明,集群中资源碎片的资源总量满足该任务的运行需求,但是由于资源碎片比较分散,无法调度给任务使用。此时,只需要将各节点的资源碎片整合至一个节点中,即可对该任务进行资源调度,从而可以提高集群资源的利用率。
由此可见,以上两个预设整理条件中的任一项被满足时,均可对集群中各节点的资源碎片进行整理、再调度,从而提高集群资源的利用率。
在对集群中各节点的资源碎片进行整合的过程中,并不是对所有节点的资源碎片均进行整合,其中一些节点的资源碎片过小时,可以忽略,以提高整合效率。因此,设置第三预设阈值,该第三预设阈值为对应于资源量的值。筛选剩余资源量大于第三预设阈值的节点作为候选整理节点,并将该候选整理节点中的任务标记为待迁移任务,以期将该待迁移任务迁移至其它候选整理节点中运行,并释放该待迁移任务在原候选整理节点中对应的资源,从而将两个候选资源节点中的资源碎片整合至一个候选整理节点中,实现集群中资源碎片的整合。
步骤S408,获取在当前时刻之前第二运行时长内候选整理节点的平均资源使用率。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,可获取当前时刻之前第二运行时长内候选整理节点的平均资源使用率。
针对任一候选整理节点,执行主体可以直接获取其在当前时刻之前第二运行时长内的平均资源使用率;也可以获取其在当前时刻之前第二运行时长内的资源使用量、多个瞬时资源使用率等值,再通过计算的方式确定其在当前时刻之前第二运行时长内的平均资源使用率。
在一些可选的实现方式中,上述执行主体获取当前时刻之前第二运行时长内候选整理节点的资源使用量,计算该第二运行时长内的资源使用量与第二运行时长的比值,得到该第二运行时长内候选整理节点的平均资源使用率。
在一些可选的实现方式中,上述执行主体获取当前时刻之前第二运行时长内候选整理节点的多个瞬时资源使用率,计算该多个瞬时资源使用率的平均值,作为在第二运行时长内该候选整理节点的平均资源使用率。
步骤S409,根据候选整理节点的平均资源使用率,从候选整理节点中确定出目标迁移节点。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,根据步骤S408中候选整理节点的平均资源使用率,从多个候选整理节点中确定出目标迁移节点。
针对一个候选整理节点中的待迁移任务,执行主体需要从其他候选整理节点中确定出目标迁移节点,以将该待迁移任务迁移至目标迁移节点中继续运行,并释放其在原候选整理节点中对应的资源,充分利用目标迁移节点中的剩余资源,同时增加原候选整理节点中的资源剩余量,从而实现原候选整理节点与目标迁移节点的资源整合,便于整合后的资源可以被调度运行其它任务,提高资源利用率。
在本公开实施例的一些可选的实现方式中,执行主体根据候选整理节点的平均资源使用率的高低排序,从多个候选整理节点中筛选目标迁移节点。
在当前时刻之前的第二运行时长内,候选整理节点的平均资源使用率越高,其在使用过程中产生的资源碎片越小,从而确定该候选整理节点中资源的使用率和使用效率越高。因此,若将待迁移任务迁移至该候选整理节点中继续运行,充分利用其剩余资源,则可以进一步减小其资源碎片,提高其资源利用率。据此,优先将多个候选整理节点中平均资源使用率最高的候选整理节点,作为目标迁移节点,以期最大程度地减小资源碎片,提高资源利用率。
步骤S410,终止待迁移任务,并释放待迁移任务在候选整理节点上对应的资源,并将待迁移任务迁移至目标迁移节点继续运行。
在本公开实施例中,资源调度方法的执行主体,例如图1所示的服务器103,在标记候选整理节点的待迁移任务之后,保存该待迁移任务的运行信息,然后终止该待迁移任务,并释放该待迁移任务在原候选整理节点中对应的资源;在确定目标迁移节点之后,将该待迁移任务及其运行信息迁移至目标迁移节点,在之前运行信息的基础上,继续运行。
通过将待迁移任务由候选整理节点迁移至目标迁移节点继续运行,充分利用目标迁移节点上的剩余资源,提高其剩余资源的利用率,同时增加原候选整理节点上的资源剩余量,可再调度给其它待调度任务运行,进一步提高资源利用率。
在本公开实施例的一些可选的实现方式中,终止待迁移任务后,释放待迁移任务在候选整理节点上对应的资源,并将待迁移任务迁移至目标迁移节点继续运行,包括:在候选整理节点上暂停待迁移任务,并保存待迁移任务的运行信息;终止待迁移任务,并释放待迁移任务在候选整理节点上对应的资源;根据运行信息,确定待迁移任务的剩余资源需求量;获取目标迁移节点的资源剩余可用量;响应于目标迁移节点的资源剩余可用量小于剩余资源需求量,等待第六预设时长,重新获取目标迁移节点的资源剩余可用量;响应于累计等待时长达到第七预设时长,目标迁移节点的资源剩余可用量仍小于待迁移任务的剩余资源需求量,停止迁移待迁移任务或重新确定目标迁移节点;响应于目标迁移节点的资源剩余可用量大于或等于待迁移任务的剩余资源需求量,将待迁移任务及运行信息复制到目标迁移节点,并基于运行信息恢复运行待迁移任务;其中,第七预设时长大于第六预设时长。
上述执行主体,在筛选候选整理节点后,标记候选整理节点上的任务为待迁移任务,然后暂停该待迁移任务,并保存其运行信息,以便在迁移之后,可以基于其保存的运行信息在暂停的位置继续运行,而无需对待迁移任务完全重新运行,可保证该待迁移任务的运行效率,避免因整合资源碎片而影响待迁移任务的任务完成时间。
在保存待迁移任务的运行信息之后,可以在候选整理节点上终止该待迁移任务,并释放该待迁移任务在候选整理节点上对应的资源,便于调度给其它任务使用,避免资源浪费。
然后,上述执行主体根据待迁移任务的运行信息,确定该待迁移任务的剩余资源需求量。其中,待迁移任务的剩余资源需求量是指,待迁移任务在候选整理节点上未运行部分若继续运行完毕所需要的资源量。
在本公开实施例的一些可选的实现方式中,运行信息包括已运行时长、待运行时长和历史资源使用量;以及根据运行信息,确定待迁移任务的剩余资源需求量,包括:根据已运行时长和历史资源使用量,确定待迁移任务的历史资源使用率;根据历史资源使用率和待运行时长,确定待迁移任务的剩余资源需求量。
其中,历史资源使用量表征待迁移任务在已运行时长中所使用的资源量。待运行时长表征根据预测运行时长和已运行时长确定的待迁移任务尚未运行的时长。
示例性地,执行主体根据待迁移任务的已运行时长和历史资源使用量,计算历史资源使用量与已运行时长的比值,得到待迁移任务的历史资源使用率;然后根据该历史资源使用率与待运行时长的乘积,确定待迁移任务的剩余资源需求量。
在本方案中,执行主体根据待迁移任务的运行信息,重新确定其剩余资源需求量,提高剩余资源需求量的准确度,进而提高为该待迁移任务重新调度资源的调度精度,减少任务运行过程中产生的资源碎片,进一步提高资源利用率。
在确定待迁移任务的剩余资源需求量之后,上述执行主体获取目标迁移节点的资源剩余可用量,并据以确定目标迁移节点的资源剩余可用量是否满足待迁移任务的剩余资源需求量。若满足,则可以将该待迁移任务迁移至目标资源节点继续运行;否则无法完成迁移。
示例性地,若目标迁移节点的资源剩余可用量大于或等于待迁移任务的剩余资源需求量,则将待迁移任务及运行信息复制到目标迁移节点,并基于该运行信息,在目标迁移节点上调度其资源继续运行待迁移任务,完成待迁移任务的迁移,提高目标资源节点上资源的利用率。
在一些可选的实现方式中,若执行主体确定目标迁移节点的资源剩余可用量小于剩余资源需求量,则等待第六预设时长,并重新获取目标迁移节点的资源剩余可用量;若重新获取的目标迁移节点的资源剩余可用量大于或等于待迁移任务的剩余资源需求量,则可以执行上述迁移过程;否则循环上述等待第六预设时长、并重新获取目标迁移节点的资源剩余可用量。当累计等待时长达到第七预设时长,目标迁移节点的资源剩余可用量仍小于待迁移任务的剩余资源需求量,则停止迁移待迁移任务或者重新确定目标迁移节点。其中,第七预设时长大于第六预设时长。
需要指出的是,第六预设时长需大于或等于目标迁移节点的资源流转时长,以确保等待第六预设时长后,目标迁移节点的资源剩余可用量发生变化。
根据本公开实施例提供的资源调度方法,在对目标任务进行资源调度之后,在集群中各任务运行过程中,实时获取集群中各节点的资源碎片情况和任务调度情况,以便及时对不同节点中的资源碎片进行整合,进一步提升集群资源的利用率,减少资源碎片。
作为对上述各图所示方法的实现,图5示出了根据本公开的资源调度装置的一个实施例。该资源调度装置与图2所示的方法实施例相对应,该装置可以应用于各种电子设备中。
参照图5所示,本公开实施例提供的资源调度装置500包括:第一获取模块501、第一确定模块502、第二获取模块503、第二确定模块504和调度模块505。其中,第一获取模块501被配置为,获取目标任务的任务参数,任务参数包括资源申请量;第一确定模块502被配置为,根据任务参数,确定目标任务的预测运行时长;第二获取模块503被配置为,获取集群中至少一个候选资源节点的资源参数,资源参数包括可用时长;第二确定模块504被配置为,根据预测运行时长和可用时长,从至少一个候选资源节点中确定出目标资源节点;调度模块505被配置为,根据目标资源节点的资源参数和资源申请量,调度目标资源节点中的目标资源运行目标任务。
在本实施例的资源调度装置500中,第一获取模块501、第一确定模块502、第二获取模块503、第二确定模块504和调度模块505的具体处理及其所带来的技术效果,可分别参考图2对应实施例中的步骤S201-S205的相关说明,在此不再赘述。
在本公开实施例的一些可选的实现方式中,第二获取模块503被配置为:根据预设筛选规则,从集群中确定至少一个候选资源节点;获取至少一个候选资源节点的资源可用量;根据资源可用量,确定至少一个候选资源节点的可用时长。
在本公开实施例的一些可选的实现方式中,第二确定模块504被配置为:根据预测运行时长和可用时长,确定至少一个候选资源节点的调度分数;根据调度分数,从至少一个候选资源节点中确定目标资源节点。
在本公开实施例的一些可选的实现方式中,调度模块505被配置为:根据目标资源节点的资源可用量和目标任务的资源申请量,调度目标资源节点中与资源申请量适配的目标资源运行目标任务,并更新目标资源节点的资源可用量。
在本公开实施例的一些可选的实现方式中,该资源调度装置500还包括:第三获取模块、第三确定模块和调整模块。其中,第三获取模块被配置为,获取目标资源节点的资源剩余量和在当前时刻之前第一运行时长内目标任务的平均资源使用率;第三确定模块被配置为,响应于目标任务的平均资源使用率满足预设调整条件,确定目标任务的资源调整策略;调整模块被配置为,根据目标资源节点的资源剩余量和/或资源调整策略,在目标任务运行过程中,调整目标资源节点上对应目标任务的资源调度量。
在本实施例的资源调度装置500中,第三获取模块、第三确定模块和调整模块的具体处理及其所带来的技术效果,可分别参考图3对应实施例中的步骤S306-S308的相关说明,在此不再赘述。
在本公开实施例的一些可选的实现方式中,第三确定模块包括:第一确定单元和第二确定单元。其中,第一确定单元被配置为,响应于目标任务的平均资源使用率小于第一预设阈值,确定缩容为目标任务的资源调整策略,并确定目标任务的资源缩容量;第二确定单元被配置为,响应于目标任务的平均资源使用率大于第二预设阈值,确定扩容为目标任务的资源调整策略,并确定目标任务的资源扩容量;其中,第一预设阈值小于第二预设阈值。
在本公开实施例的一些可选的实现方式中,响应于资源调整策略为缩容,调整模块进一步被配置为:获取目标任务的剩余运行时长;根据目标任务的剩余运行时长和目标任务的平均资源使用率,确定目标任务的剩余资源需求量;响应于剩余资源需求量大于资源申请量与资源缩容量的差值,等待第一预设时长,重新确定目标任务的剩余资源需求量;响应于累计等待时长达到第二预设时长,停止缩容;其中,第二预设时长大于第一预设时长;响应于剩余资源需求量小于或等于资源申请量与资源缩容量的差值,按照资源缩容量减少目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。
在本公开实施例的一些可选的实现方式中,响应于资源调整策略为扩容,调度模块进一步被配置为:响应于目标资源节点的资源剩余量大于或等于资源扩容量,按照资源扩容量增加目标资源节点上对应目标任务的资源调度量,并更新目标资源节点的资源剩余量。
在本公开实施例的一些可选的实现方式中,该资源调度装置500还包括:第四获取模块、第四确定模块、第五获取模块、第五确定模块和迁移模块。其中,第四获取模块被配置为,获取集群中各节点的资源剩余量和各任务的调度状态信息;第四确定模块被配置为,响应于各节点的资源剩余量和/或各任务的调度状态信息满足预设整理条件,从各节点中确定出候选整理节点,并确定候选整理节点上的任务为待迁移任务;其中,候选整理节点的剩余资源量大于第三预设阈值;第五获取模块被配置为,获取在当前时刻之前第二运行时长内候选整理节点的平均资源使用率;第五确定模块被配置为,根据候选整理节点的平均资源使用率,从候选整理节点中确定出目标迁移节点;迁移模块被配置为,终止待迁移任务,并释放待迁移任务在候选整理节点上对应的资源,并将待迁移任务迁移至目标迁移节点继续运行。
在本实施例的资源调度装置500中,第四获取模块、第四确定模块、第五获取模块、第五确定模块和迁移模块的具体处理及其所带来的技术效果,可分别参考图4对应实施例中的步骤S406-S410的相关说明,在此不再赘述。
在本公开实施例的一些可选的实现方式中,预设整理条件包括以下至少一项:至少两个节点的资源剩余量在第三预设时长内始终大于预设剩余量;至少一个任务的调度状态信息在第三预设时长内始终为未调度成功、且集群中各节点的资源剩余量之和大于未调度成功的任务的资源申请量。
在本公开实施例的一些可选的实现方式中,迁移模块包括:第一处理单元、第二处理单元、第三确定单元、第一获取单元和迁移单元。其中,第一处理单元被配置为,在候选整理节点上暂停待迁移任务,并保存待迁移任务的运行信息;第二处理单元被配置为,终止待迁移任务,并释放待迁移任务在候选整理节点上对应的资源;第三确定单元被配置为,根据运行信息,确定待迁移任务的剩余资源需求量;第一获取单元被配置为,获取目标迁移节点的资源剩余可用量;迁移单元被配置为:响应于目标迁移节点的资源剩余可用量小于剩余资源需求量,等待第四预设时长,重新获取目标迁移节点的资源剩余可用量;响应于累计等待时长达到第五预设时长,资源剩余可用量仍小于剩余资源需求量,停止迁移待迁移任务或重新确定目标迁移节点;响应于目标迁移节点的资源剩余可用量大于或等于待迁移任务的剩余资源需求量,将待迁移任务及运行信息复制到目标迁移节点,并基于运行信息恢复运行待迁移任务;其中,第五预设时长大于第四预设时长。
在本公开实施例的一些可选的实现方式中,运行信息包括已运行时长、待运行时长和历史资源使用量;以及第三确定单元进一步被配置为:根据已运行时长和历史资源使用量,确定待迁移任务的历史资源使用率;根据历史资源使用率和待运行时长,确定待迁移任务的剩余资源需求量。
本公开还提供一种云平台,图6是本公开的云平台的一种示例性实施例的结构示意图。参照图6所示,该云平台600包括至少一个计算集群610和至少一个管理集群620。其中,计算集群610包括至少一个资源节点611,资源节点611中的资源用于运行任务;管理集群620用于接收待运行的任务,并执行如图2-图4中所示的资源调度方法,以调度计算集群610中的资源来运行该待运行的任务。
示例性地,管理集群620接收用户发送或创建的待运行任务,并根据该待运行任务的任务参数,确定待运行任务的预测运行时长;然后根据待运行任务的任务参数中的资源申请量,从计算集群610的至少一个资源节点611中确定至少一个候选资源节点;然后根据候选资源节点的可用时长和待运行任务的预测运行时长,从至少一个候选资源节点中确定目标资源节点,以保证目标资源节点为该待运行任务调度资源后,其资源利用率最高,从而有效减少计算集群610中的资源碎片,提高其资源利用率。
图7示出了云平台的管理集群的一种实施例的示意图。在本公开实施例中,管理集群700包括垂直伸缩组件710、任务资源监控组件720、资源调度组件730和节点资源管理组件740。该图7所示为在目标任务运行过程中,管理集群700对目标资源节点上对应目标任务的资源进行再调整的控制过程。在图7中,还示出了管理集群700在执行资源调度方法的过程中,垂直伸缩组件710、任务资源监控组件720、资源调度组件730和节点资源管理组件740之间的交互关系及交互过程。
参照图7所示,本公开实施例的管理集群700执行该资源调度方法是在目标任务运行过程中执行的,主要是对目标资源节点上对应目标任务的资源调整过程,具体如下:
垂直伸缩组件710可通过任务资源监控组件720查询计算集群中各任务的资源使用情况,例如目标资源节点上在当前时刻之前第一运行时长内目标任务的平均资源使用率;
任务资源监控组件720实时监控目标资源节点上目标任务的资源使用情况,并将该目标任务的资源使用情况发送给垂直伸缩组件710;示例性地,目标任务的资源使用情况包括在当前时刻之前第一运行时长内目标任务的平均资源使用率;
示例性地,第一运行时长内目标任务的平均资源使用率的具体获取过程,与前述图3所示实施例的步骤S306中的过程基本一致,具体实现方式可参考前述对步骤S306的描述,在此不再赘述。
垂直伸缩组件710根据目标任务的资源使用情况,判断目标任务的资源是否需要垂直伸缩,其中,垂直伸缩表征对目标任务的资源进行扩容或缩容:若需要,则计算相应的资源扩容量或资源缩容量,并创建对应的资源扩容任务或资源缩容任务,并将创建的任务发送给资源调度组件730;若不需要,则结束此次调整过程;
示例性地,垂直伸缩组件710根据从任务资源监控组件720处获得的目标任务的平均资源使用率,确定目标任务的资源是否需要垂直伸缩:若目标任务的平均资源使用率小于第一预设阈值,确定目标任务的资源需要缩容;若目标任务的平均资源使用率大于第二预设阈值,确定目标任务的资源需要扩容。
其中,关于第一预设阈值、第二预设阈值、资源缩容量、资源扩容量及相关的具体确定过程,与前述图3所示实施例的步骤S307中的相关过程基本一致,具体实现方式可参考前述对步骤S307的相关描述,在此不再赘述。
资源调度组件730监听到资源缩容任务后,直接将资源缩容任务发送给节点资源管理组件740;资源调度组件730监听到资源扩容任务,从任务资源监控组件720处获取目标资源节点的资源剩余量,并判断该目标资源节点的资源剩余量是否满足扩容需求,即判断该目标资源节点的资源剩余量是否大于资源扩容量:若满足,则确定资源扩容任务可执行,标记为可执行的资源扩容任务,并发送给节点资源管理组件740;若不满足,则等待第三预设时长后重新确定资源扩容量,当累积等待时长达到第四预设时长,则直接向垂直伸缩组件710发送扩容失败的信息;
若节点资源管理组件740监听到资源缩容任务,确定目标任务的剩余资源需求量,并判断对目标任务的资源执行缩容后是否满足该剩余资源需求量:若满足,则在目标任务运行过程中,执行缩容,即在不停止运行目标任务的情况下,对目标资源节点上对应目标任务的资源进行缩容,并通知资源调度组件730更新目标资源节点的资源剩余量;若不满足,则等待第一预设时长后重新确定目标任务的剩余资源需求量;当累计等待时长达到第二预设时长时,向垂直伸缩组件710发送缩容失败的信息;
其中,目标任务的剩余资源需求量的确定过程、对目标任务的资源进行缩容的过程,与图3所示实施例的步骤S308中的相关过程基本一致,具体实现方式可参考前述对步骤S308的相关描述,在此不再赘述。
节点资源管理组件740监听到可执行的资源扩容任务,在目标任务运行过程中,执行扩容,即在不停止运行目标任务的情况下,对目标资源节点上对应目标任务的资源进行扩容,并通知资源调度组件730更新目标资源节点的资源剩余量;
资源调度组件730在更新目标资源节点的资源剩余量后,通知垂直伸缩组件710;
垂直伸缩组件710接收到通知后,确定目标任务的资源扩容或缩容成功。
图8示出了云平台的管理集群的另一种实施例的示意图。在本公开实施例中,管理集群800包括碎片整理组件810、节点资源监控组件820、任务调度组件830和任务迁移组件840。该图8所示为在目标任务运行过程中,管理集群800对计算集群中各资源节点上的资源碎片进行整合的控制过程。在图8中,还示出了管理集群800在执行资源调度方法的过程中,碎片整理组件810、节点资源监控组件820、任务调度组件830和任务迁移组件840之间的交互关系及交互过程。
参照图8所示,本公开实施例的管理集群800执行该资源调度方法是在计算集群的资源运行任务过程中执行的,主要是对计算集群中各资源节点上的资源碎片的整合过程,具体如下:
碎片整理组件810可通过节点资源监控组件820查询计算集群中各资源节点的资源剩余量,并能够实时获取计算集群中各任务的调度状态信息,并据以判断是否满足预设整理条件:若满足,则从各资源节点中确定出候选整理节点,并标记候选整理节点上的任务为待迁移任务;
其中,预设整理条件,与图4所示实施例中步骤S407中的预设整理条件一致,在此不再赘述。
节点资源监控组件820实时监控计算集群中各资源节点的资源剩余量,并发送给碎片整理组件810进行是否满足预设整理条件的判断;
当任务调度组件830监听到候选整理节点和待迁移任务,获取在当前时刻之前第二运行时长内各候选整理节点的平均资源使用率,并据以从候选整理节点中确定出目标迁移节点;
其中,各候选整理节点的平均资源使用率的获取过程,与图4所示实施例中的步骤S408中的的相关过程基本一致,具体实现方式可参考前述对步骤S408的相关描述,在此不再赘述。
根据候选整理节点的平均资源使用率确定目标资源节点的过程,与图4所示实施例中步骤S409中的相关过程基本一致,具体实现方式可参考前述对步骤S409的相关描述,在此不再赘述。
任务迁移组件840监听到目标迁移节点后,通过节点资源监控组件820获取目标迁移节点的资源剩余可用量;同时,在原候选整理节点中暂停待迁移任务,并保存该待迁移任务的运行信息;然后终止该待迁移任务,并释放其在原候选整理节点上对应的资源,并通知节点资源监控组件820更新该原候选整理节点的资源剩余量;再确定待迁移任务的剩余资源需求量,并根据该剩余资源需求量,确定目标迁移节点的资源剩余可用量是否满足迁移需求:若不满足,则通知碎片整理组件810资源碎片整理失败;若满足,则将待迁移任务迁移至目标迁移节点,并恢复运行;
其中,待迁移任务的剩余资源需求量的确定过程,与图4所示实施例中步骤S410中的相关过程基本一致,其具体实现方式可参考前述对步骤S410的相关描述,在此不再赘述。
示例性地,将待迁移任务迁移至目标迁移节点,并恢复运行,包括:将待迁移任务及其保存的运行信息复制到目标迁移节点,并调度目标迁移节点上的资源,从待迁移任务停止运行的地方继续运行该待迁移任务。
在完成待迁移任务的迁移后,节点资源监控组件820更新目标迁移节点的资源剩余量,并通知碎片整理组件810资源碎片整理成功;
碎片整理组件810确定资源碎片整理成功后,清理候选整理节点、待迁移任务、目标迁移节点等相关的标签,完成一次资源碎片整理过程。
根据本公开的实施例,本公开还提供了一种电子设备、一种存储有计算机指令的非瞬时计算机可读存储介质和一种计算机程序产品。
其中,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述资源调度方法。
在一些实施例中,一种存储有计算机指令的非瞬时计算机可读存储介质中,计算机指令用于使计算机执行上述资源调度方法。
在一些实施例中,一种计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现上述资源调度方法。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如骨干网络的生成方法或图像处理方法。例如,在一些实施例中,资源调度方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的骨干网络的生成方法或图像处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (24)
1.一种资源调度方法,包括:
获取目标任务的任务参数,所述任务参数包括资源申请量;
根据所述任务参数,确定所述目标任务的预测运行时长;
获取集群中至少一个候选资源节点的资源参数,所述资源参数包括可用时长;
根据所述预测运行时长和所述可用时长,从所述至少一个候选资源节点中确定出目标资源节点;
根据所述目标资源节点的资源参数和所述资源申请量,调度所述目标资源节点中的目标资源运行所述目标任务;
所述方法还包括:
获取所述目标资源节点的资源剩余量和在当前时刻之前第一运行时长内所述目标任务的平均资源使用率;
响应于所述目标任务的平均资源使用率满足预设调整条件,确定所述目标任务的资源调整策略;
根据所述目标资源节点的资源剩余量和/或所述资源调整策略,在所述目标任务运行过程中,调整所述目标资源节点上对应所述目标任务的资源调度量;
响应于所述资源调整策略为扩容,所述根据所述目标资源节点的资源剩余量和/或所述资源调整策略,在所述目标任务运行过程中,调整所述目标资源节点上对应所述目标任务的资源调度量,包括:
响应于所述目标资源节点的资源剩余量小于资源扩容量,等待第三预设时长,重新确定所述资源扩容量;响应于累积等待时长达到第四预设时长,停止扩容;其中,所述第四预设时长大于所述第三预设时长;
响应于所述目标资源节点的资源剩余量大于或等于所述资源扩容量,按照所述资源扩容量增加所述目标资源节点上对应所述目标任务的资源调度量,并更新所述目标资源节点的资源剩余量。
2.根据权利要求1所述的资源调度方法,其中,所述获取集群中至少一个候选资源节点的资源参数,所述资源参数包括可用时长,包括:
根据预设筛选规则,从所述集群中确定至少一个候选资源节点;
获取所述至少一个候选资源节点的资源可用量;
根据所述资源可用量,确定所述至少一个候选资源节点的可用时长。
3.根据权利要求1所述的资源调度方法,其中,所述根据所述预测运行时长和所述可用时长,确定所述至少一个候选资源节点中用于处理所述目标任务的目标资源节点,包括:
根据所述预测运行时长和所述可用时长,确定所述至少一个候选资源节点的调度分数;
根据所述调度分数,从所述至少一个候选资源节点中确定所述目标资源节点。
4.根据权利要求1所述的资源调度方法,其中,根据所述目标资源节点的资源参数和所述资源申请量,调度所述目标资源节点中的目标资源运行所述目标任务,包括:
根据所述目标资源节点的资源可用量和所述目标任务的资源申请量,调度所述目标资源节点中与所述资源申请量适配的目标资源运行所述目标任务,并更新所述目标资源节点的资源可用量。
5.根据权利要求1所述的资源调度方法,其中,所述响应于所述目标任务的平均资源使用率满足预设调整条件,确定所述目标任务的资源调整策略,包括:
响应于所述目标任务的平均资源使用率小于第一预设阈值,确定缩容为所述目标任务的资源调整策略,并确定所述目标任务的资源缩容量;
响应于所述目标任务的平均资源使用率大于第二预设阈值,确定扩容为所述目标任务的资源调整策略,并确定所述目标任务的资源扩容量;
其中,所述第一预设阈值小于所述第二预设阈值。
6.根据权利要求5所述的资源调度方法,其中,响应于所述资源调整策略为缩容,所述根据所述目标资源节点的资源剩余量和/或所述资源调整策略,在所述目标任务运行过程中,调整所述目标资源节点上对应所述目标任务的资源调度量,包括:
获取所述目标任务的剩余运行时长;
根据所述目标任务的剩余运行时长和所述目标任务的平均资源使用率,确定所述目标任务的剩余资源需求量;
响应于所述剩余资源需求量大于所述资源申请量与所述资源缩容量的差值,等待第一预设时长,重新确定所述目标任务的剩余资源需求量;响应于累计等待时长达到第二预设时长,停止缩容;其中所述第二预设时长大于所述第一预设时长;
响应于所述剩余资源需求量小于或等于所述资源申请量与所述资源缩容量的差值,按照所述资源缩容量减少所述目标资源节点上对应所述目标任务的资源调度量,并更新所述目标资源节点的资源剩余量。
7.根据权利要求1至6中任一项所述的资源调度方法,所述方法还包括:
获取所述集群中各节点的资源剩余量和各任务的调度状态信息;
响应于所述各节点的资源剩余量和/或各任务的调度状态信息满足预设整理条件,从所述各节点中确定出候选整理节点,并确定所述候选整理节点上的任务为待迁移任务;其中,所述候选整理节点的剩余资源量大于第三预设阈值;
获取在当前时刻之前第二运行时长内所述候选整理节点的平均资源使用率;
根据所述候选整理节点的平均资源使用率,从所述候选整理节点中确定出目标迁移节点;
终止所述待迁移任务,并释放所述待迁移任务在所述候选整理节点上对应的资源,并将所述待迁移任务迁移至所述目标迁移节点继续运行。
8.根据权利要求7所述的资源调度方法,其中,所述预设整理条件包括以下至少一项:
至少两个节点的资源剩余量在第五预设时长内始终大于预设剩余量;
至少一个任务的调度状态信息在第五预设时长内始终为未调度成功、且所述集群中各节点的资源剩余量之和大于所述未调度成功的任务的资源申请量。
9.根据权利要求7所述的资源调度方法,其中,所述终止所述待迁移任务后,释放所述待迁移任务在所述候选整理节点上对应的资源,并将所述待迁移任务迁移至所述目标迁移节点继续运行,包括:
在所述候选整理节点上暂停所述待迁移任务,并保存所述待迁移任务的运行信息;
终止所述待迁移任务,并释放所述待迁移任务在所述候选整理节点上对应的资源;
根据所述运行信息,确定所述待迁移任务的剩余资源需求量;
获取所述目标迁移节点的资源剩余可用量;
响应于所述目标迁移节点的资源剩余可用量小于所述剩余资源需求量,等待第六预设时长,重新获取所述目标迁移节点的资源剩余可用量;响应于累计等待时长达到第七预设时长,所述资源剩余可用量仍小于所述剩余资源需求量,停止迁移所述待迁移任务或重新确定目标迁移节点;
响应于所述目标迁移节点的资源剩余可用量大于或等于所述待迁移任务的剩余资源需求量,将所述待迁移任务及所述运行信息复制到所述目标迁移节点,并基于所述运行信息恢复运行所述待迁移任务;
其中,所述第七预设时长大于所述第六预设时长。
10.根据权利要求9所述的资源调度方法,其中,所述运行信息包括已运行时长、待运行时长和历史资源使用量;以及
所述根据所述运行信息,确定所述待迁移任务的剩余资源需求量,包括:
根据所述已运行时长和所述历史资源使用量,确定所述待迁移任务的历史资源使用率;
根据所述历史资源使用率和所述待运行时长,确定所述待迁移任务的剩余资源需求量。
11.一种资源调度装置,包括:
第一获取模块,被配置为获取目标任务的任务参数,所述任务参数包括资源申请量;
第一确定模块,被配置为根据所述任务参数,确定所述目标任务的预测运行时长;
第二获取模块,被配置为获取集群中至少一个候选资源节点的资源参数,所述资源参数包括可用时长;
第二确定模块,被配置为根据所述预测运行时长和所述可用时长,从所述至少一个候选资源节点中确定出目标资源节点;
调度模块,被配置为根据所述目标资源节点的资源参数和所述资源申请量,调度所述目标资源节点中的目标资源运行所述目标任务;
所述装置还包括:
第三获取模块,被配置为获取所述目标资源节点的资源剩余量和在当前时刻之前第一运行时长内所述目标任务的平均资源使用率;
第三确定模块,被配置为响应于所述目标任务的平均资源使用率满足预设调整条件,确定所述目标任务的资源调整策略;
调整模块,被配置为根据所述目标资源节点的资源剩余量和/或所述资源调整策略,在所述目标任务运行过程中,调整所述目标资源节点上对应所述目标任务的资源调度量;
其中,响应于所述资源调整策略为扩容,所述调度模块被配置为:
响应于所述目标资源节点的资源剩余量小于资源扩容量,等待第三预设时长,重新确定所述资源扩容量;响应于累积等待时长达到第四预设时长,停止扩容;其中,所述第四预设时长大于所述第三预设时长;
响应于所述目标资源节点的资源剩余量大于或等于所述资源扩容量,按照所述资源扩容量增加所述目标资源节点上对应所述目标任务的资源调度量,并更新所述目标资源节点的资源剩余量。
12.根据权利要求11所述的资源调度装置,其中,所述第二获取模块被配置为:
根据预设筛选规则,从所述集群中确定至少一个候选资源节点;
获取所述至少一个候选资源节点的资源可用量;
根据所述资源可用量,确定所述至少一个候选资源节点的可用时长。
13.根据权利要求11所述的资源调度装置,其中,所述第二确定模块被配置为:
根据所述预测运行时长和所述可用时长,确定所述至少一个候选资源节点的调度分数;
根据所述调度分数,从所述至少一个候选资源节点中确定所述目标资源节点。
14.根据权利要求11所述的资源调度装置,其中,所述调度模块被配置为:
根据所述目标资源节点的资源可用量和所述目标任务的资源申请量,调度所述目标资源节点中与所述资源申请量适配的目标资源运行所述目标任务,并更新所述目标资源节点的资源可用量。
15.根据权利要求11所述的资源调度装置,其中,所述第三确定模块包括:
第一确定单元,被配置为响应于所述目标任务的平均资源使用率小于第一预设阈值,确定缩容为所述目标任务的资源调整策略,并确定所述目标任务的资源缩容量;
第二确定单元,被配置为响应于所述目标任务的平均资源使用率大于第二预设阈值,确定扩容为所述目标任务的资源调整策略,并确定所述目标任务的资源扩容量;
其中,所述第一预设阈值小于所述第二预设阈值。
16.根据权利要求15所述的资源调度装置,其中,响应于所述资源调整策略为缩容,所述调整模块被配置为:
获取所述目标任务的剩余运行时长;
根据所述目标任务的剩余运行时长和所述目标任务的平均资源使用率,确定所述目标任务的剩余资源需求量;
响应于所述剩余资源需求量大于所述资源申请量与所述资源缩容量的差值,等待第一预设时长,重新确定所述目标任务的剩余资源需求量;响应于累计等待时长达到第二预设时长,停止缩容;其中,所述第二预设时长大于所述第一预设时长;
响应于所述剩余资源需求量小于或等于所述资源申请量与所述资源缩容量的差值,按照所述资源缩容量减少所述目标资源节点上对应所述目标任务的资源调度量,并更新所述目标资源节点的资源剩余量。
17.根据权利要求11至16中任一项所述的资源调度装置,所述装置还包括:
第四获取模块,被配置为获取所述集群中各节点的资源剩余量和各任务的调度状态信息;
第四确定模块,被配置为响应于所述各节点的资源剩余量和/或各任务的调度状态信息满足预设整理条件,从所述各节点中确定出候选整理节点,并确定所述候选整理节点上的任务为待迁移任务;其中,所述候选整理节点的剩余资源量大于第三预设阈值;
第五获取模块,被配置为获取在当前时刻之前第二运行时长内所述候选整理节点的平均资源使用率;
第五确定模块,被配置为根据所述候选整理节点的平均资源使用率,从所述候选整理节点中确定出目标迁移节点;
迁移模块,被配置为终止所述待迁移任务,并释放所述待迁移任务在所述候选整理节点上对应的资源,并将所述待迁移任务迁移至所述目标迁移节点继续运行。
18.根据权利要求17所述的资源调度装置,其中,所述预设整理条件包括以下至少一项:
至少两个节点的资源剩余量在第三预设时长内始终大于预设剩余量;
至少一个任务的调度状态信息在第三预设时长内始终为未调度成功、且所述集群中各节点的资源剩余量之和大于所述未调度成功的任务的资源申请量。
19.根据权利要求17所述的资源调度装置,其中,所述迁移模块包括:
第一处理单元,被配置为在所述候选整理节点上暂停所述待迁移任务,并保存所述待迁移任务的运行信息;
第二处理单元,被配置为终止所述待迁移任务,并释放所述待迁移任务在所述候选整理节点上对应的资源;
第三确定单元,被配置为根据所述运行信息,确定所述待迁移任务的剩余资源需求量;
第一获取单元,被配置为获取所述目标迁移节点的资源剩余可用量;
迁移单元,被配置为:响应于所述目标迁移节点的资源剩余可用量小于所述剩余资源需求量,等待第四预设时长,重新获取所述目标迁移节点的资源剩余可用量;响应于累计等待时长达到第五预设时长,所述资源剩余可用量仍小于所述剩余资源需求量,停止迁移所述待迁移任务或重新确定目标迁移节点;响应于所述目标迁移节点的资源剩余可用量大于或等于所述待迁移任务的剩余资源需求量,将所述待迁移任务及所述运行信息复制到所述目标迁移节点,并基于所述运行信息恢复运行所述待迁移任务;其中,所述第五预设时长大于所述第四预设时长。
20.根据权利要求19所述的资源调度装置,其中,所述运行信息包括已运行时长、待运行时长和历史资源使用量;以及所述第三确定单元被配置为:
根据所述已运行时长和所述历史资源使用量,确定所述待迁移任务的历史资源使用率;
根据所述历史资源使用率和所述待运行时长,确定所述待迁移任务的剩余资源需求量。
21.一种云平台,包括:
计算集群,包括至少一个资源节点,所述资源节点中的资源用于运行任务;
管理集群,用于接收待运行的任务,并执行权利要求1至10中任一项所述的方法,以调度所述计算集群中的资源运行所述待运行的任务。
22.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至10中任一项所述的方法。
23.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1至10中任一项所述的方法。
24.一种计算机系统,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211423815.1A CN115794337B (zh) | 2022-11-14 | 2022-11-14 | 资源调度方法、装置、云平台、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211423815.1A CN115794337B (zh) | 2022-11-14 | 2022-11-14 | 资源调度方法、装置、云平台、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794337A CN115794337A (zh) | 2023-03-14 |
CN115794337B true CN115794337B (zh) | 2023-09-26 |
Family
ID=85437572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211423815.1A Active CN115794337B (zh) | 2022-11-14 | 2022-11-14 | 资源调度方法、装置、云平台、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794337B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610425A (zh) * | 2023-03-25 | 2023-08-18 | 北京科乐园网络科技有限公司 | 资源调度方法、装置、设备及计算机可读存储介质 |
CN116661962B (zh) * | 2023-05-23 | 2024-02-23 | 四川省建筑设计研究院有限公司 | 基于云计算技术的数据分析方法 |
CN117519964B (zh) * | 2023-10-17 | 2024-06-18 | 本原数据(北京)信息技术有限公司 | 数据库资源管理方法和系统、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016051395A (ja) * | 2014-09-01 | 2016-04-11 | キヤノン株式会社 | 画像形成装置およびリソース管理方法 |
WO2017166803A1 (zh) * | 2016-03-30 | 2017-10-05 | 华为技术有限公司 | 一种资源调度方法及装置 |
WO2020125698A1 (zh) * | 2018-12-21 | 2020-06-25 | 华为技术有限公司 | 一种资源对象的管理方法及装置 |
CN111880914A (zh) * | 2020-07-20 | 2020-11-03 | 北京百度网讯科技有限公司 | 资源调度方法、资源调度装置、电子设备和存储介质 |
CN112148468A (zh) * | 2019-06-28 | 2020-12-29 | 杭州海康威视数字技术股份有限公司 | 一种资源调度方法、装置、电子设备及存储介质 |
WO2021139438A1 (zh) * | 2020-01-07 | 2021-07-15 | 平安科技(深圳)有限公司 | 大数据资源处理方法、装置、终端及存储介质 |
CN114756347A (zh) * | 2022-04-19 | 2022-07-15 | 中国联合网络通信集团有限公司 | 基于集群的服务器资源调度方法、装置、云平台及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346206B2 (en) * | 2016-08-27 | 2019-07-09 | International Business Machines Corporation | System, method and computer program product for resource management in a distributed computation system |
CN110474966B (zh) * | 2019-07-22 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 处理云平台资源碎片的方法及相关设备 |
-
2022
- 2022-11-14 CN CN202211423815.1A patent/CN115794337B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016051395A (ja) * | 2014-09-01 | 2016-04-11 | キヤノン株式会社 | 画像形成装置およびリソース管理方法 |
WO2017166803A1 (zh) * | 2016-03-30 | 2017-10-05 | 华为技术有限公司 | 一种资源调度方法及装置 |
WO2020125698A1 (zh) * | 2018-12-21 | 2020-06-25 | 华为技术有限公司 | 一种资源对象的管理方法及装置 |
CN112148468A (zh) * | 2019-06-28 | 2020-12-29 | 杭州海康威视数字技术股份有限公司 | 一种资源调度方法、装置、电子设备及存储介质 |
WO2021139438A1 (zh) * | 2020-01-07 | 2021-07-15 | 平安科技(深圳)有限公司 | 大数据资源处理方法、装置、终端及存储介质 |
CN111880914A (zh) * | 2020-07-20 | 2020-11-03 | 北京百度网讯科技有限公司 | 资源调度方法、资源调度装置、电子设备和存储介质 |
CN114756347A (zh) * | 2022-04-19 | 2022-07-15 | 中国联合网络通信集团有限公司 | 基于集群的服务器资源调度方法、装置、云平台及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115794337A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115794337B (zh) | 资源调度方法、装置、云平台、设备及存储介质 | |
CN108958916B (zh) | 一种移动边缘环境下工作流卸载优化方法 | |
CN112948079B (zh) | 任务调度方法、装置、设备和计算机存储介质 | |
US20160210174A1 (en) | Hybrid Scheduler and Power Manager | |
CN110609743A (zh) | 用于配置资源的方法、电子设备和计算机程序产品 | |
JP6190969B2 (ja) | マルチテナントリソース調停方法 | |
CN109361750B (zh) | 资源分配方法、装置、电子设备、存储介质 | |
CN112559182A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN108415772B (zh) | 一种基于容器的资源调整方法、装置和介质 | |
CN113867959A (zh) | 一种训练任务资源调度方法、装置、设备及介质 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN112650575B (zh) | 资源调度方法、装置和云端服务系统 | |
CN103179048A (zh) | 云数据中心的主机QoS策略变换方法及系统 | |
CN114840323A (zh) | 任务处理方法、装置、系统、电子设备以及存储介质 | |
CN111562969A (zh) | 一种区块链的智能合约实现方法、装置、设备和介质 | |
CN114661482B (zh) | 一种gpu算力管理方法、介质、设备及系统 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN114492834A (zh) | 训练方法、训练装置、设备、系统及存储介质 | |
CN112948109B (zh) | 一种ai计算集群的配额弹性调度方法、装置及介质 | |
CN114490048A (zh) | 任务执行方法、装置、电子设备及计算机存储介质 | |
CN113961353A (zh) | 一种ai任务的任务处理方法和分布式系统 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN113641688B (zh) | 节点更新方法、相关装置及计算机程序产品 | |
CN115269145A (zh) | 一种面向海上无人设备的高能效异构多核调度方法及装置 | |
CN114416357A (zh) | 容器组的创建方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |