CN116541142A - 任务调度方法、装置、设备、存储介质及计算机程序产品 - Google Patents

任务调度方法、装置、设备、存储介质及计算机程序产品 Download PDF

Info

Publication number
CN116541142A
CN116541142A CN202310440844.7A CN202310440844A CN116541142A CN 116541142 A CN116541142 A CN 116541142A CN 202310440844 A CN202310440844 A CN 202310440844A CN 116541142 A CN116541142 A CN 116541142A
Authority
CN
China
Prior art keywords
resource
task
cluster
amount
available
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
Application number
CN202310440844.7A
Other languages
English (en)
Inventor
张甲栋
王军伟
李想成
赵增
刘柏
范长杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202310440844.7A priority Critical patent/CN116541142A/zh
Publication of CN116541142A publication Critical patent/CN116541142A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

任务调度方法、装置、设备、存储介质及计算机程序产品
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务调度方法、装置、设备、存储介质及计算机程序产品。
背景技术
相关技术中,在将任务调度至集群中时,通常需要指定将任务部署到哪个集群,如果用户指定的集群资源不足,会导致任务创建失败,用户需要自己判断集群资源,在创建任务时指定任务要调度到哪个集群,无法根据集群资源情况进行动态的调度,从而导致集群中的资源利用率较低的问题。
发明内容
有鉴于此,本申请的目的在于提出一种任务调度方法、装置、设备、存储介质及计算机程序产品。
基于上述目的,在第一方面,本申请提供了一种任务调度方法,所述方法包括:
响应于接收到任务请求,根据所述任务请求确定任务所需资源量;
获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点;
若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点;
若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量;
根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
在第二方面,本申请提供了一种任务调度装置,所述装置包括:
第一确定模块,被配置为响应于接收到任务请求,根据所述任务请求确定任务所需资源量;
第二确定模块,被配置为获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点;
第三确定模块,被配置为若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点;
第四确定模块,被配置为若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量;
调度模块,被配置为根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
在第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的任务调度方法。
在第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的任务调度方法。
在第五方面,本申请提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如第一方面所述的任务调度方法。
从上面所述可以看出,本申请提供的一种任务调度方法、装置、设备、存储介质及计算机程序产品,当接收到任务请求时,可以根据任务请求确定该任务的任务所需资源量。进一步地,可以获取集群的当前资源信息,并根据当前资源信息确定集群内是否存在着可用资源量大于或等于任务所需资源量的候选节点,如果存在可用资源量大于或等于任务所需资源量的候选节点,则可以确定是否存在至少两个从属于不同候选集群的候选节点,也即确定是否存在至少两个候选节点,并且这些候选节点是否从属于不同的候选集群。再进一步地,如果存在至少两个从属于不同候选集群的候选节点,则可以确定候选集群的总可用资源量。可以根据所述总可用资源量从候选集群中确定目标集群,从而可以将与任务请求所指示的任务调度至该目标集群。可以在多集群的场景下,感知多集群的集群资源,在确保任务可以被调度的前提下,选择最优的目标集群,进而将该任务调度至目标集群,不仅能够根据多个集群所拥有的资源量确定可选的候选集群,而且能够根据总可用资源量来确定集群的空闲程度,从而将任务调度至空闲程度最高的目标集群,提高了集群中的资源利用率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的一种任务调度方法的示例性流程示意图。
图2示出了根据本申请的实施例中的资源动态监听场景的示例性示意图。
图3示出了根据本申请的实施例中的任务调度场景的示例性示意图。
图4示出了本申请实施例所提供的一种任务调度装置的示例性结构示意图。
图5示出了本申请实施例所提供的一种电子设备的示例性结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,在将任务调度至集群中时,通常需要指定将任务部署到哪个集群,如果用户指定的集群资源不足,会导致任务创建失败,用户需要自己判断集群资源,在创建任务时指定任务要调度到哪个集群,无法根据集群资源情况进行动态的调度。
通过发明人的研究发现,相关技术中,第一类常用的方法是通过统一的API管理多个Kubernetes集群,包含Host Cluster(也即主集群)和Member Cluster(子集群)两类集群,Host Cluster用于部署KubeFed API和控制平面组件,Member Cluster通过KubeFedAPI注册的集群,并提供相关身份凭证来让KubeFed Controller(也即控制人员或用户)能够连接集群,Member Cluster可以注册到Host Cluster,但是用户在创建任务时,需要指定将任务部署到哪个集群,如果用户指定的集群资源不足,会导致任务创建失败。该方法不会感知每个集群的资源情况,用户需要自己判断集群资源,在创建任务时指定任务要调度到哪个集群,无法根据集群资源情况进行动态的调度,从而导致集群中的资源利用率较低的问题。
第二类方法是将一个Kubernetes集群抽象为一个虚拟节点加入到主Kubernetes集群中,当用户创建任务时,通过Kubernetes默认的调度器,将任务调度到虚拟节点上,实现任务的跨集群调度。但是在向主集群汇报资源情况时,会把整个集群所有的分配/空闲资源作为整体汇报给主集群,没有考虑资源碎片,会导致Pod(也即部署单元)调度到虚拟节点而由于资源不足而无法启动的情况。例如,Virtual Kubelet(也即被抽象后的虚拟节点)所在的集群有3个节点,节点未分配的资源分别为(1核CPU,2G内存),(1核CPU,2G内存),(1核CPU,2G内存),那么在主集群看来,虚拟节点剩余的未分配资源量为(3核CPU,6G内存),此时,假如用户提交资源请求为(3核CPU,6G内存)的任务,任务会被调度到虚拟节点,但是虚拟节点对应的集群没有任何一个物理节点可以满足任务所请求的资源,导致任务启动失败,一直处于等待资源的状态。不仅使得集群中这些容量较小的资源碎片没有被得到利用,导致集群中的资源利用率较低的问题,而且还会造成任务调度成功的假象,使得任务调度失败。
正因如此,本申请提供了一种任务调度方法、装置、设备、存储介质及计算机程序产品,当接收到任务请求时,可以根据任务请求确定该任务的任务所需资源量。进一步地,可以获取集群的当前资源信息,并根据当前资源信息确定集群内是否存在着可用资源量大于或等于任务所需资源量的候选节点,如果存在可用资源量大于或等于任务所需资源量的候选节点,则可以确定是否存在至少两个从属于不同候选集群的候选节点,也即确定是否存在至少两个候选节点,并且这些候选节点是否从属于不同的候选集群。再进一步地,如果存在至少两个从属于不同候选集群的候选节点,则可以确定候选集群的总可用资源量。可以根据所述总可用资源量从候选集群中确定目标集群,从而可以将与任务请求所指示的任务调度至该目标集群。可以在多集群的场景下,感知多集群的集群资源,在确保任务可以被调度的前提下,选择最优的目标集群,进而将该任务调度至目标集群,不仅能够根据多个集群所拥有的资源量确定可选的候选集群,而且能够根据总可用资源量来确定集群的空闲程度,从而将任务调度至空闲程度最高的目标集群,提高了集群中的资源利用率。
下面通过具体的实施例来对本申请实施例所提供的任务调度方法进行具体说明。
图1示出了本申请实施例所提供的一种任务调度方法的示例性流程示意图。
参考图1,本申请实施例所提供的一种任务调度方法,可以具体包括以下步骤:
S102:响应于接收到任务请求,根据所述任务请求确定任务所需资源量。
S104:获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点。
S106:若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点。
S108:若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量。
S110:根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
图2示出了根据本申请的实施例中的资源动态监听场景的示例性示意图。
在一些实施例中,可以将集群布置于一个集群资源同步服务之下,使得该服务能够同步每个加入的集群的初始化信息。具体地,参考图2,集群资源同步服务可以监听其自身的配置,当配置发生变化时,也即有新的集群加入该服务时,可以调用资源编程接口(也即Kubernetes Api)获取新加入的集群的初始资源信息。其中,初始资源信息可以包括:集群节点数量、集群每个节点的总资源量(例如CPU,内存,GPU)、集群每个节点剩余可分配的资源量(例如CPU,内存,GPU)、集群每个节点上的部署单元(也即Pod)名称和部署单元占用资源量(例如CPU,内存,GPU)。其中,集群每个节点上的部署单元名称和部署单元占用资源量可以统称为部署单元信息。
进一步地,当能够获取到新加入的集群的初始资源信息时,则认定该集群被注册到集群资源同步服务,可以将该集群的初始资源信息存储至资源缓存中。可以理解的是,如果无法获取到该集群的初始资源信息时,则证明该集群注册失败。
再进一步地,可以监听已经注册到集群资源同步服务下的集群的集群事件,并利用集群资源同步服务将各个集群的初始资源信息进行同步。基于资源编程接口,集群资源同步服务不仅可以监听成功注册的集群的所有事件,并可以对事件做相应的处理。当监听到集群内发生资源变化事件时,可以调用资源编程接口获取集群的当前资源信息,并利用该当前资源信息替换先前获取到的初始资源信息,从而更新资源缓存,使得资源缓存中存储有最新的资源信息。
在一些实施例中,初始资源信息可以包括初始部署单元信息和初始可用资源量。其中,初始可用资源量可以包括每个节点的初始可用资源量,也即每个节点剩余可分配的资源量,还可以包括每个集群中全部节点剩余可分配的资源量的总量。当监听到用于指示集群内存在新增部署单元的资源变化事件时,可以调用资源编程接口确定该新增部署单元所绑定的节点,以及该新增部署单元所请求的请求资源量。进一步地,可以根据新增部署单元更新初始部署单元信息以确定当前部署单元信息,例如更新前的初始部署单元信息中包括集群A中节点1上的部署单元名称,在检测到新增的部署单元时,可以将该新增部署单元的名称加入至初始部署单元信息中,进而得到当前部署单元信息。
再进一步地,还可以在初始可用资源量中移除请求资源量,从而确定当前可用资源量,例如可以在该集群A的全部节点1-n剩余可分配的资源量的总量中移除请求资源量,例如更新前该集群A的全部节点1-n剩余可分配的资源量的总量为100,请求资源量为1,则更新后的当前可用资源量可以为99。
为了进一步明确每个节点的可用资源,在另一个实施例中,还可以在该新增部署单元绑定的节点的剩余可分配的资源量中移除该请求资源量,例如更新前该节点1的剩余可分配的资源量为5,请求资源量为1,则更新后的当前可用资源量可以为4。
在确定当前部署单元信息和当前可用资源量后,可以以当前部署单元信息覆盖初始部署单元信息,并以当前可用资源量覆盖初始可用资源量,从而更新资源缓存。
在一些实施例中,初始资源信息可以包括初始可用资源量。其中,初始可用资源量可以包括每个节点的初始可用资源量,也即每个节点剩余可分配的资源量,还可以包括每个集群中全部节点剩余可分配的资源量的总量。当监听到用于指示集群内存在更新后的部署单元的资源变化事件时,可以调用资源编程接口确定该更新后的部署单元所请求的第一请求资源量,该第一请求资源量用于表征更新后该部署单元所请求的资源量。进一步地,可以在初始可用资源量中移除第二请求资源量,其中,第二请求资源量为该部署单元在更新前所请求的请求资源量。再将第一请求资源量添加至该初始可用资源量中,从而确定当前可用资源量,例如可以在该集群A的全部节点1-n剩余可分配的资源量的总量中释放第二请求资源量并添加第一请求资源量,例如更新前该集群A的全部节点1-n剩余可分配的资源量的总量为100,第二请求资源量为1,则释放后的集群A的全部节点1-n剩余可分配的资源量的总量为101,第二请求资源量为4,则更新后的当前可用资源量为97。
为了进一步明确每个节点的可用资源,在另一个实施例中,还可以在该新增部署单元绑定的节点的剩余可分配的资源量中移除该第二请求资源量,并在其中添加第一请求资源量。例如更新前集群A的节点1的剩余可分配的资源量为5,第二请求资源量为1,第一请求资源量为4,则更新后的当前可用资源量可以为1。在确定当前可用资源量后,可以以当前可用资源量覆盖初始可用资源量,从而更新资源缓存。
在一些实施例中,初始资源信息可以包括初始可用资源量。其中,初始可用资源量可以包括每个节点的初始可用资源量,也即每个节点剩余可分配的资源量,还可以包括每个集群中全部节点剩余可分配的资源量的总量。当监听到用于指示集群内存在被删除部署单元的资源变化事件时,可以调用资源编程接口确定该被删除部署单元所请求的请求资源量。进一步地,可以在初始可用资源量中释放请求资源量,从而确定当前可用资源量,例如可以在该集群的全部节点剩余可分配的资源量的总量中释放请求资源量,例如更新前该集群A的全部节点1-n剩余可分配的资源量的总量为100,请求资源量为1,则释放后的集群A的全部节点1-n剩余可分配的资源量的总量为101。
为了进一步明确每个节点的可用资源,在另一个实施例中,还可以在该新增部署单元绑定的节点的剩余可分配的资源量中释放该请求资源量。例如更新前集群A的节点1的剩余可分配的资源量为5,第二请求资源量为1,则更新后的当前可用资源量可以为4。在确定当前可用资源量后,可以以当前可用资源量覆盖初始可用资源量,从而更新资源缓存。
图3示出了根据本申请的实施例中的任务调度场景的示例性示意图。
在一些实施例中,参考图3,当接收到用户发送的任务请求时,该任务会进入任务队列,进而通过任务队列取到该任务,由于每个任务都需要通过部署单元来处理,所以可以确定用于承载与该任务请求对应的任务的目标部署单元,进一步地,可以根据该目标部署单元所请求的请求资源量来确定该任务的任务所需资源量,例如CPU,内存,GPU。
进一步地,可以根据资源缓存来获取集群的当前资源信息,遍历所有集群所有节点,判断节点是否满足用户任务的集群类型需求(例如开发测试集群/线上集群)和调度资源需求。具体地,可以根据任务请求来确定用户任务的任务类型,遍历集群从而确定是否存在集群类型与任务类型相同的候选集群,例如任务类型为开发测试类型时,则确定是否存在开发测试类型的集群,如果存在则将这类集群确定为候选集群,进一步地可以根据当前资源信息确定在候选集群中是否存在着可用资源量大于或等于任务所需资源量的候选节点,其中,可以综合考虑CPU、内存和GPU这三种资源。如果不存在可用资源量大于或等于任务所需资源量的候选节点,则可以生成反馈信息,用于提示用户该任务调度失败,当前没有集群能够满足用户任务的调度需求,可以终止调度流程。
需要说明的是,可以记录该用户任务对应的任务所需资源量,当集群内的资源量发生更新,并且存在能够满足该用户任务的候选节点时,可以向用户发送重新调度信息,用于指示用户当前存在满足该用户任务条件的候选节点,可以重新调度。
在一些实施例中,如果存在可用资源量大于或等于任务所需资源量的候选节点,则可以进一步地确定是否存在至少两个从属于不同候选集群的候选节点,参考图3,例如是否存在至少一个候选节点从属于集群A,且至少一个候选节点从属于集群C。如果不存在这样的至少两个候选节点,例如只有一个候选节点,且从属于集群A,则可以将该任务请求对应的任务调度至集群A,并在集群A中的该候选节点上创建目标部署单元,用于执行该任务。
如果不存在这样的至少两个候选节点,例如有多个个候选节点,且都从属于集群A,则可以将该任务请求对应的任务调度至集群A,并在集群A中的任意一个候选节点上创建目标部署单元,用于执行该任务。需要说明的是,还可以分别确定这些候选节点的可用资源量,在可用资源量大于该任务的任务所需资源量且最接近该任务所需资源量的候选节点上创建目标部署单元,从而在该目标部署单元上执行该任务。
在一些实施例中,如果存在至少两个从属于不同候选集群的候选节点,则可以确定这些候选集群的总可用资源量,具体地,总可用资源量可以包括可用CPU资源总量CPUResoucefree、CPU资源总量CPUResourcetotal、可用内存资源总量MemoryResoucefree、内存资源总量MemoryResourcetotal、可用GPU资源总量GPUResoucefree和GPU资源总量GPUResourcetotal。进一步地,可以根据总可用资源量确定候选集群的资源分数,进而实现根据总可用资源量从候选集群中确定目标集群,其中该资源分数可以用来表征该候选集群的空闲程度。进一步地,可以根据可用CPU资源总量和CPU资源总量之间的第一比值、可用内存资源总量和内存资源总量之间的第二比值以及可用GPU资源总量和GPU资源总量之间的第三比值确定用于指示候选集群的空闲程度的资源分数。具体地,可以资源分数Score可以表示为
例如,集群A的资源分数为8,集群C的资源分数为6。
进一步地,资源分数可以与空闲程度成正比,因此可以将资源分数最高的候选集群确定为目标集群,例如集群A,并在目标集群中创建目标部署单元,将与任务请求对应的任务通过资源编程接口调度至目标集群中的目标部署单元,以使目标部署单元能够执行该任务。
再进一步地,为了确保用户的任务可以运行成功,在任务调度到集群上之后,可以追踪用于执行任务的目标部署单元是否创建成功。如果目标部署单元因为资源不足导致无法启动成功,则可以删除集群中的任务,重新执行上述任务调度方法。
从上面所述可以看出,本申请提供的一种任务调度方法、装置、设备、存储介质及计算机程序产品,当接收到任务请求时,可以根据任务请求确定该任务的任务所需资源量。进一步地,可以获取集群的当前资源信息,并根据当前资源信息确定集群内是否存在着可用资源量大于或等于任务所需资源量的候选节点,如果存在可用资源量大于或等于任务所需资源量的候选节点,则可以确定是否存在至少两个从属于不同候选集群的候选节点,也即确定是否存在至少两个候选节点,并且这些候选节点是否从属于不同的候选集群。再进一步地,如果存在至少两个从属于不同候选集群的候选节点,则可以确定候选集群的总可用资源量。可以根据所述总可用资源量从候选集群中确定目标集群,从而可以将与任务请求所指示的任务调度至该目标集群。可以在多集群的场景下,感知多集群的集群资源,在确保任务可以被调度的前提下,选择最优的目标集群,进而将该任务调度至目标集群,不仅能够根据多个集群所拥有的资源量确定可选的候选集群,而且能够根据总可用资源量来确定集群的空闲程度,从而将任务调度至空闲程度最高的目标集群,提高了集群中的资源利用率。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图4示出了本申请实施例所提供的一种任务调度装置的示例性结构示意图。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种任务调度装置。
参考图4,所述任务调度装置,所述装置包括:第一确定模块、第二确定模块、第三确定模块、第四确定模块以及调度模块;其中,
第一确定模块,被配置为响应于接收到任务请求,根据所述任务请求确定任务所需资源量;
第二确定模块,被配置为获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点;
第三确定模块,被配置为若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点;
第四确定模块,被配置为若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量;
调度模块,被配置为根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
在一种可能的实现方式中,所述装置,还包括:更新模块;
所述更新模块被配置为:
调用资源编程接口获取所述集群的初始资源信息,并将所述初始资源信息存储至资源缓存;
响应于监听到所述集群内发生资源变化事件,则调用所述资源编程接口获取所述集群的当前资源信息,并以所述当前资源信息替换所述初始资源信息以更新所述资源缓存。
在一种可能的实现方式中,所述初始资源信息,包括:初始部署单元信息和初始可用资源量;
所述更新模块进一步被配置为:
响应于监听到用于指示所述集群内存在新增部署单元的资源变化事件,则调用所述资源编程接口确定所述新增部署单元所绑定的节点以及所述新增部署单元所请求的请求资源量;
根据所述新增部署单元更新所述初始部署单元信息以确定当前部署单元信息,并在所述初始可用资源量中移除所述请求资源量以确定当前可用资源量;
以所述当前部署单元信息和所述当前可用资源量分别覆盖所述初始部署单元信息和所述初始可用资源量以更新所述资源缓存。
在一种可能的实现方式中,所述初始资源信息,包括:初始可用资源量;
所述更新模块进一步被配置为:
响应于监听到用于指示所述集群内存在更新后的部署单元的资源变化事件,则调用所述资源编程接口确定所述更新后的部署单元所请求的第一请求资源量;
在所述初始可用资源量中释放所述部署单元更新前所请求的第二请求资源量,并在所述初始可用资源量中添加所述第一请求资源量以确定当前可用资源量;
以所述当前可用资源量覆盖所述初始可用资源量以更新所述资源缓存。
在一种可能的实现方式中,所述初始资源信息,包括:初始可用资源量;
所述更新模块进一步被配置为:
响应于监听到用于指示所述集群内存在被删除部署单元的资源变化事件,则调用所述资源编程接口确定所述被删除部署单元所请求的请求资源量;
在所述初始可用资源量中释放所述请求资源量以确定当前可用资源量;
以所述当前可用资源量覆盖所述初始可用资源量以更新所述资源缓存。
在一种可能的实现方式中,所述第一确定模块进一步被配置为:
响应于接收到任务请求,确定用于承载与所述任务请求对应的任务的目标部署单元;
根据所述目标部署单元所请求的请求资源量以确定所述任务所需资源量。
在一种可能的实现方式中,所述第二确定模块进一步被配置为:
根据所述资源缓存获取所述集群的当前资源信息;
根据所述任务请求确定与所述任务请求对应的任务类型,遍历所述集群以确定是否存在集群类型与所述任务类型相同的候选集群;
若存在所述集群类型与所述任务类型相同的候选集群,则根据所述当前资源信息确定所述候选集群中是否存在可用资源量大于或等于所述任务所需资源量的候选节点。
在一种可能的实现方式中,所述装置,还包括:提示模块;
所述提示模块被配置为:
若不存在可用资源量大于或等于所述任务所需资源量的候选节点,则生成反馈信息;其中,所述反馈信息用于指示与所述任务请求对应的任务调度失败。
在一种可能的实现方式中,所述调度模块进一步被配置为:
若不存在至少两个从属于不同候选集群的候选节点,则将与所述任务请求对应的任务调度至所述候选节点所属的候选集群。
在一种可能的实现方式中,所述总可用资源量,包括:可用CPU资源总量、CPU资源总量、可用内存资源总量、内存资源总量、可用GPU资源总量和GPU资源总量;
所述第四确定模块进一步被配置为:
获取所述候选集群的可用CPU资源总量、CPU资源总量、可用内存资源总量、内存资源总量、可用GPU资源总量和GPU资源总量;
根据所述可用CPU资源总量和CPU资源总量之间的第一比值、所述可用内存资源总量和内存资源总量之间的第二比值以及所述可用GPU资源总量和GPU资源总量之间的第三比值确定用于指示所述候选集群的空闲程度的资源分数;
根据所述资源分数确定目标集群。
在一种可能的实现方式中,所述调度模块进一步被配置为:
将所述资源分数最高的候选集群确定为所述目标集群,并在所述目标集群创建目标部署单元;
将与所述任务请求对应的任务调度至所述目标集群中的所述目标部署单元。
在一种可能的实现方式中,所述装置,还包括:删除模块;
所述删除模块被配置为:
确定所述目标集群中是否存在用于承载与所述任务请求对应的任务的目标部署单元;
若所述目标集群中不存在用于承载与所述任务请求对应的任务的目标部署单元,则删除所述目标集群中的所述任务。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的任务调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图5示出了本申请实施例所提供的一种电子设备的示例性结构示意图。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的任务调度方法。图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的任务调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的任务调度方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的任务调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的任务调度方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的任务调度方法。对应于所述的任务调度方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的任务调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种任务调度方法,其特征在于,所述方法包括:
响应于接收到任务请求,根据所述任务请求确定任务所需资源量;
获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点;
若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点;
若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量;
根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
2.根据权利要求1所述的方法,其特征在于,所述获取集群的当前资源信息之前,还包括:
调用资源编程接口获取所述集群的初始资源信息,并将所述初始资源信息存储至资源缓存;
响应于监听到所述集群内发生资源变化事件,则调用所述资源编程接口获取所述集群的当前资源信息,并以所述当前资源信息替换所述初始资源信息以更新所述资源缓存。
3.根据权利要求2所述的方法,其特征在于,所述初始资源信息,包括:初始部署单元信息和初始可用资源量;
所述响应于监听到所述集群内发生资源变化事件,则调用所述资源编程接口获取所述集群的当前资源信息,并以所述当前资源信息替换所述初始资源信息以更新所述资源缓存,包括:
响应于监听到用于指示所述集群内存在新增部署单元的资源变化事件,则调用所述资源编程接口确定所述新增部署单元所绑定的节点以及所述新增部署单元所请求的请求资源量;
根据所述新增部署单元更新所述初始部署单元信息以确定当前部署单元信息,并在所述初始可用资源量中移除所述请求资源量以确定当前可用资源量;
以所述当前部署单元信息和所述当前可用资源量分别覆盖所述初始部署单元信息和所述初始可用资源量以更新所述资源缓存。
4.根据权利要求2所述的方法,其特征在于,所述初始资源信息,包括:初始可用资源量;
所述响应于监听到所述集群内发生资源变化事件,则调用所述资源编程接口获取所述集群的当前资源信息,并以所述当前资源信息替换所述初始资源信息以更新所述资源缓存,包括:
响应于监听到用于指示所述集群内存在更新后的部署单元的资源变化事件,则调用所述资源编程接口确定所述更新后的部署单元所请求的第一请求资源量;
在所述初始可用资源量中释放所述部署单元更新前所请求的第二请求资源量,并在所述初始可用资源量中添加所述第一请求资源量以确定当前可用资源量;
以所述当前可用资源量覆盖所述初始可用资源量以更新所述资源缓存。
5.根据权利要求2所述的方法,其特征在于,所述初始资源信息,包括:初始可用资源量;
所述响应于监听到所述集群内发生资源变化事件,则调用所述资源编程接口获取所述集群的当前资源信息,并以所述当前资源信息替换所述初始资源信息以更新所述资源缓存,包括:
响应于监听到用于指示所述集群内存在被删除部署单元的资源变化事件,则调用所述资源编程接口确定所述被删除部署单元所请求的请求资源量;
在所述初始可用资源量中释放所述请求资源量以确定当前可用资源量;
以所述当前可用资源量覆盖所述初始可用资源量以更新所述资源缓存。
6.根据权利要求1所述的方法,其特征在于,所述响应于接收到任务请求,根据所述任务请求确定任务所需资源量,包括:
响应于接收到任务请求,确定用于承载与所述任务请求对应的任务的目标部署单元;
根据所述目标部署单元所请求的请求资源量确定所述任务所需资源量。
7.根据权利要求1所述的方法,其特征在于,所述获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点,包括:
根据所述资源缓存获取所述集群的当前资源信息;
根据所述任务请求确定与所述任务请求对应的任务类型,遍历所述集群以确定是否存在集群类型与所述任务类型相同的候选集群;
若存在所述集群类型与所述任务类型相同的候选集群,则根据所述当前资源信息确定所述候选集群中是否存在可用资源量大于或等于所述任务所需资源量的候选节点。
8.根据权利要求1所述的方法,其特征在于,所述根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点之后,还包括:
若不存在可用资源量大于或等于所述任务所需资源量的候选节点,则生成反馈信息;其中,所述反馈信息用于指示与所述任务请求对应的任务调度失败。
9.根据权利要求1所述的方法,其特征在于,所述确定是否存在至少两个从属于不同候选集群的候选节点之后,还包括:
若不存在至少两个从属于不同候选集群的候选节点,则将与所述任务请求对应的任务调度至所述候选节点所属的候选集群。
10.根据权利要求1所述的方法,其特征在于,所述总可用资源量,包括:可用CPU资源总量、CPU资源总量、可用内存资源总量、内存资源总量、可用GPU资源总量和GPU资源总量;
所述确定所述候选集群的总可用资源量包括:
获取所述候选集群的可用CPU资源总量、CPU资源总量、可用内存资源总量、内存资源总量、可用GPU资源总量和GPU资源总量;
所述根据所述总可用资源量从所述候选集群中确定目标集群,包括:
根据所述可用CPU资源总量和CPU资源总量之间的第一比值、所述可用内存资源总量和内存资源总量之间的第二比值以及所述可用GPU资源总量和GPU资源总量之间的第三比值确定用于指示所述候选集群的空闲程度的资源分数;
根据所述资源分数确定目标集群。
11.根据权利要求10所述的方法,其特征在于,所述根据所述资源分数确定目标集群,包括:
将所述资源分数最高的候选集群确定为所述目标集群,并在所述目标集群创建目标部署单元;
所述将与所述任务请求对应的任务调度至所述目标集群,包括:
将与所述任务请求对应的任务调度至所述目标集群中的所述目标部署单元。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述目标集群中是否存在用于承载与所述任务请求对应的任务的目标部署单元;
若所述目标集群中不存在用于承载与所述任务请求对应的任务的目标部署单元,则删除所述目标集群中的所述任务。
13.一种任务调度装置,其特征在于,所述装置包括:
第一确定模块,被配置为响应于接收到任务请求,根据所述任务请求确定任务所需资源量;
第二确定模块,被配置为获取集群的当前资源信息,并根据所述当前资源信息确定是否存在可用资源量大于或等于所述任务所需资源量的候选节点;
第三确定模块,被配置为若确定存在可用资源量大于或等于所述任务所需资源量的候选节点,则确定是否存在至少两个从属于不同候选集群的候选节点;
第四确定模块,被配置为若存在至少两个从属于不同候选集群的候选节点,则确定所述候选集群的总可用资源量;
调度模块,被配置为根据所述总可用资源量从所述候选集群中确定目标集群,并将与所述任务请求对应的任务调度至所述目标集群。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至12任意一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使所述计算机实现权利要求1至12任一项所述的方法。
16.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1-12中任一项所述的方法。
CN202310440844.7A 2023-04-21 2023-04-21 任务调度方法、装置、设备、存储介质及计算机程序产品 Pending CN116541142A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310440844.7A CN116541142A (zh) 2023-04-21 2023-04-21 任务调度方法、装置、设备、存储介质及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310440844.7A CN116541142A (zh) 2023-04-21 2023-04-21 任务调度方法、装置、设备、存储介质及计算机程序产品

