CN116360922A - 集群资源调度方法、装置、计算机设备和存储介质 - Google Patents

集群资源调度方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116360922A
CN116360922A CN202310253425.2A CN202310253425A CN116360922A CN 116360922 A CN116360922 A CN 116360922A CN 202310253425 A CN202310253425 A CN 202310253425A CN 116360922 A CN116360922 A CN 116360922A
Authority
CN
China
Prior art keywords
node
container group
long
evicted
nodes
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
CN202310253425.2A
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.)
Guangzhou Weride Technology Co Ltd
Original Assignee
Guangzhou Weride Technology 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 Guangzhou Weride Technology Co Ltd filed Critical Guangzhou Weride Technology Co Ltd
Priority to CN202310253425.2A priority Critical patent/CN116360922A/zh
Publication of CN116360922A publication Critical patent/CN116360922A/zh
Pending legal-status Critical Current

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种集群资源调度方法、装置、计算机设备和存储介质。该方法包括:对集群的各节点进行分类,得到一个以上的长期节点和普通节点;长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组;将运行有长期任务容器组的普通节点确定为第一目标节点;驱逐第一目标节点上未处于正在使用状态的长期任务容器组;对被驱逐的容器组进行重调度。该方法可使得集群中的资源分布更为合理,节约机器成本,减少集群中GPU资源的碎片化以及新请求的整体排队和运行时间,提升了用户研发效率。

Description

