CN114281516A - 一种基于numa属性的资源分配方法及装置 - Google Patents

一种基于numa属性的资源分配方法及装置 Download PDF

Info

Publication number
CN114281516A
CN114281516A CN202011035169.2A CN202011035169A CN114281516A CN 114281516 A CN114281516 A CN 114281516A CN 202011035169 A CN202011035169 A CN 202011035169A CN 114281516 A CN114281516 A CN 114281516A
Authority
CN
China
Prior art keywords
resource
numa
management
management resource
node
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
CN202011035169.2A
Other languages
English (en)
Inventor
贾金科
徐安
秦洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202011035169.2A priority Critical patent/CN114281516A/zh
Priority to PCT/CN2021/120706 priority patent/WO2022063273A1/zh
Publication of CN114281516A publication Critical patent/CN114281516A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

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

一种基于NUMA属性的资源分配方法及装置,应用于云计算领域,该方法包括:获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU。通过本申请的方法,计算节点可以根据管理资源的NUMA属性,配置不同的资源分配策略,提高资源分配的灵活性,同时提高资源利用率。

Description

一种基于NUMA属性的资源分配方法及装置
技术领域
本申请涉及云计算技术领域,尤其涉及一种基于NUMA属性的资源分配方法及装置。
背景技术
目前,云管理平台使用的服务器架构为非一致性内存访问(non-uniform memoryaccess,NUMA)架构,基于该NUMA架构可将服务器的中央处理器(central processingunit,CPU)和内存划分为多个NUMA节点。其中,每个NUMA节点中有多个CPU核,有一部分CPU核用于虚拟机运行,另外一部分CPU核用于运行云管理平台的管理进程。
由于在不同的NUMA节点上,管理进程所占的CPU核数量不同,使得虚拟机的可用资源为不确定的,这样会使得虚拟机发放时,资源碎片过多,导致资源利用率比较低。
发明内容
本申请提供一种基于NUMA属性的资源分配方法及装置,用以提高资源利用率。
第一方面,本申请提供一种基于NUMA属性的资源分配方法,该方法可应用于计算节点,具体的,该方法包括:获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;根据获取的资源分配策略和管理资源的NUMA属性,为管理资源分配所述计算节点的中央处理器CPU。
通过上述技术方案,计算节点可以根据管理资源的NUMA属性,配置不同的资源分配策略,这样能够提高资源分配的灵活性,同时可以减少资源碎片,提高资源利用率。
在一种可能的设计中,管理资源包括第一管理资源、第二管理资源以及第三管理资源。其中,第一管理资源的属性包括:需要分配计算节点的第一NUMA节点的CPU至第一管理资源;第二管理资源的属性包括:可以分配计算节点中的任意一个NUMA节点的CPU至第二管理资源;第三管理资源的属性包括:可以在计算节点中跨NUMA节点分配CPU至第三管理资源。
在上述技术方案中,不同管理资源的NUMA属性不同,针对不同的管理资源,可分配的NUMA节点可能会相同或不同,这样可按照管理资源的NUMA节点属性将管理资源分配到NUMA节点。
在一种可能的设计中,资源分配策略包括均衡式资源分配策略,根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU,包括:
按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,分别将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点、第二NUMA节点以及第三NUMA节点。
通过上述技术方案,计算节点可以根据管理资源的NUMA属性将管理资源分配到不同的NUMA节点,并且按照均衡式资源分配策略对管理资源进行分配时,可使得不同的NUMA节点上管理资源所占的CPU核为均衡的,这样能够减少计算节点上的资源碎片,提高资源利用率。并且能够使得每个NUMA节点上虚拟机可用的CPU核为相等的,从而提高虚拟机的创建规格。
在一种可能的设计中,所述方法还包括:当所述第三管理资源分配到所述第三NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至所述第三管理资源,或从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至所述第三管理资源,或从第四NUMA节点分配H个CPU核至所述第三管理资源。
通过上述技术方案,计算节点可根据剩余的第三管理资源所占的CPU核个数,将剩余的第三管理资源分配到CPU核占用比较少的NUMA节点,或者还可以将剩余的第三管理资源平均分配到其它的NUMA节点,这样能够保证不同NUMA节点上管理资源所占的CPU核均衡,提高资源利用率。
在一种可能的设计中,所述资源分配策略包括集中式资源分配策略,根据所述集中式资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的CPU,包括:按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,依次将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点。
通过上述技术方案,计算节点可将不同NUMA属性的管理资源集中分配到一个NUMA节点,这样可以提高计算节点的性能,并且在单NUMA上可以创建更大规格的虚拟机。
在一种可能的设计中,所述方法还包括:当所述第三管理资源分配到所述第一NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至所述第三管理资源。
通过上述技术方案,如果第三管理资源没有分配完,则可以将剩余的第三管理资源分配到其它的NUMA节点上,从而避免资源浪费,提高资源利用率。
第二方面,本申请提供一种基于NUMA属性的资源分配装置,包括:获取单元,所述获取单元用于获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;分配单元,用于根据所述获取单元获取到的所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU。
在一种可能的设计中,所述管理资源包括第一管理资源、第二管理资源以及第三管理资源;所述第一管理资源的属性包括:需分配所述计算节点的第一NUMA节点的CPU至所述第一管理资源;所述第二管理资源的属性包括:可分配所述计算节点的任意一个NUMA节点的CPU至所述第二管理资源;所述第三管理资源的属性包括:可在所述计算节点中跨NUMA节点分配CPU至所述第三管理资源。
在一种可能的设计中,当所述资源分配策略包括均衡式资源分配策略时,所述分配单元具体用于按如下方式根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU:按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,分别将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点、第二NUMA节点以及第三NUMA节点。
在一种可能的设计中,所述分配单元还用于:当所述第三管理资源分配到所述第三NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至所述第三管理资源,或从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至所述第三管理资源,或从第四NUMA节点分配H个CPU核至所述第三管理资源。
在一种可能的设计中,当所述资源分配策略包括集中式资源分配策略时,所述分配单元具体用于按如下方式根据所述集中式资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的CPU:按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,依次将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点。
在一种可能的设计中,所述分配单元还用于:当所述第三管理资源分配到所述第一NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至所述第三管理资源。
第三方面,本申请提供一种基于NUMA属性的资源分配装置,该装置具有实现第一方面或第一方面任一种可能实现方式中的资源分配方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
所述装置包括通信接口、处理器和存储器,所述通信接口用于接收和发送数据,所述处理器被配置为支持所述装置执行上述第一方面或第一方面任一种可能实现方式中相应的功能。所述存储器与所述处理器耦合,其保存所述装置必要的程序指令。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面及各实施方式中的方法。
第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及各实施方式中的方法。
第六方面,提供一种芯片,所述芯片中的逻辑用于执行上述第一方面及各实施方式中的方法。
关于第二方面至第六方面或第二方面至第六方面的各种实施方式所带来的技术效果,可以参考对于第一方面或第一方面的各种实施方式的技术效果的介绍,在此处不作过多赘述。
附图说明
图1为本申请实施例应用到云场景下的一种系统架构示意图;
图2为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图;
图3为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图;
图4为本申请实施例提供的一种资源分配方法示意图;
图5为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图;
图6为本申请实施例提供的一种基于NUMA属性的资源分配装置示意图;
图7为本申请实施例提供的另一种基于NUMA属性的资源分配装置示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
为了便于理解,示例性的给出了与本申请相关概念的说明以供参考,如下所示:
1)非一致性内存访问NUMA:是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问它自己的本地内存的速度比非本地内存(内存位于另一个处理器,或者是处理器之间共享的内存)快一些。
2)虚拟机:利用虚拟化技术将一台物理主机模拟为多台逻辑主机(称为虚拟机)。虚拟机指通过软件模拟的具有完整硬件系统功能的、可以运行在一个完全隔离环境中的完整计算机系统中的逻辑主机。
3)计算节点:在本申请中可以理解为主机或者服务器。
本申请实施例涉及的至少一个,包括一个或者多个;其中,多个是指大于或者等于两个。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述对象的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
参阅图1所示,为本申请实施例应用到云场景下的一种系统架构示意图。在图1所示的系统架构下,该服务器可被分为两个Chip(芯片),例如为CPU0、CPU1,其中,每个Chip下可包括NUMA节点。示例性的,图1所示的服务器中可包括4个NUMA节点,每个NUMA节点中有多个处理器核(core0、core1等)。这些处理器核中有一部分可分配给管理资源使用,另外一部分可分配给虚拟机使用。
以NUMA node0为例来说,core0、core1可以分配给管理资源使用,core2、core3…core31可分配给虚拟机使用。当然,可以理解的是,上述示意图仅是一种示意性说明,处理器核的分配情况并不限于此,例如管理资源也可以使用core0、core1…core20,core21…core31可以供虚拟机使用等,本申请对此不作具体限定。
在云场景下,为了避免虚拟机运行和管理资源之间的影响,需要将管理资源进行隔离。基于上述NUMA架构,在进行管理资源隔离时,需要在不同的NUMA节点隔离出不同的处理器核给管理资源使用。而由于在不同的NUMA节点上分配给管理资源的处理器核的数量是不确定的,使得分配给虚拟机的处理器核的数量具有不确定性,这样会影响服务器可以分配的虚拟机的规格和数量,从而影响服务器的资源利用率。
针对上述技术问题,本申请实施例中系统管理员可以针对不同的服务器配置不同的资源分配策略,由云管理平台下发给不同的服务器,服务器接收到资源分配策略之后,可按照资源分配策略为管理资源和虚拟机分配服务器的处理器核,以最大化的利用服务器的资源,提高资源利用率。
参阅图2所示,为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图,参阅图2所示,该方法可包括如下步骤:
S201:获取云管理平台下发的资源分配策略以及管理资源的NUMA属性。
需要说明的是,管理资源可以包括多个管理进程,并且不同的管理进程可能对应不同的NUMA属性。
S202:根据资源分配策略和管理资源的NUMA属性,为管理资源分配计算节点的CPU。
为了描述方便,本申请实施例中可将资源分配策略记为“均衡式资源分配策略”和“集中式资源分配策略”。
应理解,均衡式资源分配策略,可以理解为在对管理资源进行资源隔离时,使得在不同NUMA节点上的管理资源尽可能是均分的,进而使得不同的NUMA节点能够提供给虚拟机所用的资源是相等的。集中式资源分配策略,可以理解为在对管理资源进行资源隔离时,使得管理资源集中分配到某个NUMA节点上。
在本申请实施例中,管理资源可包括:第一管理资源、第二管理资源和第三管理资源。假设服务器(计算节点)上的NUMA节点包括:第一NUMA节点、第二NUMA节点和第三NUMA节点、第四NUMA节点。
考虑到不同管理资源在进行资源隔离时,资源隔离的属性要求可能不同。在本申请实施例中,不同管理资源的NUMA属性可对应如下:
第一管理资源的属性包括:需分配计算节点的第一NUMA节点的CPU至第一管理资源;第二管理资源的属性包括:可分配计算节点的任意一个NUMA节点的CPU至第二管理资源;第三管理资源的属性包括:可在计算节点中跨NUMA节点分配CPU至第三管理资源。
示例性的,作为一种可能的实现方式,可以将上述管理资源分为如下几类:
第一类:必须固定使用某个NUMA节点的管理资源,例如记为资源L。
第二类:必须使用一个NUMA节点的管理资源,例如记为资源M。
第三类:可以灵活分配在每个NUMA节点上的管理资源,例如记为资源N。
可以理解的是,第一类资源,即资源L可以对应上述第一管理资源;第二类资源,即资源M可以对应上述第二管理资源;第三类资源,即资源N可以对应上述第三管理资源。
在本申请一些实施例中,当计算节点采用均衡式资源分配策略时,可按照如下方式为管理资源分配计算节点的CPU:
按照第一管理资源、第二管理资源以及第三管理资源分别对应的NUMA属性,分别将第一管理资源、第二管理资源以及第三管理资源分配到第一NUMA节点、第二NUMA节点以及第三NUMA节点。也就是说,计算节点可以分别将三类不同NUMA属性的管理资源按照NUMA属性分配到不同的NUMA节点。
由于考虑到第三管理资源所占的CPU核可能会比较多,这样第三管理资源在上述分配的第三NUMA节点上可能分配不完,则此时需要确定第三管理资源还需占用的CPU核个数(例如,还需占用H个CPU核)。
作为一种可能的实现方式,若第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至第三管理资源。即可以将第三管理资源剩余的H个CPU核分配到第一NUMA节点和第二NUMA节点中剩余CPU核最多的NUMA节点。
作为另一种可能的实现方式,若第三管理资源还需占用H个CPU核,则可从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至第三管理资源。也就是说,将H个CPU核平均分配到第一NUMA节点和第二NUMA节点。
作为又一种可能的实现方式,若第三管理资源还需占用H个CPU核,则可从第四NUMA节点分配H个CPU核至第三管理资源。即可以将第三管理资源剩余的H个CPU核分配到其它的NUMA节点。
以下结合附图对利用均衡式资源分配策略进行资源分配的过程进行详细介绍。如图3所示,为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图,参阅图3所示,该方法包括如下步骤:
S301:将服务器上的CPU和内存划分为Q个NUMA节点。
其中,Q为大于等于1的正整数。在本申请中,在将服务器上的CPU和内存划分为Q个NUMA节点时,可以以均分的形式进行划分。换句话来说,可以将服务器上的CPU个数和内存平均分到Q个NUMA节点上,使得每个NUMA节点上的CPU个数和内存是相等的。
S302:将资源L分配到Q个NUMA节点中的固定NUMA节点。
本申请实施例中,由于资源L为使用固定NUMA节点的资源,因此,需要先将资源L分配到NUMA节点中,确定资源L所占的NUMA节点是哪个NUMA节点以及资源L在NUMA节点中所占的处理器核(CPU)个数。
需要说明的是,资源L可以为固定使用某一个NUMA节点的资源,也可以为固定使用Q个NUMA节点中的某两个NUMA节点的资源等,本申请对此不作限定。
S303:将资源M分配到与资源L所在的NUMA节点不同的NUMA节点。
对于固定使用一个NUMA节点的资源M,可以在将资源L固定在Q个NUMA节点之后分配。资源M可以单独分配在一个NUMA节点,也可以分配到资源L所在的NUMA节点,只要保证资源M位于同一个NUMA节点,即不跨NUMA节点分配即可。
作为一种示例,可以将资源M分配到与资源L不同的NUMA节点上,这样可以使得不同的NUMNA节点上都会有管理资源,而不会出现管理资源全部分配在一个NUMA节点的情况。
S304:确定资源L和资源M所占的CPU核的个数的最大值。
假设资源L所占的CPU核个数为x1,资源M所占的CPU核个数为x2。示例性的,参阅图4所示,比如先将资源L分配到Q个NUMA节点中,例如分配到NUMA0,然后分配资源M,例如可将资源M分配到NUMA2,那么NUMA0中管理资源所占的CPU核个数即为x1,NUMA2中管理资源所占的CPU核个数即为x2。
S305:将资源N分配到与资源L和资源M所在的NUMA节点不同的NUMA节点。
基于上述步骤S302和步骤S303可知,资源L和资源M在Q个NUMA节点中的位置已经确定,为了使得每个NUMA节点上的管理资源保持均衡,对于资源N的分配,优先考虑分配到非资源L和非资源M所在的NUMA节点。
本申请实施例中,可按照资源L和资源M所占的CPU核的个数最大值来分配资源N。换句话来说,可将资源L和资源M所占的CPU核的个数最大值作为每个NUMA节点中设定的管理资源所占的CPU核个数的最大值,然后基于该最大值对资源N进行分配。
需要说明的是,资源L和资源M所占的CPU核的个数也有可能相同,此时可按照资源L或者资源M所占的CPU核的个数来分配资源N。
示例性的,继续参阅图4所示,在将资源L分配到NUMA0,将资源M分配到NUMA2之后,可将资源N分配到NUMA3。当然,也可以将资源N分配到NUMA1等,本申请对此不作限定。
作为一种可能的实现方式,在分配资源N时,可以按照NUMA节点的顺序来分配。假设资源L和资源M所占的CPU核的个数的最大值为资源L所占的CPU核个数,即x1。比如将资源L分配在NUMA0,资源M分配在NUMA2,则可以先将资源N分配到NUMA1,当NUMA1中的资源N所占的CPU核个数为x1时,然后再将资源N继续分配到NUMA3。当然,也可以在非资源L和非资源M的NUMA节点中随机的分配资源N,本申请对此不作限定。
S306:判断是否有剩余的未分配的资源N。如果有剩余的资源N,则继续执行步骤S307。
本申请实施例中,当资源N所占的CPU核个数比较少(比如,资源N所占的CPU核个数小于设定阈值)时,能够分配在非资源L和非资源M的NUMA节点中。也就是说,资源N在非资源L和非资源M的NUMA节点中可以分配完成,不会存在剩余的未分配的资源N。
当资源N所占的CPU核个数比较多(资源N所占的CPU核个数大于设定阈值)时,在非资源L和非资源M的NUMA节点中分配之后,会有剩余的未分配的资源N。
S307:计算Q个NUMA节点中每个NUMA节点中管理资源所占的CPU核个数。
当资源N在非资源L和非资源M的NUMA节点中分配有剩余时,需要计算每个NUMA节点中管理资源所占的CPU核的个数。由于资源N有剩余,那么非资源L和非资源M的NUMA节点中管理资源所占的CPU核个数即为资源L和资源M所占的CPU核的个数最大值。也就是说,资源N在非资源L和非资源M的NUMA节点中分配不下时,可以分配到资源L和/或资源M所在的NUMA节点中。此时,可以计算每个NUMA节点中管理资源所占的CPU核个数。
示例性的,假设将资源L分配在NUMA0,资源M分配在NUMA2,资源L所占的CPU核个数为6个,资源M所占的CPU核个数为4个,如果资源N所占的CPU核个数为14个时,则为了保证管理资源在每个NUMA节点上所占的CPU核个数均衡,那么资源N在可分配的NUMA1、NUMA3上分别最多可以分配6个CPU核,也就是说,还有2个剩余的CPU核没有分配。
S308:确定Q个NUMA节点中管理资源所占的CPU核个数最少的NUMA节点。
S309:将剩余的资源N分配到管理资源所占的CPU核个数最少的NUMA节点。
为了保证每个NUMA节点上管理资源所占的CPU核个数的均衡,可以将剩余的资源N分配到管理资源所占的CPU核个数最少的NUMA节点。示例性的,假设资源L和资源M在NUMA节点中所占的CPU核个数的大小关系为:x1>x2,也就是说NUMA2节点中管理资源所占的CPU核个数最少,则可以将剩余的资源N分配到NUMA2节点。
继续沿用上述举例,如果还剩2个CPU核没有分配,则可以将这个2个CPU核分配到NUMA节点中剩余CPU核比较多的NUMA节点,例如可以分配到资源M所在的NUMA2节点,这样NUMA0、NUMA1、NUMA2和NUMA3上的管理资源所占的CPU核即是均衡的。
当然,上述分配方法也仅是一种示例,在实际应用中,也可以将剩余的CPU核个数平均分配到NUMA节点上,或者也可以一部分分配到剩余CPU核比较多的NUMA节点上,然后其余部分平均分配到几个NUMA节点上,本申请对此不作限定。
经过上述步骤,可以使得每个NUMA节点中管理资源所占的CPU核个数相同,均等于资源L和资源M所占的CPU核个数的最大值。
S3010:将步骤S309剩余的资源N所占的CPU核继续分配到Q个NUMA节点,直至分配完资源N,且使得Q个NUMA节点中的管理资源所占的CPU均衡。
如果在步骤S309执行之后,资源N还是没有分配完,则可将步骤S308剩余的资源N所占的CPU核个数在Q个NUMA节点上平均分配。当然,步骤S308剩余的资源N除以NUMA节点的个数Q得到的结果中,可能会有余数,也就是不能平均分配,那么可将余数优先分配到非资源L和非资源M所在的NUMA节点,如果还是分配不完,然后再分配到资源L和/或资源M所在的NUMA节点,直至将资源N全部分配完。
进一步的,在本申请实施例中,在对资源N分配的过程中,可以记录每个NUMA节点上分配给资源N的CPU核个数,然后将服务器的内存分配到资源N所占的CPU核个数最多的NUMA节点上,以保证在访问内存时,不用跨NUMA节点访问,缩短内存访问的时间,提高访问效率。
以下结合具体例子对图3所示实施例中的资源分配方法进行介绍。
假设主机(服务器)配置为96(个)CPU和384G内存,将CPU和内存划分为4个NUMA节点,比如NUMA0、NUMA1、NUMA2、NUMA3,则每个NUMA节点的可用资源为24CPU和96G内存。
示例性的,本申请中可包括的管理进程以及每个进程所占用的CPU核个数以及内存举例如下:
虚拟化管理进程:2CPU,12G内存;计算管理进程:6CPU,5G内存;网络管理进程:4CPU,8G内存;存储管理进程:4CPU,7G内存。
其中,虚拟化管理进程的内存可平均分配在NUMA节点中;计算管理进程的CPU核可以动态分配,内存需要指定一个NUMA节点;网络管理进程必须固定在NUMA0节点;存储管理进程必须在一个NUMA节点中。
应理解,网络管理进程可对应于资源L(即第一管理资源),存储管理进程可对应于资源M(即第二管理资源),虚拟化管理进程和计算管理进程可以对应于上述所介绍的资源N(即第三管理资源)。
为了清楚的体现本申请的分配策略带来的效果,以下以表1为例示例在应用本申请的分配策略之前,服务器上的NUMA节点对于管理资源的分配情况,参阅表1所示。
表1
Figure BDA0002704852810000081
可以理解的是,上述表格仅是一种示意性说明,在实际应用中,管理资源的分配形式并不限于上述举例。
从表1可知,NUMA0上管理资源占用的CPU核最多,则该服务器可以创建的虚拟机的最大规格为4个NUMA0的虚拟机,即75CPU,312G内存。
利用本申请中的均衡式资源分配策略之后,服务器上的NUMA节点对于管理资源的分配情况可参阅表2所示。
表2
Figure BDA0002704852810000091
通过表2可知,利用均衡式资源分配策略之后,每个NUMA节点上管理资源所占的CPU核的个数为均衡的,因此,虚拟机可用的CPU核的个数也是相等的,这样在跨NUMA节点创建虚拟机时,可以创建更大规格的虚拟机。比如,表2中的服务器可以创建的虚拟机的最大规格为80CPU,340G内存。
在本申请另一些实施例中,当计算节点采用集中式资源分配策略时,可按照如下方式为管理资源分配计算节点的CPU:
按照第一管理资源、第二管理资源以及第三管理资源分别对应的NUMA属性,依次将第一管理资源、第二管理资源以及第三管理资源分配到第一NUMA节点。也就是说,将三类不同NUMA属性的管理资源分配到同一个NUMA节点上,更为具体的,可以分配到固定使用某个NUMA节点的管理资源所在的NUMA节点。
当然,如果管理资源所占的CPU核个数比较多,在固定的一个NUAM节点上分配不完时,可以将剩余的CPU核分配到其它的NUMA节点。即当第三管理资源分配到第一NUMA节点之后,若第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至第三管理资源。
以下对利用集中式资源分配策略进行资源分配的过程进行介绍。
如图5所示,为本申请实施例提供的一种基于NUMA属性的资源分配方法流程图,参阅图5所示,该方法包括如下步骤:
需要说明的是,图5所示实施例中的步骤S501、S502与图3所示实施例中的步骤S301、S302相同,具体可参阅图3所示实施例中的介绍,此处不再重复赘述。
S501:将服务器上的CPU和内存划分为Q个NUMA节点。
S502:将资源L分配到Q个NUMA节点中的固定NUMA节点。
S503:将资源M分配到与资源L相同的NUMA节点。
在本申请实施例中,利用集中式资源分配策略时,需要尽可能的将管理资源分配到一个NUMA节点中,因此,在将资源L分配之后,可将资源M分配到与资源L相同的NUMA节点。示例性的,假设先将资源L分配到NUMA0,在分配资源M时,也可将资源M分配到NUMNA0。
S504:将资源N分配到与资源L、资源M所在的NUMA节点相同的NUMA节点。
对于资源N,可以优先将资源N继续分配到资源L和资源M所占用的NUMA节点,以保证管理资源可以集中分配到同一个NUMA节点中。
S505:判断是否有剩余的未分配的资源N。如果有剩余的资源N,则继续执行步骤S506。
如果资源N所占的CPU核个数小于设定阈值,即CPU核个数比较少时,资源N可能能够分配到资源L和资源M所占用的NUMA节点。
如果资源N所占的CPU核个数大于设定阈值,即CPU核个数比较多时,资源N不能分配完,那么资源N就会有剩余,也就是说,会存在未分配的资源N需要继续分配。
S506:将剩余的资源N分配到Q个NUMA节点中除固定NUMA节点的其它NUMA节点,直至分配完资源N。
本申请实施例中,如果资源N分配到资源L和资源M所在的NUMA节点之后,还有剩余未分配的资源N,则可将剩余的资源N分配到另一个NUMA节点。如果另一个NUMA节点可以分配完剩余的资源N,则结束;如果另一个NUMA节点仍然没有分配完剩余的资源N,则继续将剩余的资源N分配给其它的NUMA节点,直至资源N分配完成。
通过上述步骤,可以将管理资源集中分配到一个NUMA节点,这样可使得在创建虚拟机时,能够提高单NUMA节点的虚拟机的配置个数。
进一步的,作为一种可能的实现方式,本申请实施例中还可以自定义配置策略,即用户可以根据需求指定资源M和资源N所占的NUMA节点以及在NUMA节点中所占的CPU核的个数。
以下结合具体例子对图5所示实施例中的资源分配策略进行介绍。
还是以表1作为应用集中式资源分配策略之前的分配形式,从表1可知,根据表1中的资源分配情况,用户可创建的单NUMA虚拟机的最大规格为:23CPU,即NUMA2节点对应的虚拟机为最大规格。
利用本申请中的集中式资源分配策略之后,服务器上的NUMA节点对于管理资源的分配情况可参阅表3所示。
表3
Figure BDA0002704852810000101
从表3可知,在使用集中分配策略之后,管理资源所占的CPU核集中在一个NUMA节点中,因此,在创建单NUMA的虚拟机时,可以创建更大规格的虚拟机。比如,表3中的服务器可以创建的虚拟机的最大规格为24CPU。也就是说,CPU核的个数更多了。
基于上述实施例,本申请还提供一种基于NUMA属性的资源分配装置,参阅图6所示,该装置600可包括:获取单元601、分配单元602。
其中,获取单元601,用于获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;分配单元602,用于根据所述获取单元601获取到的所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU。
在一种可能的设计中,所述管理资源包括第一管理资源、第二管理资源以及第三管理资源;所述第一管理资源的属性包括:需分配所述计算节点的第一NUMA节点的CPU至所述第一管理资源;所述第二管理资源的属性包括:可分配所述计算节点的任意一个NUMA节点的CPU至所述第二管理资源;所述第三管理资源的属性包括:可在所述计算节点中跨NUMA节点分配CPU至所述第三管理资源。
在一种可能的设计中,当所述资源分配策略包括均衡式资源分配策略时,所述分配单元602具体用于按如下方式根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU:按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,分别将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点、第二NUMA节点以及第三NUMA节点。
在一种可能的设计中,所述分配单元602还用于:当所述第三管理资源分配到所述第三NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至所述第三管理资源,或从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至所述第三管理资源,或从第四NUMA节点分配H个CPU核至所述第三管理资源。
在一种可能的设计中,当所述资源分配策略包括集中式资源分配策略时,所述分配单元602具体用于按如下方式根据所述集中式资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的CPU:按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,依次将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点。
在一种可能的设计中,所述分配单元602还用于:当所述第三管理资源分配到所述第一NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至所述第三管理资源。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图7所示为本申请实施例提供的一种基于NUMA属性的资源分配装置700,装置700包括至少一个处理器702,用于实现或用于支持装置700实现如本申请实施例提供的图6所示的分配单元的功能。示例性地,处理器702可以根据所述获取单元601获取到的所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU等,具体参见方法示例中的详细描述,此处不做赘述。
装置700还可以包括至少一个存储器701,用于存储程序指令。存储器701和处理器702耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器702可能和存储器701协同操作。处理器702可能执行存储器701中存储的程序指令和/或数据。所述至少一个存储器中的至少一个可以包括于处理器中。
装置700还可以包括通信接口703,用于通过传输介质和其它设备进行通信。处理器702可以利用通信接口703收发数据。
本申请不限定上述通信接口703、处理器702以及存储器701之间的具体连接介质。本申请实施例在图7中以存储器701、处理器702以及通信接口703之间通过总线704连接,总线在图7中以粗线表示。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器702可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接由硬件处理器执行完成,或者由处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器701可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如RAM。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述实施例的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行上述实施例的方法。
本申请实施例中还提供一种芯片,所述芯片中的逻辑用于执行上述实施例的方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (14)

