CN117009060A - 资源调度方法、装置、设备及存储介质 - Google Patents

资源调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117009060A
CN117009060A CN202311263285.3A CN202311263285A CN117009060A CN 117009060 A CN117009060 A CN 117009060A CN 202311263285 A CN202311263285 A CN 202311263285A CN 117009060 A CN117009060 A CN 117009060A
Authority
CN
China
Prior art keywords
nodes
target
node
execution
resource pool
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.)
Granted
Application number
CN202311263285.3A
Other languages
English (en)
Other versions
CN117009060B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311263285.3A priority Critical patent/CN117009060B/zh
Publication of CN117009060A publication Critical patent/CN117009060A/zh
Application granted granted Critical
Publication of CN117009060B publication Critical patent/CN117009060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • G06F9/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F9/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种资源调度方法、装置、设备及存储介质。资源调度方法包括:获取第一容器组,第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,节点具有执行限制条件;在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除;在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行;如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,将执行限制条件恢复。本申请实施例可应用于云技术、人工智能等各种场景,可提高目标资源池的总体资源分配率和处理效率。

Description

资源调度方法、装置、设备及存储介质
技术领域
本申请涉及资源调度领域,特别是涉及一种资源调度方法、装置、设备及存储介质。
背景技术
资源池(Resource Pool)是一组硬件资源的集合,例如,服务器集群上所有处理能力、存储空间等形成了一个资源池。资源池包括多个节点,这里的节点包括硬件节点和软件节点,硬件节点例如一个或多个物理上独立的服务器节点,软件节点是一台或多个物理上独立的设备上划分出的一部分,如虚拟机。这些硬件节点和软件节点共同占用资源池的资源,如资源池的总的处理能力、总存储空间等。容器组是指要放置到某个资源池的多个硬件或软件节点上执行的软件集合。将容器组分配到资源池的一个软件或硬件节点上执行的过程是资源调度。
每个节点具有执行限制条件。例如,有的节点用于执行高性能计算任务,因此会限制低性能计算任务的执行。当某个目标资源池中每个节点都具有比较多的执行限制条件时,每个节点分到的任务有限,导致目标资源池的总体资源分配率较低,处理效率随之下降。
发明内容
本申请实施例提供了一种资源调度方法、装置、设备及存储介质,它能够提高目标资源池的总体资源分配率和处理效率。
根据本申请实施例的一方面,提供了一种资源调度方法,包括:
获取第一容器组,所述第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,所述节点具有执行限制条件;
在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除;
在所述执行限制条件解除后的多个所述节点中选择目标节点,并将所述第一容器组分配到所述目标节点执行;
如果在所述执行限制条件解除之后,确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,将所述执行限制条件恢复。
根据本申请实施例的另一方面,提供了一种资源调度装置,包括:
获取单元,用于获取第一容器组,所述第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,所述节点具有执行限制条件;
条件解除单元,用于在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除;
分配单元,用于在所述执行限制条件解除后的多个所述节点中选择目标节点,并将所述第一容器组分配到所述目标节点执行;
条件恢复单元,用于如果在所述执行限制条件解除之后,确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,将所述执行限制条件恢复。
可选地,所述目标资源池选自多个候选资源池,装置还包括资源池更新单元,具体用于:
从多个所述候选资源池中选择未选择过的一个所述候选资源池更新所述目标资源池;
返回在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除的步骤。
可选地,上述条件解除单元具体用于:确定所述目标资源池的多个所述节点的第一总体资源分配率小于第一阈值;
可选地,上述条件恢复单元具体用于:确定所述目标资源池的多个所述节点的第二总体资源分配率大于第二阈值,所述第一阈值小于所述第二阈值。
可选地,上述条件解除单元还用于:确定所述目标资源池的多个所述节点的第一总体资源分配率小于第一阈值;
可选地,上述条件恢复单元还用于:确定所述目标资源池的多个所述节点的第二总体资源分配率与所述第一总体资源分配率之差大于第三阈值。
可选地,装置还包括扩容单元,具体用于:
如果接收到第二容器组的扩容请求,将所述第一容器组从所述目标节点移出,所述第二容器组是在所述目标节点中执行的软件集合,且所述目标节点解除的所述执行限制条件与所述第二容器组相容。
可选的,上述分配单元具体用于:
确定所述目标资源池的多个所述节点中所解除的所述执行限制条件与所述第一容器组的匹配度;
将多个所述节点中所述匹配度最小的所述节点,确定为所述目标节点。
可选的,上述分配单元还用于:
确定在所述执行限制条件解除后的多个所述节点的节点资源利用率;
从所述节点资源利用率小于第四阈值的多个所述节点中选择目标节点。
可选的,上述分配单元还用于:
确定在所述执行限制条件解除后的多个所述节点的节点类型;
如果所述节点类型与第一类型不同,从与第一类型不同的多个所述节点中选择目标节点。
可选的,上述条件解除单元还用于:
确定所述执行限制条件的条件类型;
如果所述条件类型与第二类型不同,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除。
可选的,所述第一容器组具有目标容忍度,上述条件解除单元还用于:
增加所述目标容忍度,使得所述目标资源池的多个所述节点的所述执行限制条件与增加的所述目标容忍度相容。
可选的,装置还包括迁移模块,具体用于:
将所述第一容器组从所述目标节点移出,并将所述目标容忍度恢复,使得所述目标资源池的多个所述节点的所述执行限制条件都与所述第一容器组恢复后的所述目标容忍度排斥。
根据本申请实施例的另一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的资源调度方法。
根据本申请实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的资源调度方法。
根据本申请实施例的另一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的资源调度方法。
本申请实施例至少包括以下有益效果:在对目标资源池进行资源调度时,由于多个节点均具有执行限制条件,在获取到第一容器组后,这些执行限制条件会限制相排斥的第一容器组到节点中执行。因此,在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,目标资源池的总体资源分配率低,需要将执行限制条件解除,解除后的多个节点就可以执行原先被排斥的第一容器组。随后,可以在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行,这样目标资源池就可以摆脱执行限制条件的限制而处理更多的任务,从而提高了目标资源池总体的资源分配率。如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,说明在解除执行限制条件的限制之后的目标资源池的总体资源分配率提高了,后续就可以将执行限制条件恢复,意味着目标资源池可以在总体资源分配率低的时候处理更多的任务,而在总体资源分配率提高后就可以恢复限制去处理原本限制范围内的任务,最终不仅能提高目标资源池的总体资源分配率,还可以提高处理效率。
本申请实施例的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。
图1是本申请实施例提供的资源调度系统的场景示意图;
图2A是本申请实施例提供的目标资源池为GPU池的场景示意图;
图2B是本申请实施例提供的节点1被确定为目标节点后所处理的任务的示意图;
图3A是本申请实施例提供的目标资源池为网络资源池的场景示意图;
图3B是本申请实施例提供的节点1被确定为目标节点后所处理的任务的另一个示意图;
图4是本申请实施例提供的资源调度方法的流程示意图;
图5是本申请实施例提供的从多个节点中选择目标节点的示意图;
图6是本申请实施例提供的预先配置目标资源池混部计划的示意图;
图7是本申请实施例提供的根据透明标签选择目标节点的示意图;
图8是本申请实施例提供的从多个候选资源池中更新目标资源池的示意图;
图9是本申请实施例提供的目标节点所运行的容器组的示意图;
图10是本申请实施例提供的资源调度方法完整的流程示意图;
图11是本申请实施例提供的对节点资源进行扩容的流程示意图;
图12是本申请实施例提供的轮询节点中混部进来的非GPU Pod的流程示意图;
图13是本申请实施例提供的根据总体资源分配率的大小确定是否移出混部的非GPU Pod的流程示意图;
图14是本申请实施例提供的资源调度装置的结构示意图;
图15是本申请实施例提供的资源调度方法的终端部分的结构框图;
图16是本申请实施例提供的资源调度方法的服务器部分的结构框图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
Kubernetes简称k8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统,Kubernetes可以称为Kubernetes集群,它提供了一种便捷的方式来管理容器集群,使得应用程序的部署和管理变得更加简单和可靠。
资源池(Resource Pool)是一组硬件资源的集合,按其类型可分为计算资源、存储资源和网络资源等,在云计算和容器化环境中,资源池通常用于管理和调度可供应用程序使用的计算资源。例如,服务器集群上所有处理能力、存储空间等形成了一个资源池。
资源池包括多个节点,这里的节点包括硬件节点和软件节点,硬件节点例如一个或多个物理上独立的服务器节点,软件节点是一台或多个物理上独立的设备上划分出的一部分,如虚拟机。这些硬件节点和软件节点共同占用资源池的资源,如资源池的总的处理能力、总存储空间等。
中央处理器(Central Processing Unit,CPU)是计算机系统中的核心组件之一。CPU由多个核心(Core)组成,每个核心都能够独立处理指令和数据。每个核心内部包含算术逻辑单元(ALU)、寄存器和控制单元等关键部件,用于执行算术运算、逻辑运算和控制流程等任务。
图形处理单元(Graphics Processing Unit,GPU)是一种专门用于处理图形和图像计算的硬件设备,与通用的CPU相比,GPU具有更多的并行处理核心,能够同时执行多个计算任务。资源池可以在各个节点上配置GPU,使得资源池可以作为一个专用处理GPU服务的集合。
资源池水位(Pool waterline)是指资源池中所有节点的CPU平均分配率。在资源池中,可以为不同的节点分配任务,每个节点在分配到任务后,可以执行该任务,并提高节点的CPU利用率,而对整个资源池来说,更多的节点处理任务时,资源池水位也越高。
容器组(Pod)是Kubernetes创建或部署的最简单的基本单位,Pod封装了应用容器、存储资源、独立的网络IP以及管理控制容器运行方式的策略选项。一个Pod可以作为一个处理任务,且一个Pod可以包含一个或多个相关的容器,例如多个不同GPU任务的容器,或者多个不同CPU任务的容器。
标签(Label)是附加到Kubernetes对象(如Pod)上的键值对,用于将对象进行分类和组织,可以根据需求为对象添加不同的标签,使得管理和编排容器化应用程序更加方便和高效。例如,可以为节点打上“GPU”、“高性能”、“内存密集型”等标签,以表示它们具有相应的功能或属性。
污点(Taints)应用到节点上,用于排斥一类Pod。容忍度(Tolerations)表示能够容忍这个节点的污点的程度。例如,当节点添加一个污点后,除非Pod的容忍度能够容忍这个污点,否则Pod不会被调度到这个节点上执行。
现有技术中,每个节点具有执行限制条件。例如,有的节点用于执行高性能计算任务,因此会限制低性能计算任务的执行。当某个目标资源池中每个节点都具有比较多的执行限制条件时,每个节点分到的任务有限,导致目标资源池的总体资源分配率较低,处理效率随之下降。
此外,现有技术为了解决目标资源池总体的资源分配率较低的问题,采用在离线混部的方式,跳过提升资源池分配率的方式,通过把离线计算作业部署进来进行处理。但是,这种方式只能进行离线部署,无法处理在线任务,且这仅仅提高部分节点的资源利用率,无法提高目标资源池的总体资源分配率。
基于此,本申请实施例公开了一种资源调度方法、装置、设备及存储介质,它能够提高目标资源池的总体资源分配率和处理效率。此外,本申请实施例能够处理在线任务,并非单单提高节点的资源利用率,相比现有技术离线混部的方案,提高目标资源池的总体资源分配率。
下面,对本申请实施例应用的系统体系构架及场景进行说明:
请参阅图1所示,图1示出了本申请实施例提供的资源调度系统的场景示意图,资源调度系统包括终端110和目标资源池120。其中,目标资源池120内设置有多个设备,包括服务器121和节点,节点有多个,例如,可以设置有n个节点,这些节点分别为节点1、节点2至节点n,各个节点可以分别与服务器310通信连接。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。用户可以在终端110上配置或通过终端110接收第一容器组,第一容器组是一个软件集合,含有一个或多个容器,随后终端110可以发起资源调度请求,资源调度请求是指从终端110到服务器121的请求,可以用于请求进行资源调度,以将第一容器组分配到合适的节点执行。
服务器121可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。另外,服务器121还可以是区块链网络中的一个节点服务器。服务器121位于目标资源池120内,可以接收终端110发送的资源调度请求以及携带的第一容器组,服务器121可以在接收到资源调度请求以后,执行资源调度方法。目标资源池120内的节点具有执行限制条件,服务器121用于在确定目标资源池120的多个节点的第一总体资源分配率符合分配条件时,将目标资源池120的多个节点与第一容器组排斥的执行限制条件解除;在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行;如果在执行限制条件解除之后,确定目标资源池120的多个节点的第二总体资源分配率大于第一总体资源分配率,将执行限制条件恢复。服务器121还可以将第一容器组处理后的结果返回给终端110,在此不做具体限制。
节点可以是硬件节点或软件节点,硬件节点例如一个或多个物理上独立的服务器节点,可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器;软件节点是一台或多个物理上独立的设备上划分出的一部分,如虚拟机。节点可以上报自身的资源利用率信息给服务器121,或者上报自身的任务运行情况给服务器121,以便服务器121进一步进行处理,节点在接收到服务器121下发的第一容器组后,可以执行第一容器组,进一步的,节点还可以将执行第一容器组后得到的数据处理结果发送给服务器121,在此不做具体限制。
可以理解的是,服务器121可以是专门设置在目标资源池内接收终端的信息并进行处理和判断,随后进行容器组转发的设备。服务器121也可以是多个节点中的一个,也就是说,可以将多个节点中的一个设置为执行资源调度方法的服务器121,以便接收终端的信息并进行处理和判断,随后进行容器组的转发。
本申请实施例可以应用在多种场景下。下面,分别以目标资源池为GPU资源池的场景,和目标资源池为网络资源池的场景进行说明:
(1)目标资源池为GPU资源池的场景。
请参阅图2A所示,示出了本申请实施例提供的目标资源池为GPU池的场景示意图,图2A中的目标资源池为GPU池220(GPU资源池),第一容器组为非GPU服务的软件集合(后续简称非GPU服务)。
在该场景下,在一个GPU池220中,有多个节点可供资源调度,如节点1至节点n,这些节点都具有执行限制条件,现有至少一个非GPU服务1的第一容器组需要被执行,但由于执行限制条件的存在,它无法被分配到任何节点上,GPU池220只能执行GPU服务相关的任务。当GPU池220的第一总体资源分配率符合分配条件时,服务器221可以将GPU池220的多个节点与非GPU服务排斥的执行限制条件解除,这些节点就可以执行非GPU服务的任务了。
随后服务器221可以在多个节点中选择目标节点,如将节点1选择为目标节点,并将各个非GPU服务(如非GPU服务1)分别分配到目标节点执行,此时的GPU池220就可以摆脱执行限制条件的限制,处理更多的任务,包括非GPU服务和GPU服务,从而提高了总体资源分配率。如果在解除执行限制条件后,确定目标资源池220的多个节点的第二总体资源分配率大于第一总体资源分配率,说明在解除执行限制条件的限制后,目标资源池220的总体资源分配率得到了提高,后续可以恢复执行限制条件。
请参阅图2B,示出了本申请实施例提供的节点1被确定为目标节点后所处理的任务的示意图。其中,由于解除了执行限制条件,节点1在被确定为目标节点后,可以处理GPU服务1和非GPU服务1,GPU服务1是原本就分配到节点1上执行的任务,是与执行限制条件相容的。
本场景中的GPU池220可以在总体资源分配率较低的情况下处理包括非GPU服务和GPU服务在内的更多服务,而在总体资源分配率提高后,可以恢复限制并处理原本限制范围内的GPU服务。通过这样的资源调度和执行限制条件的调整,GPU池220不仅能提高总体资源分配率,还可以提高处理效率,这对于优化GPU池220的资源利用和工作负载管理非常有益。
(2)目标资源池为网络资源池的场景。
请参阅图3A所示,示出了本申请实施例提供的目标资源池为网络资源池的场景示意图,图3A中的目标资源池为网络资源池320,第一容器组为非网络服务的软件集合。
在该场景下,在一个网络资源池320中,有多个节点可供资源调度,如节点1至节点n,这些节点都具有执行限制条件,现有至少一个非网络服务1的第一容器组需要被执行,但由于执行限制条件的存在,它无法被分配到任何节点上,网络资源池320只能执行网络服务相关的任务。当网络资源池320的第一总体资源分配率符合分配条件时,服务器321可以将网络资源池320的多个节点与非网络服务排斥的执行限制条件解除,这些节点就可以执行非网络服务的任务了。
随后服务器321可以在多个节点中选择目标节点,如将节点1确定为目标节点,并将各个非网络服务分别分配到目标节点执行,此时的网络资源池320就可以摆脱执行限制条件的限制,处理更多的任务,包括非网络服务和网络服务,从而提高了总体资源分配率。如果在解除执行限制条件后,确定目标资源池320的多个节点的第二总体资源分配率大于第一总体资源分配率,说明在解除执行限制条件的限制后,目标资源池320的总体资源分配率得到了提高,后续可以恢复执行限制条件。
请参阅图3B,示出了本申请实施例提供的节点1被确定为目标节点后所处理的任务的另一个示意图。其中,由于解除了执行限制条件,节点1在被确定为目标节点后,可以处理非网络服务1。
本场景中的网络资源池320可以在总体资源分配率较低的情况下处理包括非网络服务和网络在内的更多服务,而在总体资源分配率提高后,可以恢复限制并处理原本限制范围内的网络服务。通过这样的资源调度和执行限制条件的调整,网络资源池320不仅能提高总体资源分配率,还可以提高处理效率,这对于优化网络资源池320的资源利用和工作负载管理非常有益。
除此之外,目标资源池还可以是内存资源池、存储资源池或数据资源池等,本申请实施例仅以目标资源池为GPU池和网络资源池为例子进行说明,并不代表为对本申请实施例的限制。
本申请实施例提供的方法可应用于不同的场景,包括但不限于可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
下面,对本申请实施例的资源调度方法进行总体说明:
请参阅图4所示,示出了本申请实施例提供的资源调度方法的流程示意图,该资源调度方法可以由上述图1中的服务器执行,或者由终端与服务器配合执行。该资源调度方法包括但不限于以下步骤401至步骤404。
步骤401,获取第一容器组;
其中,第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,节点具有执行限制条件。
在步骤401中,第一容器组是目标资源池所接收到的一个容器组,该容器组是可以作为一个处理任务,可以包含一个或多个相关的容器,例如多个不同GPU任务的容器,或者多个不同CPU任务的容器。第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,目标资源池可以将第一容器组分配到节点上执行,节点可以通过接收第一容器组并执行,完成相应的处理任务。
示例性的,获取第一容器组的方式有多种。例如,用户可以选择需要调度处理的容器组作为第一容器组,并通过终端将第一容器组发送到目标资源池中;或者,资源调度系统可以为目标资源池配置一定的调度算法,自动选择需要调度的容器组作为第一容器组,并发送到目标资源池中;或者,目标资源池可以配置自动化脚本或工具,使得目标资源池可以在系统运行过程中,实现自动化地获取需要调度的第一容器组。
目标资源池是一个由多个节点组成的资源池,是一个集合,该资源池中设置有多个节点,这些节点可以是硬件节点或软件节点。“目标”一词是用于限定当前的资源池是正在进行资源调度的,通过“目标”一词来表示目标资源池是当前进行资源调度的一个资源池。本申请实施例中以目标资源池包含多个硬件节点为例子进行说明,但并不代表为对本申请实施例的限制。
执行限制条件是一个用于限制节点上处理任务的条件,可以排斥一些无法在该节点上运行的容器组。也就是说,当一个节点上设置有执行限制条件,如果某个容器组要在该节点上执行,则需要与该节点上的执行限制条件相容,否则,若某个容器组与该节点上的执行限制条件相排斥,则该容器组会被限制在这个节点上执行。
示例性的,执行限制条件的方式有多种。例如,节点上可以设置有污点,该污点可以用排斥一类容器组,只有容器组能容忍该节点上的污点,那么这个容器组才可以被分配到该节点上执行;或者,在节点上设置硬件资源限制,如内存、CPU、存储等,只有容器组的资源需求符合节点的资源限制条件时,才可以将容器组分配到该节点上执行;或者,还可以根据节点之间的网络拓扑结构,限制容器组与节点之间的网络通信,如某些容器组需要在同一子网内进行通信,那么只有满足这个要求的节点才能接收这些容器组;或者,还可以根据容器组的服务类别或优先级,限制容器组的执行,如某些高优先级的容器组只能被分配给特定的节点执行,而其他低优先级的容器组则可以被分配给更多的节点执行。本申请实施例中以节点上设置污点作为执行限制条件进行说明,但并不代表为对本申请实施例的限制。
需要说明的是,第一容器组是与多个节点上的执行限制条件相排斥的,也就是说,有各个节点上执行限制条件的存在,可以排斥掉第一容器组,这些节点仅能执行一些与对应的执行限制条件相容的容器组。例如,节点上通过设置污点作为执行限制条件,若第一容器组不具有容忍该污点的容忍度,则无法在该节点上执行。
在本实施例中,在获取第一容器组之后,暂时还不能直接将第一容器组分配到节点上执行,后续需要对目标资源池的总体资源分配率进行判断。
步骤402,在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。
在步骤402中,第一总体资源分配率是目标资源池计算得到的一个总体资源分配率,可以表示当前目标资源池整体的资源分配情况。“第一”一词是指这个总体资源分配率是在执行限制条件解除之前获取的。
可以理解的是,第一总体资源分配率也即执行限制条件解除之前目标资源池的资源池水位,第一总体资源分配率若偏高,表示当前目标资源池内较多的节点都能分配到任务,反之,当第一总体资源分配率偏低,表示当前目标资源池内仅有少部分的节点能分配到任务,而大部分的节点处于空闲或不饱和状态。
分配条件是用于限定目标资源池后续是否需要解除执行限制条件的一个条件。当目标资源池的多个节点的第一总体资源分配率符合分配条件,说明第一总体资源分配率较小,后续需要提高目标资源池的资源分配率,反之,当目标资源池的多个节点的第一总体资源分配率不符合分配条件,说明第一总体资源分配率较大,后续不再进行资源调度操作。
可以理解的是,目标资源池中多个节点由于执行限制条件的存在,在获取到第一容器组后,这些执行限制条件会限制相排斥的第一容器组到节点中执行。而当目标资源池的多个节点的第一总体资源分配率符合分配条件,说明此时目标资源池的总体资源分配率过低,若再排斥第一容器组到这些节点上运行,则会浪费目标资源池的节点资源,导致资源浪费。
基于此,在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,需要将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。执行限制条件解除是指解除节点对第一容器组执行的限制,若某节点原先不能执行第一容器组,在解除该节点的执行限制条件后,该节点不再对第一容器组有所限制,因此具备了第一容器组在该节点上执行的可能。
示例性的,第一容器组的数量不同,则可以分别针对第一容器组解除对应的执行限制条件,或者统一将所有节点的执行限制条件解除,具体的:
当第一容器组的数量不多,目标资源池可以更加灵活地利用节点资源。在执行资源调度方法时,目标资源池接收到第一容器组后,才将排斥该第一容器组的节点的执行限制条件解除,当下一个第一容器组进来后,再将对应的执行限制条件解除,这种策略可以根据实际情况进行动态调整,确保资源调度的灵活性和效率。
当第一容器组的数量有多个,目标资源池是将所有节点的执行限制条件解除。这是因为此时的目标资源池由于原先节点上执行限制条件的存在,排斥了很多容器组,导致资源池的总体资源分配率低,此时在解除所有节点的执行限制条件后,每个节点都不再排斥一些容器组,这样就可以将这些原先被排斥的容器组分配到节点上执行。而将所有的节点的执行限制条件解除,是因为目标资源池面对的第一容器组有很多,若一个一个对比再解除对应的执行限制条件,会降低处理效率,因此,可以统一将所有节点上能解除的执行限制条件都解除,则可以完全放开目标资源池的处理能力,后续就可以大量执行不同的容器组。
在本实施例中,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除后,后续就可以从执行限制条件解除后的多个节点中选择节点来执行第一容器组。
步骤403,在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行。
在步骤403中,目标节点是在解除执行限制条件后,从多个可执行的节点中选择的一个节点,将第一容器组分配到该节点上执行。目标节点是与第一容器组相对应的,也就是说,目标资源池可以为一个第一容器组分配对应的一个目标节点。但是,由于节点可以执行多个容器组,因此,可以存在多个第一容器组被分配到一个目标节点的情况,也可以存在不同的第一容器组被分配到不同的目标节点的情况。
示例性的,选择目标节点的方式有多种。例如,可以随机在执行限制条件解除后的多个节点选择一个作为目标节点;或者,还可以在目标资源池内配置相应的容器调度算法,通过该算法在执行限制条件解除后的多个节点中自动选择目标节点;或者,还可以根据执行限制条件解除后的多个节点的负载情况选择目标节点。选择目标节点的方式有很多,本申请实施例不对其做具体限制。
需要说明的是,选择目标节点的目的是使资源调度方法更加高效和灵活地利用目标资源池中的节点资源,并提高任务处理效率。通过确定每个第一容器组被分配到的对象,后续可以将第一容器组分配到对应的目标节点执行。
需要说明的是,当目标资源池是分别针对第一容器组解除对应的执行限制条件的,由于目标资源池是在第一总体资源利用率符合分配条件时进行的调度,最终通过逐渐解除节点的执行限制条件,越来越多的目标节点可以分配到任务,对于节点来说,提高了资源利用率,对整体来说,可以提高目标资源池的总体资源利用率,并提高对各个第一容器组任务执行的处理效率。当目标资源池是统一将所有节点的执行限制条件解除的,由于目标资源池是在第一总体资源利用率符合分配条件时进行的调度,最终通过统一解除所有节点的执行限制条件,多个目标节点可以分配到任务,对于节点来说,提高了资源利用率,对整体来说,可以提高目标资源池的总体资源利用率,并提高对各个第一容器组任务执行的处理效率。
在本实施例中,目标节点原先因为执行限制条件的存在,会排斥第一容器组,而现在由于执行限制条件被解除了,因此在将第一容器组分配到目标节点后,目标节点可以正常执行该第一容器组上所指示的处理任务。此时对目标节点来说,第一容器组就是一个混部到其运行的一个任务,目标节点可以分配到本来无法处理的任务,这样就可以充分利用节点资源,当第一容器组较多时,会使得更多的目标节点被分配到任务,从而可以提高目标资源池的总体资源分配率。
请参阅图5,示出了本申请实施例提供的从多个节点中选择目标节点的示意图。图中示出了n个节点,包括节点1、节点2至节点n,节点1、节点2至节点n都是执行限制条件解除后的节点,因此服务器500可以在其中选择目标节点,如将节点2选择为目标节点,后续可以将第一容器组分配到节点2执行。
步骤404,如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,将执行限制条件恢复。
在步骤404中,第二总体资源分配率是目标资源池计算得到的一个总体资源分配率,可以表示节点在执行完第一容器组后,目标资源池整体的资源分配情况。“第二”一词是指这个总体资源分配率是在执行限制条件解除之后获取的。
需要说明的是,在执行限制条件解除之后,目标资源池除了处理第一容器组的任务外,还可以继续处理原先执行限制条件相容的任务。例如,若目标资源池为GPU池,则其通过在节点上设置污点,可以排斥一些非GPU服务的容器组,因此GPU服务是目标资源池自身需要的任务,这里的非GPU服务即第一容器组的任务。但是由于GPU池的总体资源分配率低,现在删除污点后,GPU池不仅可以处理GPU服务,还可以接收第一容器组,并处理非GPU服务,从而充分利用节点资源。
需要说明的是,本申请实施例并不会影响到目标节点原有任务的执行。这是因为由于原先目标资源池的第一总体资源分配率较低,且符合分配条件,此时目标资源池中各个节点所要处理的任务并不多,很多节点没法分配到任务,或者节点资源利用率不饱和。原先目标资源池中节点设置执行限制条件,就是为了更好地处理与执行限制条件相容的任务,但是此时原来相容的任务并不多,所以添加一些原先排斥执行的任务进行处理并不会影响节点的处理效率。
而当第二总体资源分配率大于第一总体资源分配率,甚至第二总体资源分配率大到一定程度,需要恢复执行限制条件,这是为了满足目标资源池自身的任务处理需求。恢复执行限制条件可以限制第一容器组在目标资源池中的占用,将资源分配给其他可能需要的任务或容器组。通过恢复执行限制条件,可以实现对资源的动态调度,这是一种“柔性调度”,可以确保目标资源池的资源分配更加灵活和高效,避免过度分配而导致资源占用。
例如,若目标资源池为GPU池,则其通过在节点上设置污点,可以排斥一些非GPU服务的容器组,这里的非GPU服务即第一容器组的任务。但是由于GPU池的总体资源分配率低,现在删除污点后,可以同时处理更多包括GPU服务和非GPU服务在内的更多服务,从而充分利用节点资源,且非GPU服务更多是利用CPU资源,不会对GPU性能有多大影响。但是,一旦第二总体资源分配率大于第一总体资源分配率,并大到一定程度,混部进目标节点的第一容器组会影响到原服务的执行,如CPU占用率太大会影响到GPU服务的执行,此时通过恢复执行限制条件就可以保证原来的GPU服务可以正常进行,不受混部进来的非GPU服务的影响。
需要说明的是,恢复执行限制条件要与解除执行限制条件的过程对应,也就是说,原先是如何解除执行限制条件的,现在就要反过来原样恢复执行限制条件。例如,若原先是将节点上的污点删除,那么,在恢复执行限制条件时,就需要将原先删除的这些污点重新添加回来。
示例性的,恢复执行限制条件的时机有多种。例如,可以设定一定的周期来检测目标资源池多个节点的第二总体资源分配率,在下一周期内第二总体资源分配率大于第一总体资源分配率时,才将执行限制条件恢复;或者,还可以根据第二总体资源分配率与第一总体资源分配率之间的大小差异程度来选择是否将执行限制条件恢复,这样可以保证目标资源池可以处理更多的任务。总之,本申请实施例可以通过选择恢复执行限制条件的时机,让目标资源池在更多的时间内处理更多任务。
综上所述,本申请实施例在对目标资源池进行资源调度时,由于多个节点均具有执行限制条件,在获取到第一容器组后,这些执行限制条件会限制相排斥的第一容器组到节点中执行。因此,在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,目标资源池的总体资源分配率低,需要将执行限制条件解除,解除后的多个节点就可以执行原先被排斥的第一容器组。随后,可以在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行,这样目标资源池就可以摆脱执行限制条件的限制而处理更多的任务,从而提高了目标资源池总体的资源分配率。如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,说明在解除执行限制条件的限制之后的目标资源池的总体资源分配率提高了,后续就可以将执行限制条件恢复,意味着目标资源池可以在总体资源分配率低的时候处理更多的任务,而在总体资源分配率提高后就可以恢复限制去处理原本限制范围内的任务,最终不仅能提高目标资源池的总体资源分配率,还可以提高处理效率。
在介绍完本申请实施例的总体步骤后,下面针对每个步骤的具体实现展开详细描述。
下面,对上述步骤402和步骤404中有关第一总体分配率和第二总体分配率的内容进行说明:
在一些实施方式中,第一总体资源分配率是否符合分配条件,是通过对比第一总体资源分配率与第一阈值之间的大小关系后得到的。上述步骤402中具体可以包括:
确定目标资源池的多个节点的第一总体资源分配率小于第一阈值。
在上述步骤中,第一阈值是一个用于比较目标资源池的多个节点的第一总体资源分配率大小的数值。具体来说,在步骤402中,需要确定目标资源池的多个节点的第一总体资源分配率是否小于第一阈值。例如,可以将第一阈值设置为某个预先定义的资源分配率百分比,当第一总体资源分配率低于该百分比时,认为第一总体资源分配率小于第一阈值。具体的第一阈值取值应该根据实际需求和系统特点来确定。
在本实施例中,通过设定第一阈值来确定第一总体资源分配率是否符合分配条件,可以对资源进行有效管理和分配。当第一总体资源分配率低于第一阈值时,意味着目标资源池的资源利用率较低,可能存在空闲资源,这样可以及时调整资源的分配,以最大化资源的利用效率。同时,通过设定合理的第一阈值,可以避免资源超负荷运行,保持系统的稳定性和可靠性。
在一些实施方式中,确定第二总体资源分配率大于第一总体资源分配率,是通过对比第二总体资源分配率和第二阈值之间的大小关系后得到的,上述步骤404中具体可以包括:
确定目标资源池的多个节点的第二总体资源分配率大于第二阈值;
其中,第一阈值小于第二阈值。
在上述步骤中,第二阈值是一个用于比较目标资源池的多个节点的第二总体资源分配率大小的数值。具体来说,在步骤404中,通过对比第二总体资源分配率和第二阈值之间的大小关系来确定是否需要恢复执行限制条件。例如,可以将第二阈值设置为某个预先定义的资源分配率百分比,当第二总体资源分配率低于该百分比时,认为第二总体资源分配率小于第二阈值。具体的第二阈值取值应该根据实际需求和系统特点来确定。
需要说明的是,由于第一阈值小于第二阈值,当第一总体资源分配率小于第二阈值,而第二总体资源分配率大于第二阈值时,就可以认定第二总体资源分配率大于第一总体资源分配率,后续可以恢复执行限制条件。
示例性的,第一阈值和第二阈值都是基于预设的分配率阈值和预设误差得到的。分配率阈值和预设误差的差值就是第一阈值,分配率阈值和预设误差的和就是第二阈值。例如,假设分配率阈值为80%,而预设误差为5%,则第一阈值为75%,第二阈值为85%。当实际的第一总体资源分配率为30%,低于75%,就会被认为符合分配条件,需要解除节点的执行限制条件,而当实际的第二总体资源分配率为90%,高于85%,就会被认为第二总体资源阈值大到一定程度,后续需要恢复执行限制条件。因此,通过设定预设误差,可以提供一定的灵活性和容错性,同时能够更好地控制精确度,避免频繁的资源调度操作,优化资源调度策略,最终提高系统的可靠性和性能效率。
在本实施例中,通过设定第一阈值小于第二阈值可以动态调整资源分配。当目标资源池的多个节点的第一总体资源分配率小于第一阈值时,说明资源分配率较低,此时可以解除执行限制条件以提高资源利用率,而当目标资源池的多个节点的第二总体资源分配率大于第二阈值时,说明资源分配率较高,可以恢复执行限制条件以限制过多的资源占用。
在一些实施方式中,除了通过第二阈值判断之外,确定第二总体资源分配率大于第一总体资源分配率,还可以是通过对比第二总体资源分配率与第一总体资源分配率之差与第三阈值之间的大小关系后得到的,上述步骤404中还可以包括:
确定目标资源池的多个节点的第二总体资源分配率与第一总体资源分配率之差大于第三阈值。
在上述步骤中,第三阈值是用于判断第二总体资源分配率与第一总体资源分配率之差的一个数值。在步骤404中,通过比较第二总体资源分配率与第一总体资源分配率之差与第三阈值的大小关系,可以确定目标资源池的多个节点的第二总体资源分配率是否大于第一总体资源分配率。例如,可以将第三阈值设置为某个预先定义的资源分配率百分比,当第二总体资源分配率与第一总体资源分配率之差大于第三阈值该百分比时,认为第二总体资源分配率大到一定程度,且大于第一总体资源分配率。具体的第三阈值取值应该根据实际需求和系统特点来确定。
在本实施例中,第二总体资源分配率与第一总体资源分配率之差大于第三阈值,表示解除执行限制条件后,目标资源池的总体资源分配率有显著提高。这意味着资源调度方法成功地通过解除限制条件,使得目标节点能够处理更多的任务,并有效提高目标资源池的资源利用效率和整体性能。因此,当第二总体资源分配率与第一总体资源分配率之差超过第三阈值时,可以认为资源调度方法取得了良好的效果,提高了目标资源池的总体资源分配率和处理效率,后续为了不影响目标资源池原本任务需求的执行,可以恢复执行限制条件。
下面,对上述步骤S402中解除执行限制条件的内容进行说明:
在一些实施方式中,需要根据执行限制条件的类型判断是否可以将该执行限制条件解除。上述步骤402中还可以包括:
(1)确定执行限制条件的条件类型;
(2)如果条件类型与第二类型不同,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。
在上述步骤中,条件类型可以表征执行限制条件是否可被解除。执行限制条件的条件类型有两种,分别是可被解除的类型,以及不可被解除的类型。当条件类型为可被解除的类型时,可以将目标资源池的多个节点与第一容器组排斥的执行限制条件解除,反之,当执行限制条件的条件类型是不可被解除的类型时,则不可以将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。执行限制条件的条件类型可以在预先配置各个节点或者目标资源池时配置得到,在此不做具体限制。
第二类型是不可被解除的类型。当条件类型与第二类型不同时,认为该执行限制条件是可被解除的,后续可以将目标资源池的多个节点与第一容器组排斥的执行限制条件解除,反之,当条件类型与第二类型相同时,认为该执行限制条件是不可被解除的,则不可以将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。
在本实施例中,只有在条件类型与第二类型不同时,才将目标资源池的多个节点与第一容器组排斥的执行限制条件解除,是为了确保节点的处理性能。在实际中,节点可以通过配置一些第二类型,来保证节点可以优先处理这些类型所指示的任务。例如,当目标资源池为GPU池,其可以为节点设置高速存储服务的任务类型作为第二类型,这样就能保证高速存储服务在节点上的正常运行,不会因为删除该执行限制条件后,使得节点处理了其他速率的存储服务。
下面,以预先配置目标资源池的混部计划为例子,对上述实施例进行说明。
请参阅图6所示,示出了本申请实施例提供的预先配置目标资源池混部计划的示意图。混部计划(Plan)是一种自定义资源定义(Custom Resource Define,CRD),可以作为资源管理组件自定义的资源对象,用于圈定一个特定的资源池和设定资源池水位阈值。
用户可以预先配置混部计划的城市、名称和污点。其中,城市是当前目标资源池所在的城市,城市选框旁可以设置下拉选项,方便用户选择预先设置的一些城市。名称是目标资源池的资源池名称。污点就是目标资源池中节点的执行限制条件,这里可以为所有的节点统一设置执行限制条件,也可以分别为各个节点设置执行限制条件,在此不做具体限制。污点选框旁可以设置下拉选项,方便用户选择预先设置的一些污点。
在此基础上,用户进一步自定义混部配置。可以设定分配率阈值,分配率阈值的选框两侧设置有加减符号,可以用于调节分配率阈值的大小。分配率阈值下设置有预设误差选框,预设误差选框两侧设置也有加减符号,可以用于调节预设误差的大小。通过分配率阈值和预设误差,即可确定第一阈值和第二阈值的大小,如将分配率阈值减去预设误差,可以得到第一阈值,将分配率阈值加上预设误差,可以得到第二阈值。此外,还可以根据需要配置第三阈值,在此不做具体限制。
接着,在混部配置下,还可以配置透明污点,透明污点是上述配置的污点中的一个,透明污点就是不可被删除的污点,当作为污点的某个执行限制条件是透明污点时,其条件类型属于第二类型,因此不可被解除。透明污点的选框旁可以设置下拉选项,方便用户从选择的污点中进一步选择透明污点。
在一些实施方式中,第一容器组具有目标容忍度,还可以通过增加第一容器组的目标容忍度来解除执行限制条件,上述步骤402中还可以包括:
增加目标容忍度,使得目标资源池的多个节点的执行限制条件与增加的目标容忍度相容。
在上述步骤中,目标容忍度是第一容器组的一种特性,用于声明第一容器组对执行限制条件的容忍程度。当第一容器组声明了对某个执行限制条件的目标容忍度后,第一容器组就可以被调度到该节点上运行,反之,当第一容器组声明了对某个执行限制条件的目标容忍度后,第一容器组就可以被调度到该节点上运行。
需要说明的是,第一容器组原先的目标容忍度是与多个节点的执行限制条件相排斥的。也就是说,第一容器组原先的目标容忍度并不能容忍多个节点的执行限制条件,那么可以通过增加目标容忍度,使得目标资源池的多个节点的执行限制条件与增加的目标容忍度相容。例如,多个节点上由于设置有污点,第一容器组原先的目标容忍度并不能容忍这些污点,那么在除了删除这些污点的解除方式外,还可以增加目标容忍度,使得增加后的目标容忍度可以容忍多个节点上的污点。
在本实施例中,提供了另一种解除执行限制条件的方式,也就是增加第一容器组的目标容忍度的方式,通过增加目标容忍度,无需对节点的执行限制条件进行删除,这样节点可以保留原来的限制特性,可以限制一些影响自身程序运行的任务,而为了提高资源池的总体资源分配率,可以选择性的让一些原本相排斥的第一容器组分配进来执行。
在一些实施方式中,当第一容器组是通过增加目标容忍度解除执行限制条件的,上述步骤404中将执行限制条件恢复之后,还需要在移出第一容器组时,将目标容忍度恢复。具体可以是:
将第一容器组从目标节点移出,并将目标容忍度恢复,使得目标资源池的多个节点的执行限制条件都与第一容器组恢复后的目标容忍度排斥。
在上述步骤中,将第一容器组从目标节点移出是指在执行限制条件恢复之后,若第一容器组还在目标节点上,由于执行限制条件的存在,目标节点不再可以执行该第一容器组,因此需要将第一容器组从目标节点移出。本实施例中,在执行限制条件恢复后,将第一容器组移出的操作也称为异步置换。
在本实施例中,当第一容器组是通过增加目标容忍度来解除执行限制条件的,那么分配到目标节点上执行时的第一容器组的目标容忍度就与进入目标资源池之前的目标容忍度不同,而这个增加后的目标容忍度是为了容忍目标节点上的执行限制条件存在的,那就相当于改变了第一容器组对其他资源池节点上执行限制条件的容忍程度。因此,将第一容器组从目标节点移出时,需要将目标容忍度恢复,避免其他资源池的节点在对第一容器组处理上出现执行判断错误。
需要说明的是,使得目标资源池的多个节点的执行限制条件都与第一容器组恢复后的目标容忍度排斥,是指将第一容器组的目标容忍度恢复到分配进目标资源池之前的容忍水平。将目标容忍度恢复需要确保不会影响到第一容器组的组成和结构,不会对其调度到其他节点执行后造成影响。
下面,对上述步骤S403中如何选择目标节点的内容进行说明:
在一些实施方式中,可以根据各个节点的执行限制条件与第一容器组的匹配度来选择目标节点。上述步骤403中可以包括:
(1)确定目标资源池的多个节点中所解除的执行限制条件与第一容器组的匹配度;
(2)将多个节点中匹配度最小的节点,确定为目标节点。
在上述步骤中,匹配度指的是节点的执行限制条件与第一容器组的适配程度或相似程度,它用于衡量节点是否能够满足第一容器组的执行要求。匹配度越低,表示节点的执行限制条件与第一容器组更加排斥,若没有解除节点的执行限制条件,那么第一容器组几乎不会被分配到该节点上执行。
示例性的,确定匹配度的方式有多种。例如,可以通过查表确定匹配度,在得到第一容器组后,可以获取第一容器组的目标容忍度,将其与表中多个节点的执行限制条件进行对比,从而得到表中描述的值作为匹配度;或者,还可以通过执行限制条件与第一容器组的目标容忍度之间进行运算处理,将二者分别输入到预设的函数中进行计算,从而得到所需要的匹配度;或者,还可以将执行限制条件与第一容器组的目标容忍度转换为特征向量后,输入到预设的神经网络模型进行处理,从而得到所需要的匹配度。
在本实施例中,将多个节点中匹配度最小的节点确定为目标节点,是为了让目标节点尽可能分配到任务执行。由于执行限制条件的存在,若第一容器组与该节点的执行限制条件之间的匹配度很低,那么第一容器组几乎不会被分配到该节点上执行,这就导致目标资源池的总体资源分配率低,这些节点的资源不能被充分利用,浪费了资源。通过将多个节点中匹配度最小的节点确定为目标节点,这些原先不会被分配到的任务就可以分配到目标节点上执行,这样目标节点就可以分配到更多的任务执行,可以最大化节点的利用率和性能,最终就可以提高目标资源池的总体资源分配率。
在一些实施方式中,还可以根据各个节点的节点资源利用率的大小来选择目标节点。上述步骤403中还可以包括:
(1)确定在执行限制条件解除后的多个节点的节点资源利用率;
(2)从节点资源利用率小于第四阈值的多个节点中选择目标节点。
在上述步骤中,节点资源利用率是指在资源调度过程中,每个节点所使用资源的比例或占用情况。通常使用某种度量方式(如CPU利用率、内存占用率等)来衡量节点资源的利用情况。节点资源利用率的大小可以反映节点的负载情况,从而帮助选择目标节点进行资源分配和任务执行。
需要说明的是,在目标资源池中,不同节点的节点资源利用率是不一样的,这跟各个节点所分配到的任务有关。例如,若目标资源池为GPU池,由于执行限制条件的存在,某些节点可以分配到更多的GPU服务,但是GPU服务的数量有限,很多节点没有分配到,或者分配到很少数量的GPU服务,这就导致这些节点的CPU利用率低下,CPU利用率就是该节点的节点资源利用率。
第四阈值是在资源调度过程中使用的一个数值,是用于选择目标节点的条件之一。当节点资源利用率小于第四阈值,说明该节点的节点资源利用率低下,原先所能分配到的任务并不多,甚至没有,反之,当节点资源利用率大于或等于第四阈值,说明该节点的节点资源利用率高,原先被分配了较多的任务。第四阈值的具体取值可以根据实际情况和需求进行设定。
在本实施例中,为什么从节点资源利用率小于第四阈值的多个节点中选择目标节点,可以更加合理地分配资源。当节点资源利用率小于第四阈值,说明这个节点原先被分配到的任务很少,甚至没有,此时更需要将第一容器组分配给它执行,这样可以提高该节点的节点资源利用率。同时,这是一种优化策略,确保目标节点在资源利用方面具有一定的闲置空间,以确保目标节点在资源利用方面具有足够的余量,可以降低任务执行过程中出现性能瓶颈或资源不足的概率,最终提高整体系统的稳定性和处理效率。
进一步的,还可以对节点资源利用率的大小进行排序,并按照节点资源利用率从小到大的顺序,依次选择目标节点,对此本申请实施例不做具体限制。
在一些实施方式中,还可以根据各个节点的节点类型来选择目标节点。上述步骤403中还可以包括:
(1)确定在执行限制条件解除后的多个节点的节点类型;
(2)如果节点类型与第一类型不同,从与第一类型不同的多个节点中选择目标节点。
在上述步骤中,节点类型可以表征该节点是否可以分配第一容器组。节点的节点类型有两种,分别是可被分配的类型,以及不可被分配的类型。当节点类型为可被分配的类型时,该节点可以被确定为目标节点而处理第一容器组的任务,反之,当节点的节点类型是不可被分配的类型时,则不可以将该节点确定为目标节点,该节点保留原来的任务处理过程。节点的节点类型可以在预先配置各个节点或者目标资源池时配置得到,在此不做具体限制。
第一类型是不可被分配的类型。当节点类型与第一类型不同时,认为该可以被确定为目标节点而处理第一容器组的任务,后续第一容器组就可以在目标节点上执行,反之,当节点类型与第一类型相同时,认为不可以将该节点确定为目标节点,该节点保留原来的任务处理过程。
在本实施例中,只有在节点类型与第一类型不同时,才从与第一类型不同的多个节点中选择目标节点,是为了确保节点的处理性能。在实际中,节点可以通过配置一些第一类型,来保证节点可以优先处理这些类型所指示的任务。例如,当目标资源池为GPU池,部分节点的节点类型为第一类型,这样就能保证这些节点上可以只处理GPU服务,而不会被确定为目标节点后去处理非GPU服务,确保了GPU服务在这些节点上的处理需求。
下面,以预先配置目标资源池的混部计划为例子,对上述实施例进行说明。
请参阅图6所示,混部计划和混部配置的设置在上述实施例中已有说明,在此不再赘述。
进一步的,用户在配置混部计划时,可以配置各个节点的标签,该标签用于表示节点的节点类型,标签的选框旁可以设置下拉选项,方便用户预设的多个标签选择所需要的标签。标签可以有多种,例如计算节点标签、存储节点标签、网络节点标签、GPU节点标签等,标签还可以加上不同的标识,如计算节点1和计算节点2等,在此不做具体限制。
在混部配置下,还可以配置透明标签,透明标签是上述配置的标签中的一个,透明标签标识节点就是不可被分配的节点,当某个节点的节点类型是透明标签时,其节点类型属于第一类型,因此不可被分配。透明标签的选框旁可以设置下拉选项,方便用户从选择的标签中进一步选择透明标签。
请参阅图7所示,示出了本申请实施例提供的根据透明标签选择目标节点的示意图。图中的一个目标资源池内,设置有服务器700和多个节点,节点包括节点1、节点2和节点3。其中,由于节点1具有透明标签,因此其节点类型属于第一类型,后续不再确定其为目标节点,因此,服务器700从节点2和节点3中确定目标节点,如将节点2确定为目标节点,后续可以将第一容器组发送给节点2执行。
下面,对上述步骤S404之后,资源调度方法还包括的内容进行说明:
在一些实施方式中,目标资源池选自多个候选资源池,上述步骤S404之后,还可以从多个候选资源池中选择一个来更新目标资源池。上述步骤S404之后可以包括:
(1)从多个候选资源池中选择未选择过的一个候选资源池更新目标资源池;
(2)返回在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除的步骤。
在上述步骤中,候选资源池是指在进行资源调度时,可以被选择作为目标资源池进行更新的一组可用资源集合。候选资源池有多个,在一些实施例中,这些资源池的总体资源分配率都较低,需要考虑是否进行资源调度,以提高总体资源分配率。
在上述步骤中,将第一容器组从目标节点移出是指在执行限制条件恢复之后,若第一容器组还在目标节点上,由于执行限制条件的存在,目标节点不再可以执行该第一容器组,因此需要将第一容器组从目标节点移出。而此时的目标资源池的第二总体资源分配率是大于第二阈值,或者第二总体资源分配率与第一总体资源分配率的差值是大于第三阈值的,说明此时目标资源池的总体资源分配率过高了,需要确保目标资源池原本任务的执行,后续不再需要分配更多的任务了。
在本实施例中,从多个候选资源池中选择未选择过的一个候选资源池更新目标资源池,可以增加资源调度策略的多样性,从而提高资源的分配效果和整体性能。不断选择新的候选资源池可以避免陷入一种资源调度模式,有助于发现更优的资源分配方案。在实际的资源调度场景中,不同资源池可能存在不同的限制条件、容量和性能特征,通过选择不同的候选资源池来更新目标资源池,可以在一定程度上降低任务处理的风险。而通过选择不同的候选资源池来更新目标资源池,可以增强系统的鲁棒性,当某个资源池由于故障或其他原因无法正常工作时,可以快速切换到另一个候选资源池,保证任务的连续性和可用性。
在更新目标资源池后,不再对原先的资源池进行判断,后续可以对新确认的目标资源池的第一总体资源分配率判断,进而确定是否需要分配第一容器组到其资源池内的节点执行。因此,可以返回上述的步骤402,接着从步骤402开始重新执行资源调度方法。
下面,以从多个候选资源池中选择目标资源池为例子,对上述实施例进行说明。
请参阅图8,示出了本申请实施例提供的从多个候选资源池中更新目标资源池的示意图。图中举例了候选资源池1和候选资源池2两个资源池,候选资源池1内设置有服务器1和多个节点(未标识),候选资源池2内设置有服务器2和多个节点(未标识)。其中,候选资源池1在当前被确定为目标资源池。在上述步骤S404之后,候选资源池1当前的总体资源分配率已经提高,可以从多个候选资源池中选择一个来更新目标资源池,如此时的候选资源池2没被选择过,则可以更新候选资源池2为目标资源池。此时服务器1可以将执行中的第一容器组发送给服务器2进行处理,在此不做具体限制。
下面,对资源调度方法之中还包括的扩容操作的内容进行说明:
在一些实施方式中,目标节点在执行任务的过程中,会有扩容需求,则可以根据扩容需求将第一容器组从目标节点中移出。资源调度方法还可以包括:
如果接收到第二容器组的扩容请求,将第一容器组从目标节点移出,第二容器组是在目标节点中执行的软件集合,且目标节点解除的执行限制条件与第二容器组相容。
在上述步骤中,第二容器组是目标资源池原本所能运行的一个容器组,该容器组是可以作为一个处理任务,可以包含一个或多个相关的容器,例如多个不同GPU任务的容器,或者多个不同CPU任务的容器。第二容器组是用于放置到目标资源池的多个节点中执行的软件集合,目标资源池可以将第二容器组分配到节点上执行,节点可以通过接收第一容器组并执行,完成相应的处理任务。
可以理解的是,目标节点解除的执行限制条件与第二容器组相容的。例如,若目标资源池为GPU池,其多个节点上设置有污点,这些污点用于限制非GPU服务的执行,那么第一容器组就是非GPU服务,第二容器组就是GPU服务,无需解除执行限制条件,GPU服务就可以在GPU池下的多个节点执行。
扩容请求是指针对第二容器组的执行需要增加资源的请求。扩容请求可以是目标节点在执行第二容器组的过程中自动触发的,或者是人工触发的。当扩容请求被触发,表明当前目标节点上原本需要执行的任务需要更多的资源。例如,若目标资源池为GPU池,其多个节点上设置有污点,这些污点用于限制非GPU服务的执行,那么第一容器组就是非GPU服务,第二容器组就是GPU服务,当GPU服务运行过程中需要更多的资源,如CPU资源或存储资源时,就会生成扩容请求。
在本实施例中,当目标节点执行第二容器组时,如果发现自身的资源已经不足以完成当前第二容器组的工作负载,就可以产生一个扩容请求。随后目标节点为了保证第二容器组的处理需求,需要将已经执行的第一容器组从目标节点中移出,以腾出更多资源给第二容器组使用,从而满足节点的扩容需求,从而优化资源调度。
进一步的,扩容请求可以包括所需增加的资源类型和数量,若目标节点上运行的第一容器组有多个,可以根据扩容请求选择需要移出的第一容器组的数量,对此本申请实施例不做具体限制。
需要说明的是,在触发扩容请求后,将非GPU服务移出的操作也称为同步置换。同步置换是在当GPU池资源不足时进行的,对于GPU服务的扩容,需要同步的迁移出混部的非GPU服务,腾出一定规模的资源,以供GPU服务扩容使用。
下面,以目标节点运行了多个容器组时,需要将其中的第一容器组移出为例子,对上述实施例进行说明。
请参阅图9所示,示出了本申请实施例提供的目标节点所运行的容器组的示意图。目标节点900可以运行多个容器组,如容器组1、容器组2、第一容器组和第二容器组,其中,容器组1、容器组2可以为另外的第一容器组,也可以为另外的第二容器组。当目标节点900运行第二容器组的过程中,需要更多的资源,如需要更多的CPU资源,则会触发扩容请求,此时目标节点900可以检查自身是否运行了混部进来的第一容器组,若有第一容器组,则可以将第一容器组移出,从而保证了原本服务,即第二容器组的正常运行需求。
上述实施例对资源调度方法每个步骤的具体实现展开详细描述,下面,参照图10至图13,以具体的实施例对资源调度方法进行说明。
在图10至图13中,目标资源池为GPU池,其多个节点上设置有污点,这些污点用于限制非GPU服务的执行,那么第一容器组就是非GPU Pod,第二容器组就是GPU Pod,因此第一容器组可以称为一个非GPU服务,第二容器组可以称为一个GPU服务。
请参阅图10,示出了本申请实施例提供的资源调度方法完整的流程示意图。过程包括:
S1、设计GPU池的混部计划;
其中,本步骤可以为各个候选资源池分别配置混部计划,以多个候选资源池中在当前进行资源调度的称为目标资源池。通过配置混部计划,可以配置目标资源池的分配率阈值和预设误差,分配率阈值和预设误差的差值就是第一阈值,分配率阈值和预设误差的和就是第二阈值。通过配置混部计划,还可以配置各个节点的标签和污点,并配置其中无法分配的透明标签以及无法删除的透明污点,通过设置污点可以作为执行限制条件,只有对应容忍的容器组才可以与拥有该污点的节点匹配。
S2、总体资源分配率是否达到阈值;
其中,为了方便区分,在解除执行限制条件之前的总体资源分配率为第一总体资源分配率,在将非GPU服务混部到目标资源池中执行后检测到的总体资源分配率为第二总体资源分配率。当第一总体资源分配率低于第一阈值,则认为符合分配条件,则跳转到步骤S3,当第二总体资源分配率高于第二阈值,则认为当前目标资源池的资源分配率已经提高,后续可以恢复执行限制条件。
此外,还可以通过第二总体资源分配率与第一总体资源分配率的差值是否大于第三阈值,来确定是否要跳转到步骤S7,在此不做具体限制。
S3、删除节点上的污点;
其中,当第一总体资源分配率低于第一阈值,则认为符合分配条件,后续可以通过删除节点上的污点,从而解除节点上的执行限制条件。
本实施例是将除了透明污点以外的所有节点上的污点都删除,这样GPU池可以处理包括非GPU服务和GPU服务在内的多个任务。
S4、非GPU Pod混部到GPU资源池中;
其中,需要说明的是,原本的GPU池只能处理GPU服务,而由于污点的存在无法处理非GPU服务。当所有节点的污点都删除后,此时GPU池可以处理包括非GPU服务和GPU服务在内的多个任务。非GPU服务可以被分配到目标节点中执行,在此不再赘述。
S5、GPU池的总体资源分配率提升;
其中,在将非GPU服务混部到GPU池中后,GPU池可以处理更多的任务,目标节点可以分配到原本无法执行的非GPU服务,因此可以提高GPU池的总体资源分配率。
S6、开启新的一轮分配率检测;
其中,在完成当前GPU池的总体资源分配率提升后,后续需要检测总体资源分配率是否阈值,也即检测第二总体资源分配率是否超过第二阈值。
S7、节点上添加原有污点;
其中,随着GPU池的总体资源分配率提高,当检测第二总体资源分配率是否超过第二阈值时,需要做出调整,这是因为GPU池主要是为了保证GPU服务的资源供给,当GPU池的资源不足时需要把混部进来的非GPU服务识别并迁移出去,优先满足GPU服务的资源需求。因此首先需要将节点上原先删除的污点添加回来,以确保GPU池中的节点仅处理GPU服务。
S8、是否有混部的非GPU Pod被迁移出去;
其中,在添加原有的污点后,节点的执行限制条件被恢复,此时非GPU服务无法再被混部到GPU池中执行。而为了确保GPU服务的正常执行,还需要将混部的非GPU服务移出。如果混部的非GPU服务被迁移出去了,则跳转到步骤S9。
S9、GPU池的总体资源分配率降低;
其中,在恢复执行限制条件后,GPU池无法再执行混部进来的非GPU服务,因此只能处理GPU服务,就会导致此时的总体资源分配率降低。
在完成S9的步骤后,后续还可以跳转到步骤S6,并继续开启新的一轮分配率检测。
请参阅图11,示出了本申请实施例提供的对节点资源进行扩容的流程示意图。过程包括:
S1、触发GPU扩容;
其中,当目标节点上运行的GPU服务需要更多的资源时,或者接收到用户发送的扩容指令时,会触发目标节点上的扩容请求。
S2、资源是否充足;
其中,目标节点在基于扩容请求下,会查看自身的资源是否满足GPU服务,若不满足,则跳转到步骤S3,若满足,则跳转到步骤S5。
S3、是否存在混部的非GPU Pod;
其中,目标节点会轮询节点中混部进来的非GPU服务,当存在非GPU服务时,可以跳转到步骤S4中,否则,则跳转到步骤S6中。
S4、移出非GPU Pod,腾出资源;
其中,当目标节点内存在混部进来的非GPU服务,为了保证GPU服务的正常运行,满足其扩容请求,需要将非GPU服务移出目标节点。
S5、扩容成功;
其中,当目标节点中的非GPU服务移出后,可以腾出资源给GPU服务处理,此时认为库扩容成功。
S6、资源不足,扩容失败;
其中,当目标节点的资源不足,且又没有混部的非GPU服务在处理时,认为扩容失败,此时没有更多的资源处理GPU服务。
本实施例中,在触发GPU扩容后,将非GPU服务移出的操作也称为同步置换。同步置换是在当GPU池资源不足时进行的,对于GPU服务的扩容,需要同步的迁移出混部的非GPU服务,腾出一定规模的资源,以供GPU服务扩容使用。
请参阅图12,示出了本申请实施例提供的轮询节点中混部进来的非GPU Pod的流程示意图。过程包括:
S1、定时触发;
其中,本实施例的系统会定时触发轮询节点的任务处理情况,这样可以确保节点中是否有混部进来的非GPU服务。
S2、选择混部计划下的GPU池;
其中,定时触发轮询节点的任务处理情况是针对制定了混部计划的GPU池进行的,该GPU池是目标资源池,属于多个候选资源池中的一个。
S3、根据混部计划选择节点;
其中,在混部计划下,有的节点的标签为透明标签,则不会进行混部,因此只需要选择没拥有透明标签的节点。可以理解的是,这些节点都可以作为目标节点,并分配有非GPU服务进行处理。
S4、判断非GPU Pod是否与节点原有污点匹配;
其中,由于本实施例删除了污点,因此越来越多的非GPU服务可以混部到GPU池中进行分配和处理,这样,需要在每个节点上检测各个服务是否与原先删除的污点匹配,如果匹配,则跳转到步骤S5中,表明这个服务是GPU服务,否则,则跳转到步骤S6中,表明这个服务是非GPU服务。
S5、选择下一个节点;
其中,当节点上检测各个服务与原先删除的污点匹配,则表明这是服务是容忍节点上的污点的,因此,在GPU池中,这些服务是GPU服务,接着对下一个节点进行轮询判断。
S6、打上混部的标记;
其中,当节点上检测各个服务与原先删除的污点不匹配,则表明这是服务是不能容忍节点上的污点的,因此,在GPU池中,这些服务是非GPU服务,此时需要为这些服务打上混部的标签,这样后续在扩容操作和恢复执行限制条件时,就可以将这些混部的非GPU服务移出。
请参阅图13,示出了本申请实施例提供的根据总体资源分配率的大小确定是否移出混部的非GPU Pod的流程示意图。过程包括:
S1、定时触发;
其中,本实施例的系统会定时触发轮询节点的任务处理情况,这样可以确保节点中是否有混部进来的非GPU服务。
S2、选择混部计划下的GPU池;
其中,定时触发轮询节点的任务处理情况是针对制定了混部计划的GPU池进行的,该GPU池是目标资源池,属于多个候选资源池中的一个。
S3、判断总体资源分配率是否高于阈值;
其中,为了方便区分,在解除执行限制条件之前的总体资源分配率为第一总体资源分配率,在将非GPU服务混部到目标资源池中执行后检测到的总体资源分配率为第二总体资源分配率。
本实施例在将非GPU服务混部到GPU池后,可以去第二总体资源分配率是否高于第二阈值,进行判断,当第二总体资源分配率高于第二阈值,则跳转到步骤S4,认为当前目标资源池的资源分配率已经提高,后续可以恢复执行限制条件;否则,则跳转到步骤S5,认为还可以继续混部非GPU服务执行。
此外,还可以通过第二总体资源分配率与第一总体资源分配率的差值是否大于第三阈值,来确定是否要跳转到步骤S4和S5,在此不做具体限制。
S4、移出混部的非GPU Pod;
其中,随着GPU池的总体资源分配率提高,当检测第二总体资源分配率是否超过第二阈值时,需要做出调整,这是因为GPU池主要是为了保证GPU服务的资源供给,当GPU池的资源不足时需要把混部进来的非GPU服务识别并迁移出去,优先满足GPU服务的资源需求。因此首先需要将节点上原先删除的污点添加回来,同时,再将混部的非GPU服务移出,以确保GPU池中的节点仅处理GPU服务。
S5、停止移出混部的非GPU Pod;
其中,当检测第二总体资源分配率低于第二阈值时,此时的资源分配率还不是很高,认为还可以继续混部非GPU服务执行。
本实施例中,在总体资源分配率高于阈值后,将非GPU服务移出的操作也称为异步置换。当GPU池资源不足需要进行同步置换时,迁移出混部的GPU服务耗时往往较长,从而增加了GPU服务扩容的时间,因此当资源池水位较高时需要异步的对混部的GPU服务发起迁移,降低资源池的总体资源分配率,也即降低资源池水位,减少或避免同步置换的发生。
通过上述图10至图13的资源调度方法,更多的非GPU服务可以分配到各个目标节点上执行,可以提成这些节点的CPU利用率,而对CPU池整体来说,更多的节点可以分配到任务,可以提高资源池的总体资源分配率,总体降低了业务成本。以123平台资源池混部效果为例,混部前资源池共有11.1万核,总体资源分配率仅为30%,开启资源混部后,总体资源分配率为78%,共混部进5.4万核Pod进行处理,以CPU核数算,节省了约600台机器。因此,通过调整GPU池污点的状态,解决了GPU池总体资源分配率较低的问题,进而使GPU独占池中各个节点的资源利用率得到较大提升。
在介绍完本申请实施例中的资源调度方法后,下面,对资源调度装置进行说明。
请参阅图14,图14为本申请实施例提供的资源调度装置的结构示意图,该资源调度装置可以包括获取单元1401、条件解除单元1402、分配单元1403及条件恢复单元1404等。其中:
获取单元1401,用于获取第一容器组,第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,节点具有执行限制条件;
条件解除单元1402,用于在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除;
分配单元1403,用于在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行;
条件恢复单元1404,用于如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,将执行限制条件恢复。
可选地,目标资源池选自多个候选资源池,装置还包括资源池更新单元(未标识),具体用于:
从多个候选资源池中选择未选择过的一个候选资源池更新目标资源池;
返回在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除的步骤。
可选地,上述条件解除单元1402具体用于:确定目标资源池的多个节点的第一总体资源分配率小于第一阈值;
可选地,上述条件恢复单元1404具体用于:确定目标资源池的多个节点的第二总体资源分配率大于第二阈值,第一阈值小于第二阈值。
可选地,上述条件解除单元1402还用于:确定目标资源池的多个节点的第一总体资源分配率小于第一阈值;
可选地,上述条件恢复单元1404还用于:确定目标资源池的多个节点的第二总体资源分配率与第一总体资源分配率之差大于第三阈值。
可选地,装置还包括扩容单元(未标识),具体用于:
如果接收到第二容器组的扩容请求,将第一容器组从目标节点移出,第二容器组是在目标节点中执行的软件集合,且目标节点解除的执行限制条件与第二容器组相容。
可选的,上述分配单元1403具体用于:
确定目标资源池的多个节点中所解除的执行限制条件与第一容器组的匹配度;
将多个节点中匹配度最小的节点,确定为目标节点。
可选的,上述分配单元1403还用于:
确定在执行限制条件解除后的多个节点的节点资源利用率;
从节点资源利用率小于第四阈值的多个节点中选择目标节点。
可选的,上述分配单元1403还用于:
确定在执行限制条件解除后的多个节点的节点类型;
如果节点类型与第一类型不同,从与第一类型不同的多个节点中选择目标节点。
可选的,上述条件解除单元1402还用于:
确定执行限制条件的条件类型;
如果条件类型与第二类型不同,将目标资源池的多个节点与第一容器组排斥的执行限制条件解除。
可选的,第一容器组具有目标容忍度,上述条件解除单元1402还用于:
增加目标容忍度,使得目标资源池的多个节点的执行限制条件与增加的目标容忍度相容。
可选的,装置还包括迁移模块(未标识),具体用于:
将第一容器组从目标节点移出,并将目标容忍度恢复,使得目标资源池的多个节点的执行限制条件都与第一容器组恢复后的目标容忍度排斥。
以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上述可知,本申请实施例中的资源调度装置可以执行上述实施例中的资源调度方法,在对目标资源池进行资源调度时,由于多个节点均具有执行限制条件,在获取到第一容器组后,这些执行限制条件会限制相排斥的第一容器组到节点中执行。因此,在确定目标资源池的多个节点的第一总体资源分配率符合分配条件时,目标资源池的总体资源分配率低,需要将执行限制条件解除,解除后的多个节点就可以执行原先被排斥的第一容器组。随后,可以在执行限制条件解除后的多个节点中选择目标节点,并将第一容器组分配到目标节点执行,这样目标资源池就可以摆脱执行限制条件的限制而处理更多的任务,从而提高了目标资源池总体的资源分配率。如果在执行限制条件解除之后,确定目标资源池的多个节点的第二总体资源分配率大于第一总体资源分配率,说明在解除执行限制条件的限制之后的目标资源池的总体资源分配率提高了,后续就可以将执行限制条件恢复,意味着目标资源池可以在总体资源分配率低的时候处理更多的任务,而在总体资源分配率提高后就可以恢复限制去处理原本限制范围内的任务,最终不仅能提高目标资源池的总体资源分配率,还可以提高处理效率。
请参阅图15,图15为实现本申请实施例提供的资源调度方法的终端部分的结构框图,该终端包括:射频(Radio Frequency,简称RF)电路1510、存储器1515、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(wireless fidelity,简称WiFi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图15示出的终端结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。
存储器1515可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1515的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。
输入单元1530可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入装置1532。
显示单元1540可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单元1540可包括显示面板1541。
音频电路1560、扬声器1561,传声器1562可提供音频接口。
在本实施例中,该终端所包括的处理器1580可以执行前面实施例的资源调度方法。
本申请实施例的终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
图16为实施本申请实施例提供的资源调度方法的服务器部分的结构框图。服务器1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1622(例如,一个或一个以上处理器)和存储器1632,一个或一个以上存储应用程序1642或数据1644的存储介质1630(例如一个或一个以上海量存储装置)。其中,存储器1632和存储介质1630可以是短暂存储或持久存储。存储在存储介质1630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器1600中的一系列指令操作。更进一步地,中央处理器1622可以设置为与存储介质1630通信,在服务器1600上执行存储介质1630中的一系列指令操作。
服务器1600还可以包括一个或一个以上电源1626,一个或一个以上有线或无线网络接口1650,一个或一个以上输入输出接口1658,和/或,一个或一个以上操作系统1641,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
服务器1600中的中央处理器1622可以用于执行本申请实施例的资源调度方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的资源调度方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的资源调度方法。
本申请实施例的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本申请实施例中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本申请实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本申请实施例的实施方式的具体说明,但本申请实施例并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请实施例精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请实施例权利要求所限定的范围内。

Claims (15)

1.一种资源调度方法,其特征在于,包括:
获取第一容器组,所述第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,所述节点具有执行限制条件;
在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除;
在所述执行限制条件解除后的多个所述节点中选择目标节点,并将所述第一容器组分配到所述目标节点执行;
如果在所述执行限制条件解除之后,确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,将所述执行限制条件恢复。
2.根据权利要求1所述的资源调度方法,其特征在于,所述目标资源池选自多个候选资源池;
在将所述执行限制条件恢复之后,所述资源调度方法还包括:
从多个所述候选资源池中选择未选择过的一个所述候选资源池更新所述目标资源池;
返回在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除的步骤。
3.根据权利要求1所述的资源调度方法,其特征在于,所述确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件,包括:确定所述目标资源池的多个所述节点的第一总体资源分配率小于第一阈值;
所述确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,包括:确定所述目标资源池的多个所述节点的第二总体资源分配率大于第二阈值,所述第一阈值小于所述第二阈值。
4.根据权利要求1所述的资源调度方法,其特征在于,所述确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件,包括:确定所述目标资源池的多个所述节点的第一总体资源分配率小于第一阈值;
所述确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,包括:确定所述目标资源池的多个所述节点的第二总体资源分配率与所述第一总体资源分配率之差大于第三阈值。
5.根据权利要求1所述的资源调度方法,其特征在于,所述资源调度方法还包括:
如果接收到第二容器组的扩容请求,将所述第一容器组从所述目标节点移出,所述第二容器组是在所述目标节点中执行的软件集合,且所述目标节点解除的所述执行限制条件与所述第二容器组相容。
6.根据权利要求1所述的资源调度方法,其特征在于,所述在所述执行限制条件解除后的多个所述节点中选择目标节点,包括:
确定所述目标资源池的多个所述节点中所解除的所述执行限制条件与所述第一容器组的匹配度;
将多个所述节点中所述匹配度最小的所述节点,确定为所述目标节点。
7.根据权利要求1所述的资源调度方法,其特征在于,所述在所述执行限制条件解除后的多个所述节点中选择目标节点,包括:
确定在所述执行限制条件解除后的多个所述节点的节点资源利用率;
从所述节点资源利用率小于第四阈值的多个所述节点中选择目标节点。
8.根据权利要求1所述的资源调度方法,其特征在于,所述在所述执行限制条件解除后的多个所述节点中选择目标节点,包括:
确定在所述执行限制条件解除后的多个所述节点的节点类型;
如果所述节点类型与第一类型不同,从与第一类型不同的多个所述节点中选择目标节点。
9.根据权利要求1所述的资源调度方法,其特征在于,所述将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除,包括:
确定所述执行限制条件的条件类型;
如果所述条件类型与第二类型不同,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除。
10.根据权利要求1所述的资源调度方法,其特征在于,所述第一容器组具有目标容忍度;
所述将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除,包括:
增加所述目标容忍度,使得所述目标资源池的多个所述节点的所述执行限制条件与增加的所述目标容忍度相容。
11.根据权利要求10所述的资源调度方法,其特征在于,在将所述执行限制条件恢复之后,所述资源调度方法还包括:
将所述第一容器组从所述目标节点移出,并将所述目标容忍度恢复,使得所述目标资源池的多个所述节点的所述执行限制条件都与所述第一容器组恢复后的所述目标容忍度排斥。
12.一种资源调度装置,其特征在于,包括:
获取单元,用于获取第一容器组,所述第一容器组是用于放置到目标资源池的多个节点中执行的软件集合,所述节点具有执行限制条件;
条件解除单元,用于在确定所述目标资源池的多个所述节点的第一总体资源分配率符合分配条件时,将所述目标资源池的多个所述节点与所述第一容器组排斥的所述执行限制条件解除;
分配单元,用于在所述执行限制条件解除后的多个所述节点中选择目标节点,并将所述第一容器组分配到所述目标节点执行;
条件恢复单元,用于如果在所述执行限制条件解除之后,确定所述目标资源池的多个所述节点的第二总体资源分配率大于所述第一总体资源分配率,将所述执行限制条件恢复。
13.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至11任意一项所述的资源调度方法。
14.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至11任意一项所述的资源调度方法。
15.一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行根据权利要求1至11任意一项所述的资源调度方法。
CN202311263285.3A 2023-09-27 2023-09-27 资源调度方法、装置、设备及存储介质 Active CN117009060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311263285.3A CN117009060B (zh) 2023-09-27 2023-09-27 资源调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311263285.3A CN117009060B (zh) 2023-09-27 2023-09-27 资源调度方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117009060A true CN117009060A (zh) 2023-11-07
CN117009060B CN117009060B (zh) 2024-01-12

Family

ID=88569380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311263285.3A Active CN117009060B (zh) 2023-09-27 2023-09-27 资源调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117009060B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708622A (zh) * 2016-07-18 2017-05-24 腾讯科技(深圳)有限公司 集群资源处理方法和系统、资源处理集群
US20210152667A1 (en) * 2018-12-25 2021-05-20 Advanced New Technologies Co., Ltd. Operation request allocation methods, apparatuses, and devices
CN113360284A (zh) * 2021-06-04 2021-09-07 深圳前海微众银行股份有限公司 资源管理方法、装置及设备
US20220283846A1 (en) * 2019-11-26 2022-09-08 Huawei Technologies Co., Ltd. Pod deployment method and apparatus
CN115858083A (zh) * 2021-09-26 2023-03-28 中兴通讯股份有限公司 容器cpu资源调度与隔离方法和装置、存储介质及电子设备
CN116340005A (zh) * 2023-05-26 2023-06-27 北京好心情互联网医院有限公司 容器集群的调度方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708622A (zh) * 2016-07-18 2017-05-24 腾讯科技(深圳)有限公司 集群资源处理方法和系统、资源处理集群
US20210152667A1 (en) * 2018-12-25 2021-05-20 Advanced New Technologies Co., Ltd. Operation request allocation methods, apparatuses, and devices
US20220283846A1 (en) * 2019-11-26 2022-09-08 Huawei Technologies Co., Ltd. Pod deployment method and apparatus
CN113360284A (zh) * 2021-06-04 2021-09-07 深圳前海微众银行股份有限公司 资源管理方法、装置及设备
CN115858083A (zh) * 2021-09-26 2023-03-28 中兴通讯股份有限公司 容器cpu资源调度与隔离方法和装置、存储介质及电子设备
CN116340005A (zh) * 2023-05-26 2023-06-27 北京好心情互联网医院有限公司 容器集群的调度方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117009060B (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
CN111338774B (zh) 分布式定时任务调度系统及计算装置
CN115328663B (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
EP3461087A1 (en) Network-slice resource management method and apparatus
EP3200393B1 (en) Method and device for virtual network function management
CN110096336B (zh) 数据监控方法、装置、设备和介质
CN107251486B (zh) 一种扩展联动的方法、装置及系统
CN110213780A (zh) 网络切片的管理方法、管理和编排实体及存储介质
CN108399101A (zh) 资源调度的方法、装置和系统
CN108132827B (zh) 一种网络切片资源映射方法、相关设备及系统
CN109358967B (zh) 一种me平台app实例化迁移方法及服务器
CN111221618A (zh) 一种容器化虚拟网络功能的部署方法和装置
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
EP3817339B1 (en) Method and system for management of an artificial intelligence development platform
CN111143039A (zh) 一种虚拟机的调度方法、装置及计算机存储介质
CN113867957A (zh) 一种跨集群容器数量弹性伸缩实现方法及装置
CN116339954A (zh) 进程迁移方法、装置、存储介质及电子设备
CN115604768A (zh) 基于资源状态的电磁感知任务动态迁移方法、系统及终端
CN113986539A (zh) 实现pod固定IP的方法、装置、电子设备和可读存储介质
CN114629960A (zh) 资源调度方法、装置、系统、设备、介质和程序产品
US20210132956A1 (en) Method and apparatus for managing scheduling of services during boot-up
CN117608760A (zh) 应用于Kubernetes的云上应用混合部署方法
CN117009060B (zh) 资源调度方法、装置、设备及存储介质
CN112015515B (zh) 一种虚拟网络功能的实例化方法及装置
CN113722079B (zh) 基于目标应用的任务调度分配方法、装置、设备及介质
CN114443302A (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