集群资源调度方法、装置、计算机设备和存储介质
技术领域
本申请涉及集群资源优化技术领域,尤其涉及一种集群资源调度方法、装置、计算机设备和存储介质。
背景技术
Kubernetes作为当下最主流的容器自动化运维平台,在容器技术的基础上为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。在Kubernetes中,容器组(Pod)是最小部署单元,每个容器组由一个或多个容器组成。Kubernetes中的调度器根据一定的打分策略和调度算法将容器组绑定到集群中的工作节点中。
但由于集群中的计算资源有限,例如GPU资源,且容器组一经绑定就不会触发重调度,容易导致集群内的资源碎片化分布,从而导致没有足够的资源及时响应新到达的请求。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中自动驾驶过程容易频繁出现硬缺页异常的问题。
第一方面,本申请实施例提供了一种集群资源调度方法,包括:对集群的各节点进行分类,得到一个以上的长期节点和普通节点;长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组;将运行有长期任务容器组的普通节点确定为第一目标节点;驱逐第一目标节点上未处于正在使用状态的长期任务容器组;对被驱逐的容器组进行重调度。
在其中一个实施例中,对集群的各节点进行分类,得到一个以上的长期节点和普通节点,包括:每间隔第一周期,按照第一比例对集群的各节点进行随机分类。
在其中一个实施例中,对被驱逐的容器组进行重调度之前,还包括:获取各节点的GPU使用数量;将GPU使用数量低于第一阈值的节点确定为第二目标节点;驱逐第二目标节点上未处于正在使用状态的容器组。
在其中一个实施例中,对被驱逐的容器组进行重调度,包括:对于任意一个被驱逐的容器组,根据被驱逐的容器组的类型与节点的类型之间的匹配程度,对各节点进行打分操作,得到各节点的类型评分;根据类型评分调度被驱逐的容器组。
在其中一个实施例中,根据类型评分调度被驱逐的容器组,包括:若节点中类型评分最高的一个节点足以容纳被驱逐的容器组,则将被驱逐的容器组集中调度至类型评分最高的一个节点;若节点中类型评分最高的节点不足以容纳被驱逐的容器组,则在未满负荷的节点中按照类型评分由高至低的顺序,依次将被驱逐的容器组中的容器进行分散调度。
在其中一个实施例中,驱逐第一目标节点上未处于正在使用状态的长期任务容器组,包括:对于第一目标节点的任意一个容器组,判断容器组是否处于正在使用状态;若否,则判断容器组所执行任务的类型是否为第一预设类型;若是,则将容器组驱逐。
在其中一个实施例中,所述方法还包括:在任意一个容器组被驱逐时,向容器组的用户发出通知消息。
第二方面,本申请实施例提供了一种集群资源调度装置,包括:分类模块,用于对集群的各节点进行分类,得到一个以上的长期节点和普通节点;长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组;驱逐节点确定模块,用于将运行有长期任务容器组的普通节点确定为第一目标节点;驱逐模块,用于驱逐第一目标节点上未处于正在使用状态的长期任务容器组;重调度模块,用于对被驱逐的容器组进行重调度。
第三方面,本申请实施例提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行上述任一实施例中的集群资源调度方法的步骤。
第四方面,本申请实施例提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中的集群资源调度方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
基于上述任一实施例,将集群上的节点分为长期节点和普通节点,长期节点将被优先分配长期任务容器组,短期节点将被优先分配短期任务容器组,期望需要长期占用集群资源的容器组都集中于长期节点,以使得更多完整的节点可以等待新的请求到达。对于不符合资源分布情况的第一目标节点,将其上运行的长期任务容器组进行驱逐,集群的调度机制可以按照期望重新对被驱逐的容器组进行再分配,使得集群中的资源分布更为合理,节约机器成本,减少集群中GPU资源的碎片化以及新请求的整体排队和运行时间,提升了用户研发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一个实施例提供的集群资源调度方法,的流程示意图;
图2为本申请一个实施例提供的集群资源调度装置的模块示意图;
图3为本申请实施例提供的计算机设备的内部结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种集群资源调度方法,以下说明针对的集群资源主要是GPU资源,即集群中每个节点上配置了多块GPU。但是对于与GPU资源类似的其他集群资源,本申请也可适用。请参阅图1,该调度方法包括步骤S102至步骤S108。
S102,对集群的各节点进行分类,得到一个以上的长期节点和普通节点。
可以理解,对于新到达的容器组请求,从容器组请求中可以确定该容器组所执行的任务,从而可以确定该容器组的类型。具体而言,如果该容器组对应的任务类型是长期任务,则该容器组请求对应的容器组为长期任务容器组。如果该容器组对应的任务类型是短期任务,则该容器组请求对应的容器组为短期任务容器组。在确定容器组所执行的任务为长期任务还是短期任务时,可以根据各任务的历史耗时情况设置和长期任务对应的第一预设类型以及和短期任务对应的第二预设类型。当容器组所执行的任务属于第一预设类型时,则判断该容器组为长期任务容器组。当容器组所执行的任务属于第二预设类型时,则判断该容器组为短期任务容器组。在有些实施例中,第一预设类型包括用户个人云服务、分布式训练任务等。用户个人云服务负载较低,从分配到回收可能需要经过数日。分布式训练任务是一个容器组中需要多个GPU进行训练,大型分布式训练任务可长达数十小时。第二预设类型包括推理任务、单GPU训练任务等。推理任务的耗时往往是秒级和分钟级。单GPU训练任务往往是小时级。
调度机制将容器组请求对应的容器组类型和各节点的类型进行比较,将把长期任务容器组优先分配到长期节点上运行,以及将把短期任务容器组优先分配到普通节点上运行。这里的优先分配指的是若两类节点都可以满足容器组请求的运行条件,则会优先选择对应的那类节点进行分配,若只有不相对应类型的节点满足运行条件,则也会将容器组分配到不相对应类型的节点。即两类节点之间的界限是软约束,长期任务容器组可能运行在普通节点上,短期任务容器组也可能运行在长期节点上。
另外,长期节点和普通节点的占比可以根据需要自行调整。长期节点和普通节点可以是在分类后保持不变的。但考虑到长期节点会被优先分配运行长期任务的容器组,长期节点将长时间保持在活跃状态,可能会导致长期节点对应的设备被过度使用。为了平衡集群的GPU负载,在有些实施例中,每间隔第一周期,按照第一比例对集群的各节点进行随机分类。即定期重新对集群中的各节点进行分类,每个节点都有机会成为长期节点,防止某些节点长期保持活跃状态带来的不良后果。
S104,将运行有长期任务容器组的普通节点确定为第一目标节点。
可以理解,本申请考虑到短期任务容器组耗时较短,会快速释放出其所占据的集群资源,不容易导致集群内的资源碎片化分布。而长期任务容器组由于需要占据节点的资源较长时间,容易导致每个节点都存在长期任务容器组,当需求完整节点提供资源的请求到来时就难以对其进行响应。因此,本申请期望长期任务容器组都尽可能集中到长期节点上,使得可以有完整的普通节点用来响应新到来的请求,以解决集群资源碎片化的问题。第一目标节点即为需要进行资源重调度的节点。由于长期节点和普通节点之间的界限是软约束,在长期任务容器组初始分配时可能没有合适的长期节点,该长期任务容器组就有可能会被分配到普通节点。这与减少资源碎片化的目标不相符合,因此,需要将这种情况中的普通节点进行重调度。
S106,驱逐第一目标节点上未处于正在使用状态的长期任务容器组。
可以理解,第一目标节点上的长期任务容器组被期望运行在长期节点上,因此需要被驱逐后重新分配。但是容器组运行在节点上时可能正在被用户使用,即处于正在使用状态。而驱逐容器组会导致容器组暂时不可用,且使用过程中产生的数据也可能会丢失。因此,为了不影响用户的正常使用,第一目标节点上需要被驱逐的长期任务容器组应是未处于正在使用状态的长期任务容器组。
S108,对被驱逐的容器组进行重调度。
当某个容器组被驱逐后,该容器组将由集群的调度机制重新进行分配,重调度时希望容器组在各节点上的分配更为符合期望。在一个具体实施例中,对于任意一个被驱逐的容器组,根据被驱逐的容器组的类型与节点的类型之间的匹配程度,对各节点进行打分操作,得到各节点的类型评分。具体而言,容器组的类型与节点的类型匹配时的得分高于容器组的类型与节点的类型不匹配时的得分。即长期任务容器组对于长期节点来说会打高分,但对于普通节点来说会打低分。短期任务容器组对于普通节点来说会打高分,但对于长期节点来说会打低分。最后基于评分高低将被驱逐的容器组重新分配,使得容器组在各节点上的分配更为符合期望。以来自于第一目标节点的长期任务容器组为例,其在被重新分配时将优先分配到长期节点上,使得整个集群中的长期任务容器组更集中于长期节点中。
值得一提的是,步骤S104至步骤S108可以是定期进行的,即定期判断集群中是否存在第一目标节点,再对第一目标节点进行重调度。这里的定期可以与重新对节点进行分类同步,即也间隔第一周期执行步骤S104至步骤S108。也可以选择与第一周期不相同的第二周期。
基于本实施例中的集群资源调度方法,将集群上的节点分为长期节点和普通节点,长期节点将被优先分配长期任务容器组,短期节点将被优先分配短期任务容器组,期望需要长期占用集群资源的容器组都集中于长期节点,以使得更多完整的节点可以等待新的请求到达。对于不符合资源分布情况的第一目标节点,将其上运行的长期任务容器组进行驱逐,集群的调度机制可以按照期望重新对被驱逐的容器组进行再分配,使得集群中的资源分布更为合理,节约机器成本,减少集群中GPU资源的碎片化以及新请求的整体排队和运行时间,提升了用户研发效率。
在其中一个实施例中,对被驱逐的容器组进行重调度之前,还包括:
(1)获取各节点的GPU使用数量。
(2)将GPU使用数量低于第一阈值的节点确定为第二目标节点。
(3)驱逐第二目标节点上未处于正在使用状态的容器组。
可以理解,每个节点上将配置多块GPU,各节点上的容器组可能只需要其中的部分GPU。因此,每个节点上的GPU使用数量可以反映该节点的资源使用率,如果某个节点的GPU使用数量低于第一阈值,则可认为该节点的资源使用率较低,可将该节点的容器组腾挪到其他节点上,以将该节点成为完整充裕的资源,可以更快的响应对GPU数量要求高的新请求,进一步减少资源碎片化的问题。另外,在有些实施例中,确定第一目标节点和/或第二目标节点后,如果符合上文所述条件中的容器组存在GPU型号要求,则在进行驱逐前,应当判断其他节点是否具有与该容器组所需求型号相同的GPU,若是,则进行驱逐,若否,则仍保持第一目标节点和/或第二目标节点不变。
在其中一个实施例中,根据类型评分调度被驱逐的容器组,包括:
(1)若节点中类型评分最高的一个节点足以容纳被驱逐的容器组,则将被驱逐的容器组集中调度至类型评分最高的一个节点。
可以理解,本实施例为了进一步解决资源碎片化的问题,期望将容器组完整的集中运行于同一节点上,即被分配的节点上可用GPU的数量大于或等于被驱逐的容器组所需的GPU数量,即可认定该节点足以容纳被驱逐的容器组。并且,也希望将容器组分配到与自身所执行任务类型更为匹配的节点上。因此,在各未满负荷的节点中按照类型评分进行排序,并从排序最前的节点中筛选出足以容纳被驱逐的容器组的节点。如果存在多个这样的节点,可从中任选一个分配被驱逐的容器组。如果仅存在一个,则直接将被驱逐的容器组分配至该节点。
(2)若节点中类型评分最高的节点不足以容纳被驱逐的容器组,则在各节点中按照类型评分由高至低的顺序,依次将被驱逐的容器组中的容器进行分散调度。
可以理解,如果无法将被驱逐的容器组集中运行在同一个节点中,则以将被驱逐的容器组分布在尽可能少的节点上的策略,对被驱逐的容器组进行重调度。即先将被驱逐的容器组的部分容器分配到类型评分最高的节点中,在该节点的所有GPU均被使用后,按照类型评分由高至低选择下一个节点,直至被驱逐容器组的各容器全部被分配到若干个节点上。
在其中一个实施例中,驱逐第一目标节点上未处于正在使用状态的长期任务容器组,包括:
(1)对于第一目标节点的任意一个容器组,判断容器组是否处于正在使用状态。
(2)若否,则判断容器组所执行任务的类型是否为第一预设类型。
(3)若是,则将容器组驱逐。
可以理解,对于第一目标节点上所运行的每个容器组,首先判断该容器组是否正在使用状态。可以通过该容器组是否有活跃中的ssh客户端进行判断,也可以通过该容器组对应的GPU是否有任务正在运行进行判断。在确定容器组没有处于正处在使用状态后,获取容器组所执行任务的类型,若该类型是与长期任务对应的第一预设类型,则确定该容器组的类型为长期任务容器组,并将其驱逐。
在其中一个实施例中,集群资源调度方法还包括:在任意一个容器组被驱逐时,向容器组的用户发出通知消息。可以理解,容器组与用户之间存在对应关系,用户对其名下的容器组有使用权限,当驱逐某个用户名下的容器组时,该容器组对应的服务将短暂不可用。为了提高用户体验感,在某用户名下的容器组被驱逐时,通过通知消息进行告知,以免客户由于不知情,在调度时期提交请求而无法得到响应的情况发生。
本申请实施例提供了一种集群资源调度装置,请参阅图2,包括分类模块210、驱逐节点确定模块220、驱逐模块230和重调度模块240。
分类模块210用于对集群的各节点进行分类,得到一个以上的长期节点和普通节点。长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组。驱逐节点确定模块220用于将运行有长期任务容器组的普通节点确定为第一目标节点。驱逐模块230用于驱逐第一目标节点上未处于正在使用状态的长期任务容器组。重调度模块240用于对被驱逐的容器组进行重调度。
在其中一个实施例中,分类模块210用于每间隔第一周期,按照第一比例对集群的各节点进行随机分类。
在其中一个实施例中,驱逐节点确定模块220用于获取各节点的GPU使用数量;将GPU使用数量低于第一阈值的节点确定为第二目标节点;驱逐第二目标节点上未处于正在使用状态的容器组。
在其中一个实施例中,重调度模块240用于对于任意一个被驱逐的容器组,根据被驱逐的容器组的类型与节点的类型之间的匹配程度,对各节点进行打分操作,得到各节点的类型评分;根据类型评分调度被驱逐的容器组。
在其中一个实施例中,重调度模块240用于若节点中类型评分最高的一个节点足以容纳被驱逐的容器组,则将被驱逐的容器组集中调度至类型评分最高的一个节点;若节点中类型评分最高的节点不足以容纳被驱逐的容器组,则在未满负荷的节点中按照类型评分由高至低的顺序,依次将被驱逐的容器组中的容器进行分散调度。
在其中一个实施例中,驱逐模块230用于对于第一目标节点的任意一个容器组,判断容器组是否处于正在使用状态;若否,则判断容器组所执行任务的类型是否为第一预设类型;若是,则将容器组驱逐。
在其中一个实施例中,集群资源调度装置还包括通知模块。通知模块用于在任意一个容器组被驱逐时,向容器组的用户发出通知消息。
关于集群资源调度装置的具体限定可以参见上文中对集群资源调度方法的限定,在此不再赘述。上述集群资源调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行:对集群的各节点进行分类,得到一个以上的长期节点和普通节点;长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组;将运行有长期任务容器组的普通节点确定为第一目标节点;驱逐第一目标节点上未处于正在使用状态的长期任务容器组;对被驱逐的容器组进行重调度。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:每间隔第一周期,按照第一比例对集群的各节点进行随机分类。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:获取各节点的GPU使用数量;将GPU使用数量低于第一阈值的节点确定为第二目标节点;驱逐第二目标节点上未处于正在使用状态的容器组。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:对于任意一个被驱逐的容器组,根据被驱逐的容器组的类型与节点的类型之间的匹配程度,对各节点进行打分操作,得到各节点的类型评分;根据类型评分调度被驱逐的容器组。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:若节点中类型评分最高的一个节点足以容纳被驱逐的容器组,则将被驱逐的容器组集中调度至类型评分最高的一个节点;若节点中类型评分最高的节点不足以容纳被驱逐的容器组,则在未满负荷的节点中按照类型评分由高至低的顺序,依次将被驱逐的容器组中的容器进行分散调度。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:对于第一目标节点的任意一个容器组,判断容器组是否处于正在使用状态;若否,则判断容器组所执行任务的类型是否为第一预设类型;若是,则将容器组驱逐。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:在任意一个容器组被驱逐时,向容器组的用户发出通知消息。
示意性地,如图3所示,图3为本申请实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以配置于自动驾驶车辆中。参照图3,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的集群资源调度方法的步骤。
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(I/O)接口305。计算机设备300可以操作基于存储在存储器301的操作***,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:对集群的各节点进行分类,得到一个以上的长期节点和普通节点;长期节点被优先分配运行长期任务容器组,普通节点被优先分配运行短期任务容器组;将运行有长期任务容器组的普通节点确定为第一目标节点;驱逐第一目标节点上未处于正在使用状态的长期任务容器组;对被驱逐的容器组进行重调度。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:每间隔第一周期,按照第一比例对集群的各节点进行随机分类。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:获取各节点的GPU使用数量;将GPU使用数量低于第一阈值的节点确定为第二目标节点;驱逐第二目标节点上未处于正在使用状态的容器组。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:对于任意一个被驱逐的容器组,根据被驱逐的容器组的类型与节点的类型之间的匹配程度,对各节点进行打分操作,得到各节点的类型评分;根据类型评分调度被驱逐的容器组。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:若节点中类型评分最高的一个节点足以容纳被驱逐的容器组,则将被驱逐的容器组集中调度至类型评分最高的一个节点;若节点中类型评分最高的节点不足以容纳被驱逐的容器组,则在未满负荷的节点中按照类型评分由高至低的顺序,依次将被驱逐的容器组中的容器进行分散调度。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:对于第一目标节点的任意一个容器组,判断容器组是否处于正在使用状态;若否,则判断容器组所执行任务的类型是否为第一预设类型;若是,则将容器组驱逐。
在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:在任意一个容器组被驱逐时,向容器组的用户发出通知消息。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种集群资源调度方法,其特征在于,包括:
对集群的各节点进行分类,得到一个以上的长期节点和普通节点;所述长期节点被优先分配运行长期任务容器组,所述普通节点被优先分配运行短期任务容器组;
将运行有所述长期任务容器组的所述普通节点确定为第一目标节点;
驱逐所述第一目标节点上未处于正在使用状态的所述长期任务容器组;
对被驱逐的容器组进行重调度。
2.根据权利要求1所述的方法,其特征在于,所述对集群的各节点进行分类,得到一个以上的长期节点和普通节点,包括:
每间隔第一周期,按照第一比例对所述集群的各所述节点进行随机分类。
3.根据权利要求1所述的方法,其特征在于,所述对被驱逐的容器组进行重调度之前,还包括:
获取各所述节点的GPU使用数量;
将所述GPU使用数量低于第一阈值的所述节点确定为第二目标节点;
驱逐所述第二目标节点上未处于正在使用状态的容器组。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对被驱逐的容器组进行重调度,包括:
对于任意一个所述被驱逐的容器组,根据所述被驱逐的容器组的类型与所述节点的类型之间的匹配程度,对各所述节点进行打分操作,得到各所述节点的类型评分;
根据所述类型评分调度所述被驱逐的容器组。
5.根据权利要求4所述的方法,其特征在于,所述根据所述类型评分调度所述被驱逐的容器组,包括:
若所述节点中所述类型评分最高的一个所述节点足以容纳所述被驱逐的容器组,则将所述被驱逐的容器组集中调度至所述类型评分最高的一个所述节点;
若所述节点中所述类型评分最高的所述节点不足以容纳所述被驱逐的容器组,则在未满负荷的所述节点中按照所述类型评分由高至低的顺序,依次将所述被驱逐的容器组中的容器进行分散调度。
6.根据权利要求1所述的方法,其特征在于,所述驱逐所述第一目标节点上未处于正在使用状态的所述长期任务容器组,包括:
对于所述第一目标节点的任意一个容器组,判断所述容器组是否处于正在使用状态;
若否,则判断所述容器组所执行任务的类型是否为第一预设类型;
若是,则将所述容器组驱逐。
7.根据权利要求1所述的方法,其特征在于,还包括:
在任意一个容器组被驱逐时,向所述容器组的用户发出通知消息。
8.一种集群资源调度装置,其特征在于,包括:
分类模块,用于对集群的各节点进行分类,得到一个以上的长期节点和普通节点;所述长期节点被优先分配运行长期任务容器组,所述普通节点被优先分配运行短期任务容器组;
驱逐节点确定模块,用于将运行有所述长期任务容器组的所述普通节点确定为第一目标节点;
驱逐模块,用于驱逐所述第一目标节点上未处于正在使用状态的所述长期任务容器组;
重调度模块,用于对被驱逐的容器组进行重调度。
9.一种计算机设备,其特征在于,包括一个或多个处理器,以及存储器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1-7任一项所述的集群资源调度方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1-7任一项所述的集群资源调度方法的步骤。
CN202310253425.2A 2023-03-15 2023-03-15 集群资源调度方法、装置、计算机设备和存储介质 Pending CN116360922A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310253425.2A CN116360922A (zh) 2023-03-15 2023-03-15 集群资源调度方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310253425.2A CN116360922A (zh) 2023-03-15 2023-03-15 集群资源调度方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116360922A true CN116360922A (zh) 2023-06-30