1.一种基于NUMA属性的资源分配方法,其特征在于,所述方法应用于计算节点,所述方法包括:
获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;
根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU。
2.如权利要求1所述的方法,其特征在于,所述管理资源包括第一管理资源、第二管理资源以及第三管理资源;
所述第一管理资源的NUMA属性包括:
需分配所述计算节点的第一NUMA节点的CPU至所述第一管理资源;
所述第二管理资源的NUMA属性包括:
可分配所述计算节点的任意一个NUMA节点的CPU至所述第二管理资源;
所述第三管理资源的NUMA属性包括:
可在所述计算节点中跨NUMA节点分配CPU至所述第三管理资源。
3.如权利要求2所述的方法,其特征在于,所述资源分配策略包括均衡式资源分配策略,根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU,包括:
按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,分别将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点、第二NUMA节点以及第三NUMA节点。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
当所述第三管理资源分配到所述第三NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至所述第三管理资源,或从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至所述第三管理资源,或从第四NUMA节点分配H个CPU核至所述第三管理资源。
5.如权利要求2所述的方法,其特征在于,所述资源分配策略包括集中式资源分配策略,根据所述集中式资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的CPU,包括:
按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,依次将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
当所述第三管理资源分配到所述第一NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至所述第三管理资源。
7.一种基于NUMA属性的资源分配装置,其特征在于,包括:
获取单元,所述获取单元用于获取云管理平台下发的资源分配策略以及管理资源的NUMA属性;
分配单元,用于根据所述获取单元获取到的所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU。
8.如权利要求7所述的装置,其特征在于,所述管理资源包括第一管理资源、第二管理资源以及第三管理资源;
所述第一管理资源的属性包括:
需分配所述计算节点的第一NUMA节点的CPU至所述第一管理资源;
所述第二管理资源的属性包括:
可分配所述计算节点的任意一个NUMA节点的CPU至所述第二管理资源;
所述第三管理资源的属性包括:
可在所述计算节点中跨NUMA节点分配CPU至所述第三管理资源。
9.如权利要求8所述的装置,其特征在于,当所述资源分配策略包括均衡式资源分配策略时,所述分配单元具体用于按如下方式根据所述资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的中央处理器CPU:
按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,分别将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点、第二NUMA节点以及第三NUMA节点。
10.如权利要求9所述的装置,其特征在于,所述分配单元还用于:
当所述第三管理资源分配到所述第三NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第一NUMA节点和第二NUMA节点中剩余CPU核最多者分配H个CPU核至所述第三管理资源,或从第一NUMA节点和第二NUMA节点各分摊H/2个CPU核至所述第三管理资源,或从第四NUMA节点分配H个CPU核至所述第三管理资源。
11.如权利要求8所述的装置,其特征在于,当所述资源分配策略包括集中式资源分配策略时,所述分配单元具体用于按如下方式根据所述集中式资源分配策略和所述管理资源的NUMA属性,为所述管理资源分配所述计算节点的CPU:
按照所述第一管理资源、所述第二管理资源以及所述第三管理资源分别对应的NUMA属性,依次将所述第一管理资源、所述第二管理资源以及所述第三管理资源分配到所述第一NUMA节点。
12.如权利要求11所述的装置,其特征在于,所述分配单元还用于:
当所述第三管理资源分配到所述第一NUMA节点之后,若所述第三管理资源还需占用H个CPU核,则从第二NUMA节点或第三NUMA节点分配H个CPU核至所述第三管理资源。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行如权利要求1-6中任一项所述的方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行如权利要求1-6中任一项所述的方法。
CN202011035169.2A 2020-09-27 2020-09-27 一种基于numa属性的资源分配方法及装置 Pending CN114281516A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011035169.2A CN114281516A (zh) 2020-09-27 2020-09-27 一种基于numa属性的资源分配方法及装置
PCT/CN2021/120706 WO2022063273A1 (zh) 2020-09-27 2021-09-26 一种基于numa属性的资源分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011035169.2A CN114281516A (zh) 2020-09-27 2020-09-27 一种基于numa属性的资源分配方法及装置