Publications (1)

Publication Number Publication Date
CN116541142A true CN116541142A (zh) 2023-08-04

Family

ID=87455343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310440844.7A Pending CN116541142A (zh) 2023-04-21 2023-04-21 任务调度方法、装置、设备、存储介质及计算机程序产品

Country Status (1)

Country Link
CN (1) CN116541142A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629960A (zh) * 2022-03-14 2022-06-14 北京字节跳动网络技术有限公司 资源调度方法、装置、***、设备、介质和程序产品
CN116866438A (zh) * 2023-09-04 2023-10-10 金网络(北京)数字科技有限公司 一种跨集群任务调度方法、装置、计算机设备及存储介质
CN117519964A (zh) * 2023-10-17 2024-02-06 本原数据(北京)信息技术有限公司 数据库资源管理方法和***、电子设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629960A (zh) * 2022-03-14 2022-06-14 北京字节跳动网络技术有限公司 资源调度方法、装置、***、设备、介质和程序产品
CN114629960B (zh) * 2022-03-14 2023-09-19 抖音视界有限公司 资源调度方法、装置、***、设备、介质和程序产品
CN116866438A (zh) * 2023-09-04 2023-10-10 金网络(北京)数字科技有限公司 一种跨集群任务调度方法、装置、计算机设备及存储介质
CN116866438B (zh) * 2023-09-04 2023-11-21 金网络(北京)数字科技有限公司 一种跨集群任务调度方法、装置、计算机设备及存储介质
CN117519964A (zh) * 2023-10-17 2024-02-06 本原数据(北京)信息技术有限公司 数据库资源管理方法和***、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11593149B2 (en) Unified resource management for containers and virtual machines
CN108614726B (zh) 虚拟机创建方法及装置
CN116541142A (zh) 任务调度方法、装置、设备、存储介质及计算机程序产品
CN107203465B (zh) ***接口测试方法及装置
CN111831410A (zh) 任务处理方法、装置、存储介质及电子设备
CN105786603B (zh) 一种基于分布式的高并发业务处理***及方法
US8918776B2 (en) Self-adapting software system
CN113553178A (zh) 任务处理方法、装置和电子设备
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
CN114416352A (zh) 算力资源分配方法、装置、电子设备及储存介质
CN113110939A (zh) 运行数据的处理方法、装置、计算机设备及存储介质
GB2513528A (en) Method and system for backup management of software environments in a distributed network environment
CN110673933A (zh) 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
US20220391263A1 (en) Deployment of Services with Dependencies
CN111399999A (zh) 计算机资源处理方法、装置、可读存储介质和计算机设备
CN115454576B (zh) 一种虚拟机进程管理方法、***及电子设备
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN112130900B (zh) 一种bmc的用户信息管理方法、***、设备以及介质
CN114722261A (zh) 一种资源的处理方法、装置、电子设备及存储介质
CN111831411B (zh) 任务处理方法、装置、存储介质及电子设备
CN117573359B (zh) 一种基于异构集群的计算框架管理***及方法
CN117742979B (zh) 一种面向时空数据处理的分布式锁方法及电子设备
CN117914721A (zh) 基于Java的通话代接业务***建设方法及设备
CN116301934A (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