Family

ID=86927564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310253425.2A Pending CN116360922A (zh) 2023-03-15 2023-03-15 集群资源调度方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116360922A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331650A (zh) * 2023-10-31 2024-01-02 中科驭数(北京)科技有限公司 容器集的调度方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331650A (zh) * 2023-10-31 2024-01-02 中科驭数(北京)科技有限公司 容器集的调度方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN109960585B (zh) 一种基于kubernetes的资源调度方法
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
US8185908B2 (en) Dynamic scheduling in a distributed environment
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及***
CN106919445A (zh) 一种在集群中并行调度容器的方法和装置
CN105159769A (zh) 一种适用于计算能力异构集群的分布式作业调度方法
Wided et al. Load balancing with Job Migration Algorithm for improving performance on grid computing: Experimental Results
CN108509280B (zh) 一种基于推送模型的分布式计算集群本地性调度方法
CN109783225B (zh) 一种多租户大数据平台的租户优先级管理方法及***
US8539495B2 (en) Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method
CN113867959A (zh) 一种训练任务资源调度方法、装置、设备及介质
CN106201701A (zh) 一种带任务重复的工作流调度算法
CN111767145A (zh) 容器调度***、方法、装置和设备
CN116360922A (zh) 集群资源调度方法、装置、计算机设备和存储介质
CN116010064A (zh) Dag作业调度和集群管理的方法、***及装置
CN112799837A (zh) 一种容器动态平衡调度方法
Qureshi et al. Grid resource allocation for real-time data-intensive tasks
CN114995974A (zh) 任务调度方法、装置、存储介质及计算机设备
CN111796933A (zh) 资源调度方法、装置、存储介质和电子设备
CN112073532B (zh) 一种资源分配的方法及装置
CN108983712A (zh) 一种优化混合关键实时***使用寿命的任务调度方法
CN115562841B (zh) 一种云视频服务自适应资源调度***和方法
CN116263715A (zh) 一种面向云原生智能排版服务的自动缩放***及方法
CN115629854A (zh) 分布式任务调度方法、***、电子设备和存储介质
CN112286631B (zh) 一种Kubernetes资源调度方法、装置与电子设备

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