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

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

Info

Publication number
CN116483547A
CN116483547A CN202310742056.3A CN202310742056A CN116483547A CN 116483547 A CN116483547 A CN 116483547A CN 202310742056 A CN202310742056 A CN 202310742056A CN 116483547 A CN116483547 A CN 116483547A
Authority
CN
China
Prior art keywords
container group
resource scheduling
scheduled
resource
container
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
CN202310742056.3A
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310742056.3A priority Critical patent/CN116483547A/zh
Publication of CN116483547A publication Critical patent/CN116483547A/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
    • 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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种资源调度方法、装置、计算机设备和存储介质。所述方法包括:获取待调度的容器组;基于待调度的容器组,确定集群中与容器组匹配的目标节点;在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果。采用本方法能够解决不同容器间资源抢占的问题。

Description

资源调度方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种资源调度方法、装置、计算机设备和存储介质。
背景技术
容器云是通过Docker技术在集群服务器上部署容器服务实现的云服务产品,可看作轻量级的linux云服务器。其中,Docker作为容器化软件的一种,是社区使用率最高的容器引擎。目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,快速部署应用、弹性伸缩和动态调整应用环境资源。Kubernetes是能够对容器进行编排和调度的管理系统,用于应用的自动部署、扩展和管理。Kubernetes包括多个节点,节点是Kubernetes中最小计算硬件单元,每个节点均可以为应用程序提供计算资源、内存资源等应用程序运行所需的资源。
每个应用程序的运行可以是一个任务,在通过集群服务器实现不同场景下的任务时,需要进行集群调度,以调度相应的资源执行任务,因而高效的资源调度是集群调度领域内需要考虑的问题。
相关技术中,资源调度系统可以基于任务的资源请求来分配合适的物理节点,以分配相应的资源执行该任务。采用这种方式在实际执行任务的过程中,存在集群在某些阶段资源使用率偏高,而在集群资源使用率高的情况下,存在不同容器之间资源抢占的问题。
针对现有的调度方式存在不同容器间资源抢占的问题,目前还没有提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种资源调度方法、装置、计算机设备和计算机可读存储介质。
第一方面,本申请提供了一种资源调度方法。所述方法包括:
获取待调度的容器组;
基于待调度的所述容器组,确定集群中与所述容器组匹配的目标节点;
在待调度的所述容器组的优先级标志位为低延迟的情况下,将所述目标节点中的处理器资源分配至所述容器组中的容器,生成资源调度结果。
在其中一个实施例中,所述方法还包括:
在所述容器组的优先级标志位为低延迟的情况下,基于亲和性对齐的资源分配策略,对所述容器组进行其他资源的分配,生成所述资源调度结果;其中,所述其他资源包括所述目标节点中处理器资源之外的资源。
在其中一个实施例中,所述方法还包括:
根据预先设置的调度策略,对所述资源调度结果中的所述容器组进行热迁移,生成优化资源调度结果。
在其中一个实施例中,所述根据预先设置的调度策略,对所述资源调度结果中的所述容器组进行热迁移,生成优化资源调度结果,包括:
根据预先设置的调度时间间隔,采用预先设置的优化算法,对所述资源调度结果进行优化计算,生成所述资源调度结果的优化解;
根据所述优化解,对所述资源调度结果中的所述容器组进行热迁移,生成所述优化资源调度结果。
在其中一个实施例中,所述根据所述优化解,对所述资源调度结果中的所述容器组进行热迁移,生成所述优化资源调度结果,包括:
根据所述优化解,确定所述资源调度结果中需要迁移的所述容器组;
基于需要迁移的所述容器组,生成待调度容器组的迁移任务队列;
基于所述迁移任务队列的容器组预设的调度顺序,对所述待调度容器组进行热迁移,生成所述优化资源调度结果。
在其中一个实施例中,所述方法还包括:
在集群中划分大页内存节点;
为标记为大页内存的容器组,匹配所述集群中的大页内存节点。
在其中一个实施例中,所述方法还包括:
将集群中的节点划分为低延迟区域的节点和非低延迟区域的节点;
在所述容器组的优先级标志位为低延迟的情况下,为所述容器组匹配低延迟区域的节点;或在所述容器组的优先级标志位不为所述低延迟的情况下,为所述容器组匹配非低延迟区域的节点。
第二方面,本申请还提供了一种资源调度装置。所述装置包括:
获取模块,用于获取待调度的容器组;
确定模块,用于基于待调度的所述容器组,确定集群中与所述容器组匹配的目标节点;
以及分配模块,用于在待调度的所述容器组的优先级标志位为低延迟的情况下,将所述目标节点中的处理器资源分配至所述容器组中的容器,生成资源调度结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的资源调度方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的资源调度方法。
上述资源调度方法、装置、计算机设备和存储介质,通过获取待调度的容器组,并根据待调度的容器组,确定集群中与待调度的容器组匹配的目标节点,进而将待调度的容器组与目标节点进行资源分配,在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,使得处理器的物理核心完全分配给同一个容器,并与之绑定,生成资源调度结果,避免了不同容器之间的抢占竞争,解决了不同容器间资源抢占的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一实施例提供的资源调度方法的终端的硬件结构框图;
图2为本申请一实施例提供的资源调度方法的流程图;
图3为本申请一优选实施例提供的资源调度方法的流程图;
图4为本申请一实施例提供的资源调度装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的资源调度方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的资源调度方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种资源调度方法,图2是本实施例的资源调度方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取待调度的容器组。
本申请采用资源调度器对资源进行调度,在本步骤中,资源调度器在接收到用户所发布的资源调度请求后,根据待调度队列的容器组排列顺序,确定待调度的容器组的资源调度顺序,进而按照资源调度顺序执行容器组的调度任务。其中,上述待调度队列,可以是根据用户提交的待调度容器组的任务优先级进行排列的容器组队列。需要说明的是,用户通过向资源调度器发送资源调度请求信息的方式来发布待调度容器组的资源调度任务请求,其中,资源调度请求信息中可以携带待调度容器组的资源调度任务的紧急情况的量化分数值;分数值越高时,待调度容器组的资源调度任务越紧急,需要优先进行调度;分数值越低时,待调度容器组的资源调度任务越不紧急,不需要优先进行调度。首先,任务调度器基于接收到的资源调度请求信息中的分数值,确定待调度容器组的优先级。其中,分数值越高,待调度容器组的优先级越高,若两个待调度容器组的分数值相同,则待调度容器组的资源调度任务的接收时间越早,待调度容器组的优先级越高。然后,任务调度器基于待调度容器组的优先级,将接收到的待调度容器组进行排序,生成待调度队列。上述获取待调度的容器组,可以是按照资源调度顺序获取待调度队列中需要执行调度任务的容器组。通过按照资源调度顺序获取待调度队列中需要执行调度任务的容器组,实现通过优先处理紧急的调度任务的前提下,依次完成对任务调度器所接收到的待调度的容器组的调度,实现待调度容器组的资源调度。
步骤S220,基于待调度的容器组,确定集群中与容器组匹配的目标节点。
其中,任务调度器在获取到待调度容器组之后,确定集群中与容器组匹配的目标节点,首先,对此时的集群资源的状态信息进行缓存,将集群资源的状态信息缓存至节点状态缓存数据库中。其中,集群资源的状态信息,可以是集群资源中的中央处理器(CentralProcessing Unit,CPU)、内存、网卡和硬盘等资源的信息。然后,根据待调度容器组对应的资源调度请求信息,获取资源调度请求信息中预设的集群中节点的过滤比例信息。其中,上述资源调度请求信息,可以包括预先设置的集群中节点的过滤比例、容器的资源需求等信息。其中,容器的资源需求,可以是CPU、内存、网卡和硬盘等资源的需求。进而,根据资源调度请求信息中设置的集群中节点的过滤比例信息,采用随机抽取的方式对集群中的节点进行过滤。例如,如果集群中有100个节点,资源调度请求信息中预先设置的集群中节点的过滤比例为50%,则对集群中的50个节点通过随机抽取的方式进行过滤。上述对集群中的节点进行过滤,可以是根据待调度容器组对应的资源调度请求信息中的容器的资源需求,在随机抽取的集群中的节点中过滤出满足上述容器的资源需求的节点。最后,若通过对集群中的节点进行过滤,得到满足要求的节点,则通过预先配置的算分插件对满足要求的所有节点进行分数计算,并选取分数最高的节点作为目标节点;若通过对集群中的节点进行过滤,不存在满足要求的节点,则扩大筛选范围,在全局范围内筛选节点,并通过预先配置的算分插件对筛选出的满足要求的节点进行分数计算,并设置分数阈值,当筛选出的节点满足分数阈值时,停止筛选,并将满足分数阈值的节点作为目标节点。其中,上述满足要求的节点,可以是节点中的资源能够满足容器的资源需求的节点。上述算分插件,是用户自定义的算分方式,具体的算分逻辑是根据节点的资源状态,例如节点中的中央处理器、内存、网卡或硬盘等多种资源的状态信息,对不同的资源状态信息自定义配置相应的分数,进而根据预先配置的分数核算规则,计算出节点的资源状态的分数。上述预先配置的分数核算规则,可以是将节点中的各个资源的状态信息进行分数核算,并计算所有资源的状态信息的分数和,将分数和作为此节点的分数。其中,节点中与容器所匹配的各个资源的状态信息的利用率越低,分数越高;相反的,节点中与容器所匹配的各个资源的状态信息的利用率越高,分数越低。因此,所获取到的分数最高的节点,为与容器组匹配的资源利用率最低的节点。其中,通过分数计算出满足要求的目标节点,原则上是选取分数最高的节点作为目标节点,节点的资源状态的分数越高,与待调度的容器组匹配的负载最低,集群的资源利用率越高。
上述步骤通过获取到待调度的容器组,根据待调度容器组的资源调度请求信息,获取与待调度的容器组匹配且负载最低的目标节点,通过将容器组匹配至负载较低的目标节点,来更好的利用目标节点上的资源,提高整个集群的资源利用率。
步骤S230,在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果。
其中,容器组的优先级标志位,可以是用来指定容器组的优先级或重要性的标志位,具体地,容器组的优先级标志位,可以设置为低延迟和非低延迟两种情况。上述待调度的容器组的优先级标志位为低延迟的情况,可以表示为待调度的容器组需要快速响应,尽可能地减少延迟时间。上述处理器资源,可以包括节点的处理器内核。上述将目标节点中的处理器资源分配至容器组中的容器,可以是将目标节点的处理器内核与容器组中的容器进行绑定,具体地,可以是通过独占对齐策略,将目标节点的处理器内核与容器组的CPU资源进行绑定。在本步骤中,在待调度的容器组的优先级标志位为低延迟的情况下,通过将目标节点的处理器内核与容器组的容器的CPU资源进行绑定,生成资源调度结果,使得每个容器可以独占一个或多个处理器内核,不会与其他容器共享处理器内核,从而避免了不同容器之间的抢占竞争。
上述步骤S210至步骤S230,通过待调度的容器组,确定集群中与待调度的容器组所匹配的目标节点,并在待调度的容器组与目标节点匹配的过程中,在待调度的容器组的优先级标志位为低延迟的情况下,通过独占对齐策略,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果,使得每个容器可以独占一个或多个处理器内核,不会与其他容器共享处理器内核,从而避免了不同容器之间的抢占竞争。
在一个实施例中,还包括以下步骤:
步骤S240,在容器组的优先级标志位为低延迟的情况下,基于亲和性对齐的资源分配策略,对容器组进行其他资源的分配,生成资源调度结果;其中,其他资源包括目标节点中处理器资源之外的资源。
其中,上述基于亲和性对齐的资源分配策略,可以包括非一致性内存访问(Non-Uniform Memory Access,简称为NUMA)亲和性对齐的资源分配策略和套接字(Socket)亲和性对齐的资源分配策略。其中,NUMA,可以是一种在多CPU系统上可用的技术,允许不同的CPU以不同的速度访问内存的不同部分,NUMA系统上的所有内存都分为一组NUMA节点,每个节点代表一组CPU或设备的本地内存。亲和性,可以是用于控制容器组要部署在哪些主机上,以及不能部署在哪些主机上的。通过亲和性,可以进行一些简单的逻辑组合,可以确定哪些容器组可以部署在同一个拓扑域的问题。其中,拓扑域,可以用主机标签实现,可以是单个主机,也可以是多个主机组成的组等。上述NUMA亲和性对齐的资源分配策略,可以是通过亲和性设置,实现容器组的资源分配来自于同一组NUMA节点。上述套接字(Socket)亲和性对齐的资源分配策略,可以是通过亲和性设置,实现容器组的资源分配来自于同一Socket组。上述其他资源,可以是目标节点中处理器资源之外的资源,具体地,可以是内存、网卡以及硬盘等资源。
具体地,上述NUMA亲和性对齐的资源分配策略,可以是通过以下步骤,来实现容器组与目标节点的资源分配:首先,确定容器组所需要的资源类型,例如,内存、网卡以及硬盘等资源类型。然后,确定NUMA节点的资源架构。其中,NUMA节点的资源架构,包括同一组NUMA节点的内存、网卡以及硬盘等资源架构。进而,为容器组的每个容器设置同一组NUMA的亲和性,以确保容器组所分配的资源尽可能的都是同一组的NUMA节点的资源。最后,将容器组中的容器与其资源相匹配的同一组NUMA节点进行绑定。例如,如果容器组中的某个容器需要大量的内存资源,就将此容器分配到内存资源充足的同一组的NUMA节点上。
上述步骤,通过确定容器组需要的资源类型以及NUMA节点的资源架构,为每个容器设置NUMA亲和性,并将容器与同一组NUMA节点进行绑定,确保容器组与所在的目标节点之间的资源分配是相匹配的前提下,保证容器组的容器所需的资源尽可能匹配同一组NUMA节点。
需要说明的是,CPU访问不在同一个NUMA节点上的内存、网卡或硬盘时,由于NUMA节点之间的距离较远,访问跨度较大,从而会存在访问延迟和性能损耗。因此,本实施例采用通过调整操作系统的NUMA配置,将应用程序(即容器组)所需的资源尽可能地分配到同一组NUMA节点(目标节点)上,减少跨NUMA访问的跨度,来减小性能损耗。
优选地,若通过NUMA亲和性对齐的资源分配策略,不能满足容器组所需要的资源都分配到同一个NUMA节点(目标节点)上,则需要通过Socket亲和性对齐的资源分配策略,对容器组进行其他资源的分配,保证容器组所需要的资源在同一Socket内对齐。具体地,通过Socket亲和性对齐的资源分配策略,可以通过设置CPU绑定和NUMA绑定等参数,将需要共享Socket组的资源绑定到同一个CPU Socket和NUMA节点上,从而实现在同一Socket内对齐,还可以在操作系统层面,通过调整NUMA配置和内存分配策略,将需要共享的Socket组的资源尽可能地分配到同一个NUMA节点上,从而实现在同一Socket内对齐。以上方法可以根据具体的应用场景和需求进行选择和组合,以实现在同一Socket内对齐。使得在分配应用程序(即容器组)的过程中,实现分配相同Socket组的资源。
上述步骤通过亲和性对齐的资源分配策略,使得将应用程序(即容器组)所需的资源尽可能地分配到同一个NUMA节点上或分配相同Socket组的资源,实现CPU对资源进行访问时,减少跨NUMA节点访问,进而减小性能损耗。
进一步地,在一个实施例中,还包括以下步骤:
步骤S250,根据预先设置的调度策略,对资源调度结果中的容器组进行热迁移,生成优化资源调度结果。
上述步骤中,预先设置的调度策略的内容具体可以为,根据预先设置的调度时间间隔,通过预先设置的优化算法,对资源调度结果进行优化计算,并根据计算结果对资源调度结果中的容器组进行调度。上述热迁移,可以是通过配置策略,在保证系统能正常运行的前提下,实现容器组从一个节点迁移到另一个节点,且迁移过程不会对应用程序或服务的正常运行造成影响。在本步骤中,通过预先设置的调度策略,根据优化计算结果,实现容器组从一个节点到另一个节点的迁移,能够减小资源利用碎片,进而提高集群资源的利用率。
在一个实施例中,基于上述步骤S250,根据预先设置的调度策略,对资源调度结果中的容器组进行热迁移,生成优化资源调度结果,包括以下步骤:
步骤S251,根据预先设置的调度时间间隔,采用预先设置的优化算法,对资源调度结果进行优化计算,生成资源调度结果的优化解。
在本步骤中,上述预先设置的调度时间间隔,可以是用户自定义设置的调度时间间隔,例如,可以设置调度时间间隔为6小时或10小时,即每隔6小时或10小时对资源调度结果进行一次优化调度。上述预先设置的优化算法,可以是粒子群优化算法、蚁群优化算法或模拟退火算法等优化算法中的一种。上述对资源调度结果进行优化计算,可以是根据资源调度结果的资源碎片,求得优化解。上述优化解,可以是使得资源调度更合理的解。上述资源调度更合理的解,可以是指通过优化算法获得的,使得资源碎片总量更少的解。在本步骤中,通过预先设置的优化算法,对资源调度的结果进行优化计算,得到使得资源调度结果更合理的优化解,便于后续根据优化解,对资源调度结果进行热迁移,实现对资源调度结果的再次调度,以此来减少资源碎片,提高集群资源的利用率。
步骤S252,根据优化解,对资源调度结果中的容器组进行热迁移,生成优化资源调度结果。
在一个实施例中,基于上述步骤S252,根据优化解,对资源调度结果中的容器组进行热迁移,生成优化资源调度结果,包括以下步骤:
步骤S2521,根据优化解,确定资源调度结果中需要迁移的容器组。
在本步骤中,根据优化算法的计算,计算出使得资源调度结果更合理,使得资源碎片更少或者资源调度结果的容器的NUMA亲和性更高的优化解,根据优化解来确定资源调度结果中需要迁移的容器组。
步骤S2522,基于需要迁移的容器组,生成待调度容器组的迁移任务队列。
在本步骤中,通过将需要进行迁移的容器组进行排序,生成待调度容器组的迁移任务队列,基于待调度容器组的实时任务队列,以及待调度容器组的迁移任务队列,确定待调度容器组的迁移任务队列的容器组的调度顺序。其中,在待调度的队列同时存在迁移任务队列和实时任务队列的情况下,实时任务队列的优先级高于迁移任务队列,只有当实时任务队列的调度任务完成的情况下,才执行迁移任务队列的调度任务。
步骤S2523,基于迁移任务队列的容器组的调度顺序,对待调度容器组进行热迁移,生成优化资源调度结果。
在本步骤中,在执行迁移队列的调度任务时,按照迁移任务队列的容器组的调度顺序,依次对待调度的容器组进行热迁移,实现容器组的优化调度,生成优化资源调度结果。
上述步骤S251至步骤S252,通过预先设置的调度时间间隔,通过预先设置的优化算法,得到资源调度的优化解,并根据优化解,对资源调度结果进行优化调度,得到优化调度的结果,采用此种方式,可以减少资源碎片,提高集群资源的利用率。
在一个优选实施例中,还包括以下步骤:
在集群中划分大页内存节点;为标记为大页内存的容器组,匹配集群中的大页内存节点。
在本步骤中,首先,在集群中的每个节点上启用大页内存功能,并配置大页内存的内存大小和数量。上述大页内存,可以是通过增大操作系统页的大小来减少页面,从而避免快表的缺失。上述在集群中的每个节点上启用大页内存功能,可以是在建立集群时,将集群中的节点分为不同的大页内存节点的节点群,进而,可以通过在容器组定义中指定节点选择器来为标记为大页内存的容器组匹配集群中的大页内存节点。具体地,可以通过标记选择器来选择具有特定标记的节点,然后将容器组调度到这些节点上。例如,集群中的节点分为1G(千兆字节)、4G和16G的大页内存节点的节点群,带有4G大页内存标记的容器组会匹配4G的大页内存节点。本步骤采用在集群中划分大页内存节点,通过大页内存技术来为部分高性能应用避免内存快表的压力与页表负载,解决了容器组中的高性能应用在运行时因为内存空间不足而卡顿的问题,提高了容器组的性能。
在一个可行的实施例中,还包括以下步骤:
将集群中的节点划分为低延迟区域的节点和非低延迟区域的节点;在容器组的优先级标志位为低延迟的情况下,为容器组匹配低延迟区域的节点;或在容器组的优先级标志位不为低延迟的情况下,为容器组匹配非低延迟区域的节点。
在本步骤中,将集群中的节点按照延迟时间的不同进行分类,将延迟时间较低的节点划分为低延迟区域的节点,将延迟时间较高的节点划分为非低延迟区域的节点。这样可以在容器组的优先级标志位为低延迟的情况下,为容器组匹配低延迟区域的节点;或在容器组的优先级标志位不为低延迟的情况下,为容器组匹配非低延迟区域的节点。进而更好地利用集群资源,提高应用程序的性能和响应速度。
下面通过优选实施例对本实施例进行描述和说明。
图3是本申请一优选实施例提供的资源调度方法的流程图。如图3所示,该资源调度方法包括以下步骤:
步骤S310,基于待调度队列,获取待调度的容器组;
在本步骤中,上述待调度队列,可以包括实时任务队列和迁移任务队列,在执行调度任务时,实时任务队列的优先级高于迁移任务队列,待调度任务队列按照优先级确定容器组的调度顺序。
步骤S320,基于待调度的容器组,确定集群中与容器组匹配的目标节点;
步骤S330,在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果;
步骤S340,在容器组的优先级标志位为低延迟的情况下,基于亲和性对齐的资源分配策略,对容器组进行其他资源的分配,生成资源调度结果;其中,其他资源包括目标节点中处理器资源之外的资源;
步骤S350,根据预先设置的调度时间间隔,采用预先设置的优化算法,对资源调度结果进行优化计算,生成资源调度结果的优化解;
步骤S360,根据优化解,对资源调度结果中的容器组进行热迁移,生成优化资源调度结果。
本实施例中,通过待调度的容器组,确定集群中与待调度的容器组所匹配的目标节点,并在待调度的容器组与目标节点匹配的过程中,在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,基于亲和性对齐的资源分配策略,对容器组进行其他资源的分配,生成资源调度结果,并根据优化算法计算优化解,通过计算结果对调度结果进行优化,得到优化资源调度结果,提高集群资源的利用率,并通过将目标节点中的处理器资源分配至容器组中的容器,使得每个容器可以独占一个或多个处理器内核,不会与其他容器共享处理器内核,从而避免了不同容器之间的抢占竞争。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,在本实施例中还提供了一种资源调度装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个实施例中,图4是本申请一实施例提供的资源调度装置的结构框图,如图4所示,该资源调度装置,包括:
获取模块42,用于获取待调度的容器组;
确定模块44,用于基于待调度的容器组,确定集群中与容器组匹配的目标节点;
以及分配模块46,用于在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果。
上述资源调度装置,其通过待调度的容器组,确定集群中与待调度的容器组所匹配的目标节点,并在待调度的容器组与目标节点匹配的过程中,在待调度的容器组的优先级标志位为低延迟的情况下,将目标节点中的处理器资源分配至容器组中的容器,生成资源调度结果,使得每个容器可以独占一个或多个处理器内核,不会与其他容器共享处理器内核,从而避免了不同容器之间的抢占竞争。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中的任意一种资源调度方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的任意一种资源调度方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种资源调度方法,其特征在于,所述方法包括:
获取待调度的容器组;
基于待调度的所述容器组,确定集群中与所述容器组匹配的目标节点;
在待调度的所述容器组的优先级标志位为低延迟的情况下,将所述目标节点中的处理器资源分配至所述容器组中的容器,生成资源调度结果。
2.根据权利要求1所述的资源调度方法,其特征在于,所述方法还包括:
在所述容器组的优先级标志位为低延迟的情况下,基于亲和性对齐的资源分配策略,对所述容器组进行其他资源的分配,生成所述资源调度结果;其中,所述其他资源包括所述目标节点中处理器资源之外的资源。
3.根据权利要求1所述的资源调度方法,其特征在于,所述方法还包括:
根据预先设置的调度策略,对所述资源调度结果中的所述容器组进行热迁移,生成优化资源调度结果。
4.根据权利要求3所述的资源调度方法,其特征在于,所述根据预先设置的调度策略,对所述资源调度结果中的所述容器组进行热迁移,生成优化资源调度结果,包括:
根据预先设置的调度时间间隔,采用预先设置的优化算法,对所述资源调度结果进行优化计算,生成所述资源调度结果的优化解;
根据所述优化解,对所述资源调度结果中的所述容器组进行热迁移,生成所述优化资源调度结果。
5.根据权利要求4所述的资源调度方法,其特征在于,所述根据所述优化解,对所述资源调度结果中的所述容器组进行热迁移,生成所述优化资源调度结果,包括:
根据所述优化解,确定所述资源调度结果中需要迁移的所述容器组;
基于需要迁移的所述容器组,生成待调度容器组的迁移任务队列;
基于所述迁移任务队列的容器组预设的调度顺序,对待调度的所述容器组进行热迁移,生成所述优化资源调度结果。
6.根据权利要求1至权利要求5中任一项所述的资源调度方法,其特征在于,所述方法还包括:
在集群中划分大页内存节点;
为标记为大页内存的容器组,匹配所述集群中的大页内存节点。
7.根据权利要求1至权利要求5中任一项所述的资源调度方法,其特征在于,所述方法还包括:
将集群中的节点划分为低延迟区域的节点和非低延迟区域的节点;
在所述容器组的优先级标志位为低延迟的情况下,为所述容器组匹配低延迟区域的节点;或在所述容器组的优先级标志位不为所述低延迟的情况下,为所述容器组匹配非低延迟区域的节点。
8.一种资源调度装置,其特征在于,所述装置包括:
获取模块,用于获取待调度的容器组;
确定模块,用于基于待调度的所述容器组,确定集群中与所述容器组匹配的目标节点;
以及分配模块,用于在待调度的所述容器组的优先级标志位为低延迟的情况下,将所述目标节点中的处理器资源分配至所述容器组中的容器,生成资源调度结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求7中任一项所述的资源调度方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求7中任一项所述的资源调度方法的步骤。
CN202310742056.3A 2023-06-21 2023-06-21 资源调度方法、装置、计算机设备和存储介质 Pending CN116483547A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310742056.3A CN116483547A (zh) 2023-06-21 2023-06-21 资源调度方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310742056.3A CN116483547A (zh) 2023-06-21 2023-06-21 资源调度方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116483547A true CN116483547A (zh) 2023-07-25

