CN118502938A - 资源分配方法、装置、电子设备及存储介质 - Google Patents

资源分配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN118502938A
CN118502938A CN202410608776.5A CN202410608776A CN118502938A CN 118502938 A CN118502938 A CN 118502938A CN 202410608776 A CN202410608776 A CN 202410608776A CN 118502938 A CN118502938 A CN 118502938A
Authority
CN
China
Prior art keywords
workload
computing core
allocated
core chip
resources
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
CN202410608776.5A
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.)
Shuhang Technology Beijing Co ltd
Original Assignee
Shuhang Technology Beijing 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 Shuhang Technology Beijing Co ltd filed Critical Shuhang Technology Beijing Co ltd
Priority to CN202410608776.5A priority Critical patent/CN118502938A/zh
Publication of CN118502938A publication Critical patent/CN118502938A/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/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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)
  • Multi Processors (AREA)

Abstract

本申请公开了一种资源分配方法、装置、电子设备及存储介质。该方法包括:获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点;基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。

Description

资源分配方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种资源分配方法、装置、电子设备及存储介质。
背景技术
以容器集群管理系统(Kubernetes,K8s)为底座的云原生技术极大推动了云原生领域的发展,在云原生场景下,为了最大化实现资源共享,每台服务器往往会运行多个不同的工作负载。为了使得每个工作负载都能分配到合理的资源数量,即中央处理器(CentralProcessing Unit,CPU)数量,现有技术中通过在K8s中的工作节点上部署非一致性内存访问(Non-Uniform Memory Access,NUMA)架构,基于NUMA节点粒度,将工作负载绑定到对应的NUMA节点上,然后将工作负载随机绑定到对应的NUMA节点中存在可用资源的计算核心芯片组(Compute Core Die,CCD)上,这样为工作负载绑定的CCD无法适配每个工作负载对CCD的要求,从而降低工作负载的业务性能。
发明内容
本申请实施例提供了一种资源分配方法、装置、电子设备及存储介质,通过确定与待分配工作负载适配的目标第一计算核心芯片组,从而提高待分配工作负载的业务性能。
第一方面,本申请实施例提供一种资源分配方法,所述方法应用于工作节点,所述工作节点包括多个非一致性内存访问节点,该方法包括:
获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点;
基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。
第二方面,本申请实施例提供一种资源分配装置,所述装置应用于工作节点,所述装置包括:收发单元和处理单元;
收发单元,用于获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点;
处理单元,用于基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,获取所述多个非一致性内存访问节点中待分配工作负载需要绑定的非一致性内存访问节点;基于待分配工作负载所需的资源数量和非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。在对待分配工作负载进行资源分配时,不仅仅只确定待分配工作负载应当绑定的非一致性内存访问节点,还会进一步基于待分配工作负载所需的资源数量和第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配适配的目标第一计算核心芯片组,由适配的目标第一计算核心芯片组为待分配工作负载提供服务,从而提高待分配工作负载的业务性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种资源分配系统的示意图;
图2为本申请实施例提供的另一种资源分配系统的示意图;
图3为本申请实施例提供的再一种资源分配系统的示意图;
图4为本申请实施例提供的一种资源分配方法的流程示意图;
图5a为本申请实施例提供的一种计算核心芯片组可分配CPU数量的示意图;
图5b为本申请实施例提供的另一种计算核心芯片组可分配CPU数量的示意图;
图5c为本申请实施例提供的再一种计算核心芯片组可分配CPU数量的示意图;
图5d为本申请实施例提供的再一种计算核心芯片组可分配CPU数量的示意图;
图5e为本申请实施例提供的再一种计算核心芯片组可分配CPU数量的示意图;
图6为本申请实施例提供的一种确定目标第一计算核心芯片组的流程图;
图7为本申请实施例提供的一种资源分配装置的功能单元组成框图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了便于理解本申请的技术方案,首先对本申请涉及到的相关技术术语进行解释。
工作节点:工作节点是一个容器运行环境,每个工作节点上都运行一个单机代理组件,工作节点是K8s集群中真正工作的节点,一个工作节点可以看做一个服务器。
调度器:本申请中的调度器指的是K8s调度器,调度器是负责将容器化的工作负载调度到集群中对应的工作节点上运行的组件,调度器根据一系列的调度策略和约束条件,选择合适的节点运行该工作负载。应说明在本申请中,调度器还可以确定工作负载应当绑定的NUMA节点。
工作负载:工作负载通常是访问服务的实际载体,也是对节点日志收集、监控等系统应用的实际运行载体,是对一组容器组的抽象模型,也即,工作负载就是服务,创建一个工作负载就是创建一个服务。
NUMA架构:在这种架构下,不同的内存器件和CPU核心属于不同的NUMA节点,CPU跨NUMA节点访问内存,会有较大的内存访问延迟。
三级缓存(L3 cache):三级缓存的可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。
CCD:AMD的处理器架构中的CCD是计算核心芯片组,每个NUMA节点上分布多个CCD,每个CCD共享一个三级缓存。
单机代理:在本申请中的单机代理相当于K8s中的DaemonSet组件,每个工作节点上都存在一个单机代理,常用来部署一些集群的日志、监控或者其他系统管理应用,在本申请中用来分配工作负载应当绑定的CCD。
睡眠状态(sleeping):是指任务进程等待某种条件就绪,而导致的一种不推进的工作状态。
应说明,本申请中的高优先级的工作负载以及低优先级的工作负载是基于工作负载的优先级对工作负载进行的不同分类,例如,对于网络社区共享平台类的软件来说,用户通过文字、图片、视频进行内容的分享,并且软件中的搜索引擎也可以根据基于用户的搜索词,推荐不同类型的笔记内容,则对于该网络社区共享平台,可以将搜索业务、广告业务以及推荐业务对于的工作负载定义为高优先级的工作负载,可以将离线的音视频转码业务、大数据计算业务定义为低优先级的工作负载。
进一步地,本申请中的内存密集型工作负载属于高优先级的工作负载的一种,内存密集型工作负载是工作负载的一种属性,内存密集型的工作负载需要频繁访问内存处理事务。
应说明,在本申请中,只有高优先级的工作负载有编排策略,其中,高优先级的工作负载的编排策略包括共享型和独占型,编排策略为共享型的高优先级的工作负载在睡眠状态时可以和低优先级的工作负载进行混部共享CPU;编排策略为独占型的高优先级的工作负载在睡眠状态时不可以和低优先级的工作负载进行混部。
应说明,在本申请中应将资源数量和CPU数量当做同一种含义的不同表达。
参阅图1,图1为本申请实施例提供的一种资源分配系统的示意图。资源分配系统包括调度器101、工作节点102、单机代理103、以及NUMA架构,其中,NUMA架构中包括多个NUMA节点(如图1中的NUMA节点0和NUMA节点1),也即工作节点102包括多个NUMA节点,每个NUMA节点中包括多个CCD(如图1中的CCD0、CCD1、CCD2、CCD3、CCD4、CCD5、CCD6以及CCD7),且每个CCD中都有多个CPU。每个工作节点中都有一个单机代理,图1中仅以工作节点102中存在的一个单机代理103为例进行说明。应说明,本申请中在图1中展现出来的NUMA节点个数、CCD个数以及CPU个数,都仅仅是举例说明,不构成对本申请的限制。
调度器101接收一个待分配工作负载的调度请求,向单机代理103发送待分配工作负载需要绑定的获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点,单机代理103将待分配工作负载绑定到第一非一致性内存访问节点上,以第一非一致性内存访问节点是图1中的NUMA节点0为例进行说明。单机代理103基于待分配工作负载所需的资源数量(即CPU数量),以及第一非一致性内存访问节点(即NUMA节点0)中t1个第一计算核心芯片组(即CCD0、CCD1、CCD2以及CCD3)中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。应说明,单机代理103还可以获取NUMA节点的节点拓扑信息,并向调度器发送节点拓扑信息。
可以看出,在本申请实施例中,获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点(即NUMA节点0);基于待分配工作负载所需的资源数量和非一致性内存访问节点中t1个第一计算核心芯片组(即CCD0、CCD1、CCD2以及CCD3)中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。在对待分配工作负载进行资源分配时,不仅仅只确定待分配工作负载应当绑定的非一致性内存访问节点,还会进一步基于待分配工作负载所需的资源数量和第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配适配的目标第一计算核心芯片组,举例说明,如图1中CCD0、CCD1、CCD2以及CCD3,CCD0、CCD1、CCD2以及CCD3中灰色的部分为已分配的资源,白色的部分为未分配的资源,若待分配工作负载所需的资源数量为9个,CCD0、CCD1、CCD2以及CCD3的可分配资源数量分别为5个、4个、9个以及10个,本方案会基于待分配工作负载所需的资源数量和CCD0、CCD1、CCD2以及CCD3的可分配资源数量为待分配工作负载分配适配的目标第一计算核心芯片组,即将CCD2作为目标第一计算核心芯片组,而不是随机将待分配工作负载分配到CCD0、CCD1、CCD2以及CCD3中的一个或者多个中,因此,本申请中进一步基于待分配工作负载所需的资源数量和第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配适配的目标第一计算核心芯片组,由适配的目标第一计算核心芯片组为待分配工作负载提供服务,可以提高待分配工作负载的业务性能。
进一步地,参阅图2,图2为本申请实施例提供的另一种资源分配系统的示意图。资源分配系统包括调度器101、工作节点102、单机代理103、以及NUMA架构,其中,NUMA架构中包括多个NUMA节点(如图2中的NUMA节点0和NUMA节点1),也即工作节点102包括多个NUMA节点,每个NUMA节点中包括多个CCD(如图2中的CCD0、CCD1、CCD2、CCD3、CCD4、CCD5、CCD6以及CCD7),如图2所示每个CCD中都有一个三级缓存,且每个CCD中都有多个CPU。每个工作节点中都有一个单机代理,图2中仅以工作节点102中存在的一个单机代理103为例进行说明。应说明,本申请中在图2中展现出来的NUMA节点个数、CCD个数以及CPU个数,都仅仅是举例说明,不构成对本申请的限制。
调度器101接收一个高优先级的待分配工作负载的调度请求,向单机代理103发送待分配工作负载需要绑定的多个非一致性内存访问节点中的第一非一致性内存访问节点,单机代理103将待分配工作负载绑定到第一非一致性内存访问节点上,以第一非一致性内存访问节点是图2中的NUMA节点1为例进行说明。单机代理103基于待分配工作负载所需的资源数量(即CPU数量),以及第一非一致性内存访问节点(即NUMA节点1)中t1个第一计算核心芯片组(即CCD4、CCD5、CCD6以及CCD7)中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。应说明,单机代理103还可以获取NUMA节点的节点拓扑信息,并向调度器发送节点拓扑信息。
可以看出,在本申请实施例中,获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点(即NUMA节点1);基于待分配工作负载所需的资源数量和非一致性内存访问节点中t1个第一计算核心芯片组(CCD4、CCD5、CCD6以及CCD7)中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。在对待分配工作负载进行资源分配时,不仅仅只确定待分配工作负载应当绑定的非一致性内存访问节点,还会进一步基于待分配工作负载所需的资源数量和第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组,从而可以使得高优先级的待分配工作负载尽可能地独占一个未绑定其他工作负载的目标第一计算核心芯片组,举例说明,如图1中CCD4、CCD5、CCD6以及CCD7,CCD4、CCD5、CCD6以及CCD7中灰色的部分为已分配的资源,白色的部分为未分配的资源,若待分配工作负载所需的资源数量为9个,CCD4、CCD5、CCD6以及CCD7的可分配资源数量分别为9个、10个、10个以及16个,本方案会尽可能地将待分配工作负载分配到未分配工作负载的CCD上,即将CCD7作为目标第一计算核心芯片组,以确保在待分配工作负载运行时,可以独占目标第一计算核心芯片组(即CCD7)中的三级缓存,从而加快数据读写的效率,提高待分配工作负载的业务性能。
参阅图3,图3为本申请实施例提供的再一种资源分配系统的示意图,资源分配系统包括调度器、单机代理、API服务模块以及Cadvisor接口,其中单机代理中包括CPU拓扑感知模块、CPU资源编排模块、策略执行模块、CPU资源缓存模块以及看门狗模块。
Cadvisor接口:对外暴露API接口,提供NUMA架构下服务器的物理硬件信息,包括CPU拓扑信息、NUMA节点信息等,具体地,可以确定NUMA架构中每个CPU在哪一个CCD中,以及每个CPU在哪一个NUMA节点中,向CPU拓扑感知模块发送服务器的CPU拓扑信息。
CPU拓扑感知模块:向Cadvisor接口发起请求以获取NUMA架构下的物理硬件信息,将NUMA架构下的物理硬件信息转换为CCD拓扑信息以及节点拓扑信息。具体地,CCD拓扑信息包括每个CCD中的CPU数量,节点拓扑信息包括一个NUMA架构中的NUMA节点数量、每个NUMA节点中的CCD数量以及每个CCD中的CPU数量,其中,每个CCD中的CPU数量可以是相等的。进一步地,一方面CPU拓扑感知模块将CCD拓扑信息缓存在单机代理的CPU资源缓存模块中,另一方面会向调度器发送节点拓扑信息。
调度器:在调度待分配工作负载时,根据接收的单机代理的节点拓扑信息以及待分配工作负载所需的资源数量,为待分配工作负载确定需要绑定的NUMA节点,并将该NUMA节点信息下发给单机代理中的CPU资源编排模块,其中,待分配工作负载确定需要绑定的NUMA节点中的可分配资源数量应当大于待分配工作负载所需的资源数量;进一步地,若该待分配工作负载是高优的内存密集型工作负载,则调度器还需要将该内存密集型工作负载进行调度打散,也即应当将不同的内存密集型工作负载绑定到不同的NUMA节点中。
CPU资源缓存模块:缓存单机代理中每个NUMA节点的静态的CCD拓扑信息、动态的可分配CPU数量,以及单机代理上所有的工作负载和其绑定的CPU之间的映射关系,其中,静态的CCD拓扑信息是指一个CCD中的CPU数量,动态的可分配的CPU数量是指一个CCD中的可分配CPU数量,单机代理上所有的工作负载和其绑定的CPU之间的映射关系是指一个CCD中已分配的CPU与工作负载之间的映射关系。CPU资源缓存模块向CPU资源编排模块发送CCD拓扑信息以及每个CCD的可分配CPU数量。应说明,动态的可分配CPU数量可以是CPU资源缓存模块周期性获取的,也可以是当有一个工作负载需要被分配CCD时,才获取对应的CCD的可分配CPU数量。CPU资源缓存模块还通过看门狗模块检测CPU资源分配是否存在冲突。
API服务模块:对外暴露API接口,通过单机代理上CPU资源编排模块获取单机代理上的工作负载的元数据及工作状态,其中,元数据包括工作负载需要的CPU以及内存等,工作状态是指工作负载中的任务进行的工作状态,包括运行工作状态,休眠工作状态以及停止工作状态等。
CPU资源编排模块:根据待分配工作负载需要绑定的NUMA节点、待分配工作负载的信息以及该NUMA节点中的每个CCD的可分配的资源数量,实现CCD粒度的CPU编排,尽可能保证给高优先级的工作负载分配完整的CCD,同时保证不会跨NUMA节点。其中,待分配工作负载的信息包括待分配工作负载所需的CPU数量。具体地,若待分配工作负载为高优先级的工作负载,单机代理中的CPU资源编排模块从调度器获取待分配工作负载需要绑定的非一致性内存访问节点;单机代理中的CPU资源编排模块基于待分配工作负载所需的资源数量和非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。CPU资源编排模块向策略执行模块发送具体的编排信息,其中,该编排信息包括待分配工作负载需要绑定的目标第一计算核心芯片组。
策略执行模块:以插件化的形式提供,支持自定义高优先级的工作负载的编排策略,其中,高优先级的工作负载的编排策略包括共享型和独占型,编排策略为共享型的高优先级的工作负载在睡眠状态时可以和低优先级的工作负载进行混部共享CPU;编排策略为独占型的高优先级的工作负载在睡眠状态时不可以和低优先级的工作负载进行混部。进一步地,根据CPU资源编排模块下发的为待分配工作负载分配目标第一计算核心芯片组,完成对待分配工作负载的CPU绑定,同时向CPU资源缓存模块更新目标第一计算核心芯片组的可分配资源数量。
看门狗模块:根据当前的CPU缓存信息,周期性的检查是否存在有CPU资源重复分配的冲突;同时,以事件驱动的形式监控单机代理上是否有新的工作负载启动或删除,通知CPU资源编排模块或缓存模块。
参阅图4,图4为本申请实施例提供的一种资源分配方法的流程示意图,该方法应用于单机代理,该方法包括但不限于步骤401-402:
401:获取多个非一致性内存访问节点中待分配工作负载需要绑定的第一非一致性内存访问节点。
应说明,待分配工作负载需要绑定的第一非一致性内存访问节点可以是由调度器确定的,具体地,当图3中的调度器接收到一个调度请求时,调度器会根据待分配工作负载所需的资源信息先将待分配工作负载调度到工作节点上。进一步地,待分配工作负载可以为高优先级的工作负载,则调度器为高优先级的工作负载确定应当绑定的非一致性内存访问节点,具体地,调度器根据该工作节点中的节点拓扑信息,确定待分配工作负载需要绑定的第一非一致性内存访问节点,第一非一致性内存访问节点中的可分配资源数量应当大于待分配工作负载所需的资源数量,调度器将该第一非一致性内存访问节点下发给单机代理中的CPU资源编排模块。
402:基于待分配工作负载所需的资源数量和第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从t1个第一计算核心芯片组中为待分配工作负载分配目标第一计算核心芯片组。
示例性的,若t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,基于每个第二计算核心芯片组的可分配资源数量以及待分配工作负载所需的资源数量,为待分配工作负载分配目标第一计算核心芯片组。若t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组。
应说明,图5a-图5e中灰色部分为CCD中的已分配资源,白色部分为CCD中的未分配资源。
具体地,若t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,基于每个第二计算核心芯片组的可分配资源数量以及待分配工作负载所需的资源数量,为待分配工作负载分配目标第一计算核心芯片组,包括:若第二计算核心芯片组的可分配资源数量大于或等于待分配工作负载所需的资源数量,则将t2个第二计算核心芯片组中编号最小的第二计算核心芯片组作为目标第一计算核心芯片组。如图5a所示进行举例说明,若t1等于4,也即有四个第一计算核心芯片组,分别为图5a中的CCD0、CCD1、CCD2以及CCD3。如图3所示,CPU资源编排模块可以从CPU资源缓存模块中获取CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量,以每一个CCD的静态的CCD拓扑信息为16个CPU为例进行说明,若CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量分别为:10个、16个、16个以及16个。如图5a可知,四个第一计算核心芯片组中存在三个未分配工作负载的第二计算核心芯片组(即图5a中的CCD1、CCD2以及CCD3),也即t2等于3。若待分配工作负载所需的资源数量为10个,可知第二计算核心芯片组的可分配资源数量大于待分配工作负载所需的资源数量,则将t2个第二计算核心芯片组中编号最小的第二计算核心芯片组作为目标第一计算核心芯片组,也即将CCD1作为目标第一计算核心芯片组。策略执行模块将待分配工作负载绑定到CCD1上,具体地,将待分配工作负载绑定到CCD1。
可以看出,在本申请实施例中,若t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,且若第二计算核心芯片组的可分配资源数量大于或等于待分配工作负载所需的资源数量,则将t2个第二计算核心芯片组中编号最小的第二计算核心芯片组作为目标第一计算核心芯片组,将待分配工作负载绑定到CCD1上。由于每个CCD都对应一个三级缓存,因此,将高优的待分配工作负载绑定到一个未分配工作负载的CCD上,可以让该高优的待分配工作负载独占一个三级缓存,避免不同高优先级的工作负载之间的三级缓存污染,并且避免待分配工作负载跨NUMA节点访问内存,以使得在待分配工作负载运行时,可以独占目标第一计算核心芯片组中的三级缓存,从而加快数据读写的效率,提高待分配工作负载的业务性能。
可选地,若t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,且若第二计算核心芯片组的可分配资源数量小于待分配工作负载所需的资源数量,则基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组。
同样的,若t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组,也就是说,在若t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,且若第二计算核心芯片组的可分配资源数量小于待分配工作负载所需的资源数量,以及若t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组的情况下,单机代理为待分配工作负载分配目标第一计算核心芯片组的方法是相同的,即基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组。
具体地,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组,包括:确定每个第一计算核心芯片组的可分配资源数量与待分配工作负载所需的资源数量的差值,基于每个第一计算核心芯片组差值,确定目标第一计算核心芯片组,其中,该差值是指每个第一计算核心芯片组的可分配资源数量减去待分配工作负载所需的资源数量得到的差值。
如图6所示,如图6是本申请实施例提供的一种确定目标第一计算核心芯片组的流程图。
601:获取t1个第一计算核心芯片组中每个第一计算核心芯片组差值;
602:确定t1个第一计算核心芯片组中是否存在差值等于0的第一计算核心芯片组。若是,则执行603,若否,则执行604;
603:将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为目标第一计算核心芯片组。
具体地,若所述t1个第一计算核心芯片组中存在差值等于0的第一计算核心芯片组,将所述差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为所述目标第一计算核心芯片组。
举例说明,若待分配工作负载所需的资源数量为5个,以图5b所示进行举例说明,若t1等于4,也即有四个第一计算核心芯片组,分别为图5b中的CCD0、CCD1、CCD2以及CCD3。如图3所示,CPU资源编排模块可以从CPU资源缓存模块中获取CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量,以每一个CCD的静态的CCD拓扑信息为16个CPU为例进行说明,若CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量分别为:6个、5个、5个以及4个。因此,与CCD0、CCD1、CCD2以及CCD3差值分别为:1、0、0以及-1,四个第一计算核心芯片组中存在差值等于0的2个第一计算核心芯片组。具体地,t1个第一计算核心芯片组中存在差值等于0的第一计算核心芯片组,将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为目标第一计算核心芯片组,即将CCD1和CCD2中编号最小的CCD1作为目标第一计算核心芯片组。策略执行模块将待分配工作负载绑定到CCD1上。
604:确定t1个第一计算核心芯片组中是否存在差值大于零的第一计算核心芯片组。若是,则执行605;若否,则执行606;
605:将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组作为目标第一计算核心芯片组。
具体地,若所述t1个第一计算核心芯片组中不存在差值等于0,且存在差值大于零的第一计算核心芯片组,则将所述差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组作为所述目标第一计算核心芯片组。
举例说明,若待分配工作负载所需的资源数量为8个,以图5c所示进行举例说明,若t1等于4,也即有四个第一计算核心芯片组,分别为图5c中的CCD0、CCD1、CCD2以及CCD3。如图3所示,CPU资源编排模块可以从CPU资源缓存模块中获取CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量,以每一个CCD的静态的CCD拓扑信息为16个CPU为例进行说明,若CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量分别为:6个、9个、10个以及12个。因此,与CCD0、CCD1、CCD2以及CCD3差值分别为:-1、1、2以及4,四个第一计算核心芯片组中不存在差值等于0,且存在差值大于零的第一计算核心芯片组。具体地,则将差值大于零第一计算核心芯片组中差值最小的第一计算核心芯片组作为目标第一计算核心芯片组,将CCD1、CCD2以及CCD3中差值最小的CCD1作为目标第一计算核心芯片组。策略执行模块将待分配工作负载绑定到CCD1上。
其中,606具体包括步骤6061-6065中的内容:
6061:将差值最大的第一核心计算芯片组作为待分配工作负载的目标第一核心计算芯片组中的一个。
6062:基于差值最大的第一核心计算芯片组的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量。
具体地,若所述t1个第一计算核心芯片组中不存在差值等于0,且不存在差值大于0的第一计算核心芯片组,则将差值最大的第一核心计算芯片组分配给待分配工作负载,然后基于差值最大的第一核心计算芯片组的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量,举例说明,若待分配工作负载所需的资源数量为8个,差值最大的第一核心计算芯片组的可分配资源为5个CPU,则新的所需的资源数量为3个。
6063:基于所述差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组。
具体地,新的t1个第一计算核心芯片组是t1个第一计算核心芯片组中除差值最大的第一核心计算芯片组外的所有第一核心计算芯片组。
6064:获取所述新的t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与所述新的所需的资源数量的新的差值;
6065:将新的t1个第一计算核心芯片组中每个第一计算核心芯片组新的差值输入602。
应说明,将新的t1个第一计算核心芯片组中每个第一计算核心芯片组新的差值输入602之后,将新的t1个第一计算核心芯片组重新作为602中的t1个第一计算核心芯片组,将每个第一计算核心芯片组新的差值重新作为每个第一计算核心芯片组差值。
可选地,对若t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组进行举例说明,若待分配工作负载所需的资源数量为8个,以图5d所示进行举例说明,若t1等于4,也即有四个第一计算核心芯片组,分别为图5d中的CCD0、CCD1、CCD2以及CCD3。如图3所示,CPU资源编排模块可以从CPU资源缓存模块中获取CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量,以每一个CCD的静态的CCD拓扑信息为16个CPU为例进行说明,若CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量分别为:2个、3个、4个以及5个,也即t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组。因此,执行601,确定CCD0、CCD1、CCD2以及CCD3与待分配工作负载所需的资源数量的差值分别为:-6、-5、-4以及-3,四个第一计算核心芯片组中不存在差值等于0,且不存在差值大于零的第一计算核心芯片组。执行602,得到若否,则执行604,执行604,得到若否,则执行606。进一步地,执行606,首先执行6061,将差值最大的第一核心计算芯片组作为待分配工作负载的目标第一核心计算芯片组中的一个,即将差值最大的第一核心计算芯片组中编号最小的第一核心计算芯片组进行分配给待分配工作负载,由于差值最大的第一核心计算芯片组只有一个,因此,直接将CCD0、CCD1、CCD2以及CCD3中差值最大的CCD3分配给待分配工作负载。更进一步地,执行6062,基于差值最大的第一核心计算芯片的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量,也即为待分配工作负载分配5个CPU资源之后,新的所需的资源数量为3个。更进一步地,执行6063,基于所述差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组,具体地,新的t1个第一计算核心芯片组是t1个第一计算核心芯片组中除差值最大的第一核心计算芯片组外的所有第一核心计算芯片组。也即,将CCD0、CCD1、CCD2作为新的t1个第一计算核心芯片组。
更进一步地,执行6064,获取新的第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与新的所需的资源数量的新的差值。继续沿用上一个例子,新的第一计算核心芯片组是指CCD0、CCD1以及CCD2。因此,CCD0、CCD1以及CCD2与新的所需的资源数量对应的新的差值分别为-1,0以及1,将新的差值输入602,继续执行602,新的差值满足步骤602,即新的第一计算核心芯片组中存在差值等于0的第一计算核心芯片组(即CCD1),因此,执行603,确定出将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为所述目标第一计算核心芯片组,再结合执行6061确定出的差值最大的第一核心计算芯片组(CCD3)作为待分配工作负载的目标第一核心计算芯片组中的一个,因此,将CCD1和CCD3作为待分配工作负载的目标第一计算核心芯片组,策略执行模块将待分配工作负载绑定到CCD1和CCD3上。
更进一步地,若新的第一计算核心芯片组只包括CCD0和CCD2,则CCD0和CCD2与新的所需的资源数量对应的新的差值分别为-1和1,CCD0和CCD2中不存在差值等于0,且存在差值大于零的第一计算核心芯片组,因此,新的差值在执行602之后得到的结果为,若否,则执行604,具体地,确定t1个第一计算核心芯片组中是否存在差值大于零的第一计算核心芯片组。若是,则执行605,由于存在差值大于零的第一计算核心芯片组,因此,继续执行605,将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组(CCD2)作为目标第一计算核心芯片组,再结合执行6061确定出的差值最大的第一核心计算芯片组(CCD3)作为待分配工作负载的目标第一核心计算芯片组中的一个,因此,将CCD2和CCD3作为待分配工作负载的目标第一计算核心芯片组,策略执行模块将待分配工作负载绑定到CCD2和CCD3上。
可选地,对若第二计算核心芯片组的可分配资源数量小于待分配工作负载所需的资源数量,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组进行举例说明,若待分配工作负载所需的资源数量为35个,以图5e所示进行举例说明,若t1等于4,也即有四个第一计算核心芯片组,分别为图5e中的CCD0、CCD1、CCD2以及CCD3。如图3所示,CPU资源编排模块可以从CPU资源缓存模块中获取CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量,以每一个CCD的静态的CCD拓扑信息为16个CPU为例进行说明,若CCD0、CCD1、CCD2以及CCD3中的可分配CPU数量分别为:3个、5个、16个以及16个,也即t1个第一计算核心芯片组中存在2个未分配工作负载的第一计算核心芯片组,且每个第二计算核心芯片组的可分配资源数量小于待分配工作负载所需的资源数量。因此,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组。具体地,执行601,确定CCD0、CCD1、CCD2以及CCD3与待分配工作负载所需的资源数量的差值分别为:-32、-30、-19以及-19,四个第一计算核心芯片组中不存在差值等于0,且不存在差值大于零的第一计算核心芯片组。执行602,得到若否,则执行604,执行604,得到若否,则执行606。进一步地,执行606,首先执行6061,将差值最大的第一核心计算芯片组作为待分配工作负载的目标第一核心计算芯片组中的一个,则将差值最大的第一核心计算芯片组分配,由于差值最大的第一核心计算芯片组有两个,因此,可以将差值最大的第一核心计算芯片组中编号最小的第一核心计算芯片组分配给待分配工作负载,也即将CCD0、CCD1、CCD2以及CCD3中差值最大的CCD2和CCD3中编号最小的CCD2分配给待分配工作负载。更进一步地,执行6062,基于差值最大的第一核心计算芯片的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量,也即为待分配工作负载分配16个CPU资源之后,新的所需的资源数量为19个。更进一步地,执行6063,基于所述差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组,具体地,新的t1个第一计算核心芯片组是t1个第一计算核心芯片组中除差值最大的第一核心计算芯片组外的所有第一核心计算芯片组。也即,将CCD0、CCD1、CCD3作为新的t1个第一计算核心芯片组。
进一步地,执行6064,获取新的第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与新的所需的资源数量的新的差值。继续沿用上一个例子,获取CCD0、CCD1以及CCD3的可分配资源数量与新的所需的资源数量的新的差值分别为:-16、-14以及-3,可知CCD0、CCD1以及CCD3的新的差值中不存在差值等于0,且不存在差值大于0的第一计算核心芯片组。将新的差值输入602,继续执行602,得到若否,执行604,继续得到若否,执行606。根据前述6061中确定CCD2的方法,可以确定出将CCD3作为待分配工作负载中的目标第一核心芯片组中的一个,本申请在此不再赘述。进一步地执行6062:基于差值最大的第一核心计算芯片组的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量,将CCD3和CCD2分配给待分配工作负载之后,待分配工作负载新的所需的资源数量为3个。
更进一步地,执行6063:基于所述差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组,即将CCD0、CCD1作为新的t1个第一计算核心芯片组。执行6064:获取所述新的t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与所述新的所需的资源数量的新的差值,具体地,CCD0、CCD1与该新的所需的资源数量的新的差值分别为:0和2。更进一步地,执行6065,即将CCD0、CCD1的新的差值输入到602中,执行602:确定t1个第一计算核心芯片组中是否存在差值等于0的第一计算核心芯片组。若是,则执行603,若否,则执行604,由于CCD0、CCD1中存在一个差值等于0的第一计算核心芯片组,因此,执行603,则将差值等于0的CCD0作为目标第一计算核心芯片组中的一个。基于上述步骤,已将所需的资源数量为35个的待分配工作负载分配完毕,所需的资源数量为35个的待分配工作负载的目标第一计算核心芯片组分别是CCD0、CCD2以及CCD3。策略执行模块将待分配工作负载绑定到CCD0、CCD2以及CCD3上。
可以看出,在本申请实施例中,若t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组。当不存在未分配工作负载的第一计算核心芯片组时,为了减少CPU的碎片率以及保证待分配工作负载能够有对应的CCD运行,基于待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为待分配工作负载分配目标第一计算核心芯片组,可以降低CPU的碎片率,保证待分配工作负载能够有对应的CCD运行,并且提升CPU利用率。
在本申请的一种实施方式中,还提供一种低优先级的工作负载的资源分配方法。
若所述待分配工作负载为低优先级的工作负载,基于多个第三计算核心芯片组中的每个第三计算核心芯片组中绑定的工作负载的编排策略、每个第三计算核心芯片组中绑定的工作负载的状态以及每个第三计算核心芯片组的可分配资源,确定可用的第三计算核心芯片组,具体地,将所述多个第三计算核心芯片组中存在可分配资源的第三计算核心芯片组,以及不存在可分配资源且绑定的工作负载满足预设要求的第三计算核心芯片组,均作为所述可用的第三计算核心芯片组,其中,所述预设要求为工作负载的编排策略为共享型且工作负载的工作状态为睡眠状态;其中,所述多个第三计算核心芯片组为所述多个非一致性内存访问节点对应的所有计算核心芯片组,第一计算核心芯片组是多个第三计算核心芯片组中的一部分。
基于所述可用的第三计算核心芯片组,确定所述待分配工作负载对应的目标第三计算核心芯片组,具体地,可以在可用的第三计算核心芯片组中随机选择一个第三计算核心芯片组作为目标第三计算核心芯片组。
可以看出,在本申请实施例中,可以将不存在可分配资源且绑定的工作负载满足预设要求的第三计算核心芯片组,均作为所述可用的第三计算核心芯片组,若计算核心芯片组中绑定的高优先级的工作负载的编排策略为共享型且该工作负载的工作状态为睡眠状态,此时,可以将低优先级的工作负载与该高优先级的工作负载进行混部,也即将该低优先级的工作负载运行在高优先级的工作负载对应的CCD上,提供灵活的资源编排策略,工作负载可以选择符合自身属性的编排策略,在保证服务性能的前提下,降低CPU的碎片率,并且提升CPU利用率。
在本申请的一种实施方式中,单机代理的CPU编排模块还可以提供一种容错机制。
可选地,获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点,待分配工作负载需要绑定的第一非一致性内存访问节点可以是由调度器确定的,也可以是由单机代理中的CPU编排模块确定的。CPU编排模块从调度器获取待分配工作负载需要绑定的多个非一致性内存访问节点中的第二非一致性内存访问节点;CPU编排模块的容错机制包括:基于第二非一致性内存访问节点的可分配资源数量,确定待分配工作负载需要绑定的第一非一致性内存访问节点。
具体地,若第二非一致性内存访问节点上的可分配资源数量大于或等于待分配工作负载的资源数量,则将第二非一致性内存访问节点作为第一非一致性内存访问节点;
若第二非一致性内存访问节点上的可分配资源数量小于待分配工作负载的资源数量,则从第二非一致性内存访问节点对应的工作节点中的其他的非一致性内存访问节点中确定第一非一致性内存访问节点,其中,第一非一致性内存访问节点的可分配资源数量大于待分配工作负载的资源数量。
可以看出,在本申请实施例中,通过CPU编排模块的容错机制,基于第二非一致性内存访问节点的可分配资源数量,确定待分配工作负载需要绑定的第一非一致性内存访问节点,若第二非一致性内存访问节点上的可分配资源数量大于或等于待分配工作负载的资源数量,则将第二非一致性内存访问节点作为第一非一致性内存访问节点;若第二非一致性内存访问节点上的可分配资源数量小于待分配工作负载的资源数量,则从第二非一致性内存访问节点对应的工作节点中的其他的非一致性内存访问节点中确定第一非一致性内存访问节点。若调度器确定的第二非一致性内存访问节点上的可分配资源数量小于待分配工作负载的资源数量,CPU编排模块会为待分配工作负载从其他的非一致性内存访问节点中确定第一非一致性内存访问节点,并且,第一非一致性内存访问节点的可分配资源数量大于待分配工作负载的资源数量。避免待分配工作负载因为CPU数量的限制而导致性能退化,提升待分配工作负载的稳定性。
进一步地,若待分配工作负载的类型为内存密集型,则第一非一致性内存访问节点上未绑定其他内存密集型工作负载。具体地,若图3中的调度器确定内存密集型的待分配工作负载应当绑定的非一致性内存访问节点,不仅只根据工作节点中的节点拓扑信息,还会根据工作节点中每个NUMA节点上的工作负载类型,确定内存密集型的待分配工作负载应当绑定的非一致性内存访问节点。具体地,调度器根据该工作节点中的节点拓扑信息以及每个NUMA节点上的工作负载类型,确定待分配工作负载需要绑定的第一非一致性内存访问节点,第一非一致性内存访问节点中的可分配资源数量应当大于待分配工作负载所需的资源数量,且第一非一致性内存访问节点上未绑定其他内存密集型工作负载。
更进一步地,若待分配工作负载的类型为内存密集型,且调度器为待分配工作负载分配的非一致性内存访问节点的可分配资源数量小于待分配工作负载所需的资源数量,CPU资源编排模块可以基于工作节点中其他的非一致性内存访问节点的可分配资源数量,以及已绑定的工作负载类型,确定第一非一致性内存访问节点,其中,第一非一致性内存访问节点的可分配资源数量大于待分配工作负载的资源数量,且第一非一致性内存访问节点上未绑定其他内存密集型工作负载。
可以看出,在本申请实施例中,通过调度器与单机代理中的CPU编排模块协同配合,将内存密集型工作负载分配到不同的NUMA节点上,实现内存密集型工作负载的均衡调度,避免同一个NUMA节点上存在多个内存密集型工作负载而导致的内存带宽限制,保持内存密集型工作负载的业务性能的稳定性。
参阅图7,图7为本申请实施例提供的一种资源分配装置的功能单元组成框图。资源分配装置700包括:收发单元701和处理单元702;
收发单元701,用于获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点;
处理单元702,用于基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组;
在本申请的一个实施方式中,在基于所述待分配工作负载所需的资源数量和所述非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组方面,处理单元702,具体用于:
若所述t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,基于每个第二计算核心芯片组的可分配资源数量以及所述待分配工作负载所需的资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组;
若所述t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组。
在本申请的一个实施方式中,在基于每个第二计算核心芯片组的可分配资源数量以及所述待分配工作负载所需的资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组方面,处理单元702,具体用于:
若第二计算核心芯片组的可分配资源数量大于或等于所述待分配工作负载所需的资源数量,则将所述t2个第二计算核心芯片组中编号最小的第二计算核心芯片组作为所述目标第一计算核心芯片组;
若第二计算核心芯片组的可分配资源数量小于所述待分配工作负载所需的资源数量,则基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组。
在本申请的一个实施方式中,在基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组方面,处理单元702,具体用于:
确定每个第一计算核心芯片组的可分配资源数量与所述待分配工作负载所需的资源数量的差值;
基于每个第一计算核心芯片组对应的差值,确定目标第一计算核心芯片组。
在本申请的一个实施方式中,在基于每个第一计算核心芯片组对应的差值,确定目标第一计算核心芯片组方面,处理单元702,具体用于:
步骤a:若所述t1个第一计算核心芯片组中存在差值等于0的第一计算核心芯片组,将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为所述目标第一计算核心芯片组;
步骤b:若所述t1个第一计算核心芯片组中不存在差值等于0,且存在差值大于零的第一计算核心芯片组,则将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组作为所述目标第一计算核心芯片组;
步骤c:若所述t1个第一计算核心芯片组中不存在对应的差值等于0,且不存在对应的差值大于0的第一计算核心芯片组,基于差值最大的第一核心计算芯片组的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量;基于差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组;获取所述新的t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与所述新的所需的资源数量的新的差值;基于新的差值,确定是否满足步骤a或步骤b,若满足步骤a,则将将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组,以及差值最大的第一核心计算芯片组,作为所述目标第一计算核心芯片组;若满足步骤b,将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组,以及差值最大的第一核心计算芯片组,作为所述目标第一计算核心芯片组;若不满足步骤a,且不满足步骤b,则重复执行步骤c,直至确定所述目标第一计算核心芯片组。
在本申请的一个实施方式中,在获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点方面,处理单元702,具体用于:
从调度器获取所述待分配工作负载需要绑定的所述多个非一致性内存访问节点中第二非一致性内存访问节点;
基于所述第二非一致性内存访问节点的可分配资源数量,确定所述待分配工作负载需要绑定的所述第一非一致性内存访问节点。
在本申请的一个实施方式中,在基于所述第二非一致性内存访问节点的可分配资源数量,确定待分配工作负载需要绑定的第一非一致性内存访问节点方面,处理单元702,具体用于:
若所述第二非一致性内存访问节点上的可分配资源数量大于或等于所述待分配工作负载的资源数量,则将所述第二非一致性内存访问节点作为所述第一非一致性内存访问节点;
若所述第二非一致性内存访问节点上的可分配资源数量小于所述待分配工作负载的资源数量,则从所述第二非一致性内存访问节点对应的工作节点中的其他的非一致性内存访问节点中确定所述第一非一致性内存访问节点,其中,所述第一非一致性内存访问节点的可分配资源数量大于所述待分配工作负载的资源数量。
在本申请的一个实施方式中,所述待分配工作负载的优先级为高优先级。
在本申请的一个实施方式中,若所述待分配工作负载的类型为内存密集型,则所述第一非一致性内存访问节点上未绑定其他内存密集型工作负载。
在本申请的一个实施方式中,处理单元702,还具体用于:
若所述待分配工作负载为低优先级的工作负载,基于多个第三计算核心芯片组中的每个第三计算核心芯片组中绑定的工作负载的编排策略、每个第三计算核心芯片组中绑定的工作负载的状态以及每个第三计算核心芯片组的可分配资源,确定可用的第三计算核心芯片组,其中,所述多个第三计算核心芯片组为所述多个非一致性内存访问节点对应的所有计算核心芯片组;
基于所述可用的第三计算核心芯片组,确定所述待分配工作负载对应的目标第三计算核心芯片组。
在本申请的一个实施方式中,在基于多个第三计算核心芯片组中的每个第三计算核心芯片组中绑定的工作负载的编排策略、每个第三计算核心芯片组中绑定的工作负载的状态以及每个第三计算核心芯片组的可分配资源,确定可用的第三计算核心芯片组工作状态方面,处理单元702,具体用于:
将所述多个第三计算核心芯片组中存在可分配资源的第三计算核心芯片组,以及不存在可分配资源且绑定的工作负载满足预设要求的第三计算核心芯片组,均作为所述可用的第三计算核心芯片组,其中,所述预设要求为工作负载的编排策略为共享型且工作负载的工作状态为睡眠状态。
参阅图8,图8为本申请实施例提供的一种电子设备的结构示意图。如图8所示,电子设备800包括收发器801、处理器802和存储器803。它们之间通过总线804连接。存储器803用于存储计算机程序和数据,并可以将存储器803存储的数据传输给处理器802。
处理器802用于读取存储器803中的计算机程序执行以下操作:
若待分配工作负载为高优先级的工作负载,控制收发器801获取所述待分配工作负载需要绑定的第一非一致性内存访问节点,其中,所述第一非一致性内存访问节点是所述多个工作节点中的一个;
基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。
具体地,上述收发器801可为图7的实施例的资源分配装置700的收发单元701,上述处理器802可以为图7的实施例的资源分配装置700的处理单元702。
具体地,上述收发器801可为图7的实施例的资源分配装置700的收发单元701,上述处理器802可以为图7的实施例的资源分配装置700的处理单元702。因此,上述处理器802的具体功能可以参照上述处理单元702的具体功能,上述收发器801的具体功能可以参照上述收发单元701的具体功能。
应理解,本申请中的电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(MobileInternet Devices,简称:MID)或穿戴式设备等。上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备。在实际应用中,上述电子设备还可以包括:智能车载终端、计算机设备等等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种资源分配方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种资源分配方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种资源分配方法,其特征在于,所述方法应用于工作节点,所述工作节点包括多个非一致性内存访问节点,所述方法包括:
获取所述多个非一致性内存访问节点中待分配工作负载需要绑定的第一非一致性内存访问节点;
基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待分配工作负载所需的资源数量和所述非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组,包括:
若所述t1个第一计算核心芯片组中存在未分配工作负载的t2个第二计算核心芯片组,基于每个第二计算核心芯片组的可分配资源数量以及所述待分配工作负载所需的资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组;
若所述t1个第一计算核心芯片组中不存在未分配工作负载的第一计算核心芯片组,基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组。
3.根据权利要求2所述的方法,其特征在于,所述基于每个第二计算核心芯片组的可分配资源数量以及所述待分配工作负载所需的资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组,包括:
若第二计算核心芯片组的可分配资源数量大于或等于所述待分配工作负载所需的资源数量,则将所述t2个第二计算核心芯片组中编号最小的第二计算核心芯片组作为所述目标第一计算核心芯片组;
若第二计算核心芯片组的可分配资源数量小于所述待分配工作负载所需的资源数量,则基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述待分配工作负载所需的资源数量和每个第一计算核心芯片组的可分配资源数量,为所述待分配工作负载分配所述目标第一计算核心芯片组,包括:
确定每个第一计算核心芯片组的可分配资源数量与所述待分配工作负载所需的资源数量的差值;
基于每个第一计算核心芯片组的差值,确定目标第一计算核心芯片组。
5.根据权利要求4所述的方法,其特征在于,所述基于每个第一计算核心芯片组的差值,确定目标第一计算核心芯片组,包括:
步骤a:若所述t1个第一计算核心芯片组中存在差值等于0的第一计算核心芯片组,将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组作为所述目标第一计算核心芯片组;
步骤b:若所述t1个第一计算核心芯片组中不存在差值等于0,且存在差值大于零的第一计算核心芯片组,则将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组作为所述目标第一计算核心芯片组;
步骤c:若所述t1个第一计算核心芯片组中不存在差值等于0,且不存在差值大于0的第一计算核心芯片组,基于差值最大的第一核心计算芯片组的可分配资源,更新待分配工作负载所需的资源数量,得到新的所需的资源数量;基于差值最大的第一核心计算芯片组更新所述t1个第一计算核心芯片组,得到新的t1个第一计算核心芯片组;获取所述新的t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量与所述新的所需的资源数量的新的差值;基于新的差值,确定是否满足步骤a或步骤b,若满足步骤a,则将将差值等于0的第一计算核心芯片组中编号最小的第一计算核心芯片组,以及差值最大的第一核心计算芯片组,作为所述目标第一计算核心芯片组;若满足步骤b,将差值大于零的第一计算核心芯片组中差值最小的第一计算核心芯片组,以及差值最大的第一核心计算芯片组,作为所述目标第一计算核心芯片组;若不满足步骤a,且不满足步骤b,则重复执行步骤c,直至确定所述目标第一计算核心芯片组。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述获取所述多个非一致性内存访问节点中所述待分配工作负载需要绑定的第一非一致性内存访问节点,包括:
从调度器获取所述待分配工作负载需要绑定的所述多个非一致性内存访问节点中第二非一致性内存访问节点;
基于所述第二非一致性内存访问节点的可分配资源数量,确定所述待分配工作负载需要绑定的所述第一非一致性内存访问节点。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第二非一致性内存访问节点的可分配资源数量,确定待分配工作负载需要绑定的所述第一非一致性内存访问节点,包括:
若所述第二非一致性内存访问节点上的可分配资源数量大于或等于所述待分配工作负载的资源数量,则将所述第二非一致性内存访问节点作为所述第一非一致性内存访问节点;
若所述第二非一致性内存访问节点上的可分配资源数量小于所述待分配工作负载的资源数量,则从所述第二非一致性内存访问节点对应的工作节点中的其他的非一致性内存访问节点中确定所述第一非一致性内存访问节点,其中,所述第一非一致性内存访问节点的可分配资源数量大于所述待分配工作负载的资源数量。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述待分配工作负载的优先级为高优先级。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述待分配工作负载为低优先级的工作负载,基于多个第三计算核心芯片组中的每个第三计算核心芯片组中绑定的工作负载的编排策略、每个第三计算核心芯片组中绑定的工作负载的状态以及每个第三计算核心芯片组的可分配资源,确定可用的第三计算核心芯片组,其中,所述多个第三计算核心芯片组为所述多个非一致性内存访问节点对应的所有计算核心芯片组;
基于所述可用的第三计算核心芯片组,确定所述待分配工作负载对应的目标第三计算核心芯片组。
10.根据权利要求9所述的方法,其特征在于,所述基于多个第三计算核心芯片组中的每个第三计算核心芯片组中绑定的工作负载的编排策略、每个第三计算核心芯片组中绑定的工作负载的状态以及每个第三计算核心芯片组的可分配资源,确定可用的第三计算核心芯片组工作状态,包括:
将所述多个第三计算核心芯片组中存在可分配资源的第三计算核心芯片组,以及不存在可分配资源且绑定的工作负载满足预设要求的第三计算核心芯片组,均作为所述可用的第三计算核心芯片组,其中,所述预设要求为工作负载的编排策略为共享型且工作负载的工作状态为睡眠状态。
11.根据权利要求1-10任一项所述的方法,其特征在于,
若所述待分配工作负载的类型为内存密集型,则所述第一非一致性内存访问节点上未绑定其他内存密集型工作负载。
12.一种资源分配装置,其特征在于,所述装置应用于工作节点,所述装置包括:收发单元和处理单元;
所述收发单元,用于获取所述多个非一致性内存访问节点中待分配工作负载需要绑定的第一非一致性内存访问节点;
所述处理单元,用于基于所述待分配工作负载所需的资源数量和所述第一非一致性内存访问节点中t1个第一计算核心芯片组中每个第一计算核心芯片组的可分配资源数量,从所述t1个第一计算核心芯片组中为所述待分配工作负载分配目标第一计算核心芯片组。
13.一种电子设备,其特征在于,包括:处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如权利要求1-11中任一项的方法。
14.一种计算机可读存储介质,其特征在于,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如权利要求1-11中任一项的方法。
CN202410608776.5A 2024-05-16 2024-05-16 资源分配方法、装置、电子设备及存储介质 Pending CN118502938A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410608776.5A CN118502938A (zh) 2024-05-16 2024-05-16 资源分配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410608776.5A CN118502938A (zh) 2024-05-16 2024-05-16 资源分配方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN118502938A true CN118502938A (zh) 2024-08-16