Publications (1)

Publication Number Publication Date
CN114281516A true CN114281516A (zh) 2022-04-05

Family

ID=80844995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011035169.2A Pending CN114281516A (zh) 2020-09-27 2020-09-27 一种基于numa属性的资源分配方法及装置

Country Status (2)

Country Link
CN (1) CN114281516A (zh)
WO (1) WO2022063273A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820687B (zh) * 2023-08-29 2023-12-05 银河麒麟软件(长沙)有限公司 基于kubelet的NUMA架构资源分配方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
CN102841815B (zh) * 2012-07-12 2014-07-09 北京航空航天大学 一种numa体系结构自适应的进程分类绑定方法
CN104050091B (zh) * 2012-12-28 2017-06-20 华耀(中国)科技有限公司 基于非一致性内存访问系统的网络设备及其设置方法
CN109388490B (zh) * 2017-08-07 2020-11-17 华为技术有限公司 一种内存分配方法和服务器

Also Published As

Publication number Publication date
WO2022063273A1 (zh) 2022-03-31

Similar Documents

Publication Publication Date Title
US11194626B2 (en) Dynamic resource allocation based on data transferring to a tiered storage
KR101722276B1 (ko) 가상 머신들을 위한 가상 불균일 메모리 아키텍처
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
EP3074866A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
CN117170882B (zh) 一种资源分配方法、装置、电子设备及存储介质
US20140282504A1 (en) Method and system for specifying the layout of computer system resources
US9104496B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
TWI616759B (zh) 設備分配控制器以及設備分配方法
KR20220025746A (ko) 컴퓨팅 자원의 동적 할당
CN115705247A (zh) 一种运行进程的方法及相关设备
CN114153549A (zh) 一种虚拟机创建方法及相关设备
WO2022063273A1 (zh) 一种基于numa属性的资源分配方法及装置
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
EP3420450A1 (en) Methods and modules relating to allocation of host machines
US10223284B2 (en) Flexible I/O DMA address allocation in virtualized systems
CN116324706A (zh) 分离式存储器池分配
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
KR101989033B1 (ko) 플랫폼 관리 장치 및 방법
CN113961302A (zh) 资源分配方法、装置、电子设备及存储介质
CN110704163A (zh) 一种服务器及其虚拟化存储方法和装置
JP7506096B2 (ja) 計算資源の動的割り当て
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
US11860783B2 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
CN109145061B (zh) 一种数据库分配会话对象的方法、数据库和服务器
CN117785372A (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