Family

ID=87212294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310742056.3A Pending CN116483547A (zh) 2023-06-21 2023-06-21 资源调度方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116483547A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991246A (zh) * 2023-09-27 2023-11-03 之江实验室 用于导览机器人的算法调度方法、装置及导览机器人系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008024A (zh) * 2019-04-02 2019-07-12 广西大学 一种多维约束下基于延迟决策的容器调度方法以及装置
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法
WO2021086839A1 (en) * 2019-10-30 2021-05-06 TidalScale, Inc. Goal-directed software-defined numa working set management
EP4080362A2 (en) * 2021-08-20 2022-10-26 Beijing Baidu Netcom Science and Technology Co., Ltd. Method and apparatus for creating a container
CN115408100A (zh) * 2022-07-21 2022-11-29 天翼云科技有限公司 容器集群调度的方法、装置、设备及存储介质
CN115525434A (zh) * 2022-10-19 2022-12-27 京东科技信息技术有限公司 资源分配方法、容器管理组件和资源分配系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008024A (zh) * 2019-04-02 2019-07-12 广西大学 一种多维约束下基于延迟决策的容器调度方法以及装置
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法
WO2021086839A1 (en) * 2019-10-30 2021-05-06 TidalScale, Inc. Goal-directed software-defined numa working set management
EP4080362A2 (en) * 2021-08-20 2022-10-26 Beijing Baidu Netcom Science and Technology Co., Ltd. Method and apparatus for creating a container
CN115408100A (zh) * 2022-07-21 2022-11-29 天翼云科技有限公司 容器集群调度的方法、装置、设备及存储介质
CN115525434A (zh) * 2022-10-19 2022-12-27 京东科技信息技术有限公司 资源分配方法、容器管理组件和资源分配系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
彭丽苹;吕晓丹;蒋朝惠;彭成辉;: "基于Docker的云资源弹性调度策略", 计算机应用, no. 02 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991246A (zh) * 2023-09-27 2023-11-03 之江实验室 用于导览机器人的算法调度方法、装置及导览机器人系统