Family

ID=92247824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410608776.5A Pending CN118502938A (zh) 2024-05-16 2024-05-16 资源分配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN118502938A (zh)

Similar Documents

Publication Publication Date Title
US11231955B1 (en) Dynamically reallocating memory in an on-demand code execution system
CN108667748B (zh) 一种控制带宽的方法、装置、设备和存储介质
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US8195798B2 (en) Application server scalability through runtime restrictions enforcement in a distributed application execution system
EP2919116B1 (en) Global memory sharing method and device and communication system
CN107426274B (zh) 基于时序的业务应用及监控分析调度的方法和系统
CN115408100B (zh) 容器集群调度的方法、装置、设备及存储介质
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
US20160070475A1 (en) Memory Management Method, Apparatus, and System
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN107577534A (zh) 一种资源调度方法及装置
CN111798113A (zh) 资源分配方法、装置、存储介质和电子设备
CN111092921A (zh) 数据采集方法、装置及存储介质
CN111857992A (zh) 一种Radosgw模块中线程资源分配方法和装置
CN112600761A (zh) 一种资源分配的方法、装置及存储介质
CN109002364A (zh) 进程间通信的优化方法、电子装置以及可读存储介质
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
WO2024245037A1 (zh) 虚拟计算资源的调度方法及控制面组件
CN116450298A (zh) 一种gpu任务细粒度调度方法及相关装置
CN114327862B (zh) 一种内存分配方法、装置、电子设备及存储介质
CN118502938A (zh) 资源分配方法、装置、电子设备及存储介质
CN111338782A (zh) 面向共享式突发数据缓存的基于竞争感知的节点分配方法
CN111813564B (zh) 集群资源管理方法、装置及容器集群管理系统
CN115794396A (zh) 资源分配的方法、系统和电子设备
CN114390058A (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