Similar Documents

Publication Publication Date Title
CN108243044B (zh) 业务部署的方法与装置
CN109144731B (zh) 数据处理方法、装置、计算机设备及存储介质
US20160306680A1 (en) Thread creation method, service request processing method, and related device
WO2018072687A1 (zh) 一种资源调度的方法、装置和过滤式调度器
US9606945B2 (en) Access controller, router, access controlling method, and computer program
US11983564B2 (en) Scheduling of a plurality of graphic processing units
CN112214319B (zh) 一种计算资源感知的任务调度方法
CN108519917A (zh) 一种资源池分配方法和装置
CN113672391B (zh) 一种基于Kubernetes的并行计算任务调度方法与系统
WO2021259246A1 (zh) 资源调度方法和装置、电子设备、计算机可读存储介质
CN116483547A (zh) 资源调度方法、装置、计算机设备和存储介质
CN110221920A (zh) 部署方法、装置、存储介质及系统
CN114968601B (zh) 一种按比例预留资源的ai训练作业的调度方法和调度系统
CN114691372A (zh) 一种多媒体端边云系统的群体智能控制方法
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
US20170344266A1 (en) Methods for dynamic resource reservation based on classified i/o requests and devices thereof
CN113301087B (zh) 资源调度方法、装置、计算设备和介质
JP6256167B2 (ja) データセンターネットワークにおけるリスク軽減
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
CN116204327B (zh) 分布式系统通信调度方法及分布式机器学习系统
CN116010051A (zh) 一种联邦学习多任务调度方法及装置
CN115509749A (zh) 任务执行方法和装置、存储介质和电子设备
CN115809014A (zh) 一种调度控制方法、设备及计算机存储介质
CN112363811B (zh) 一种人工智能计算资源调度方法及计算机可读存储介质
CN117389747B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20230725

RJ01 Rejection of invention patent application after publication