CN116361010B - 一种用于腾云s2500的cpu资源调配调度优化方法 - Google Patents

一种用于腾云s2500的cpu资源调配调度优化方法 Download PDF

Info

Publication number
CN116361010B
CN116361010B CN202310629414.XA CN202310629414A CN116361010B CN 116361010 B CN116361010 B CN 116361010B CN 202310629414 A CN202310629414 A CN 202310629414A CN 116361010 B CN116361010 B CN 116361010B
Authority
CN
China
Prior art keywords
cpu
numa
cpus
idle
level cache
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.)
Active
Application number
CN202310629414.XA
Other languages
English (en)
Other versions
CN116361010A (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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software 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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202310629414.XA priority Critical patent/CN116361010B/zh
Publication of CN116361010A publication Critical patent/CN116361010A/zh
Application granted granted Critical
Publication of CN116361010B publication Critical patent/CN116361010B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种用于腾云S2500的CPU资源调配调度优化方法,包括以下步骤:S1、获取需要的NUMA节点个数n;S2、从总的NUMA节点中随机抽取n个NUMA节点,进行组合,遍历上述过程;S3、基于二级高速缓存中存在的空闲CPU个数,设置该二级高速缓存中CPU的权重值,其中空闲CPU个数越多,则CPU的权重值越高;S4、以每个组合中空闲CPU的个数作为加权值,计算每个组合的节点得分Q,并从大到小进行排序;S5、基于S4中组合的顺序进行CPU的绑定,完成CPU资源调配调度。本发明通过在进行绑定时,优先选择空闲二级高速缓存对应的CPU进行绑定,使得在绑定时能达到最好性能。

Description

一种用于腾云S2500的CPU资源调配调度优化方法
技术领域
本发明涉及一种CPU绑定优化,尤其涉及一种用于腾云S2500的CPU资源调配调度优化方法。
背景技术
OpenStack和Kubernetes是云厂商常用的云编排平台,在用户创建计算负载时,云编排平台会根据当前集群中的节点负载,以及每一个节点的硬件拓扑,以及用户所需计算资源的类型,对用户创建的计算负载进行绑定CPU,根据绑定CPU的不同,用户的计算负载性能可能会有差异。例如阿里云将计算负载分成了轻量应用服务器、共享型、计算型、通用算力型等规格。对于高性能计算场景,由于arm和x86架构的区别,也会产生不同的资源调配策略。当前主流的云编排平台的资源调配算法,并未对飞腾腾云S2500处理器进行适配,导致在该类型的机器上的计算负载无法使用最高性能。
主要原因有两个:
1、腾云S2500,ARMv8架构,主频2.1G,两路Socket,每路64个物理CPU,没有超线程,总共16个numa,每个numa有8个CPU,其中8个CPU每4个共享一个二级高速缓存,当两个进程运行的CPU对应同一个二级高速缓存时,会产生二级高速缓存的争抢问题,导致两个进程的性能不稳定,这是腾云S2500的一个固有特点。当前OpenStack和Kubernetes针对计算资源绑核时并未考虑到这个情况,因此会导致计算负载性能不能按照原有绑核策略达到按照绑核策略分配后的最大性能;
2、根据腾云S2500的设计,NUMA节点较多,一个NUMA节点上8个CPU,共享一个L3缓存,NUMA节点越多,可用的L3缓存就越多,内存带宽越大,在虚拟化场景下多线程的内存性能表现越好。对比x86平台的设计,通常采用不跨NUMA的绑核策略来避免跨NUMA访问内存的性能下降。因此针对腾云S2500而言,符合x86平台的绑核策略却无法发挥其在虚拟化场景的性能。
发明内容
针对上述问题,本发明提供一种用于腾云S2500的CPU资源调配调度优化方法,通过在进行绑定时,优先选择空闲二级高速缓存对应的CPU进行绑定,使得在绑定时能达到最好性能。
为实现上述目的,本发明公开了一种用于腾云S2500的CPU资源调配调度优化方法,包括以下步骤:
S1、获取需要的NUMA节点个数n;
S2、从总的NUMA节点中随机抽取n个NUMA节点,进行组合,遍历上述过程,得到若干NUMA节点组合;
S3、基于每个NUMA节点组合中对应的二级高速缓存中存在的空闲CPU个数,设置该二级高速缓存中CPU的权重值,其中空闲CPU个数越多,则CPU的权重值越高;
S4、以每个NUMA节点组合中空闲CPU的个数作为加权值,计算每个NUMA节点组合的得分Q,并按照大到小的顺序对NUMA节点组合进行排序;
S5、基于S4中NUMA节点组合的顺序进行CPU的绑定,完成CPU资源调配调度。
进一步的,所述S4中,通过如下计算方法确定得分Q:
其中,n为按照其所具有的空闲CPU数量,将一个NUMA节点组合中具有相同空闲CPU数量的二级高速缓存划分为同一类,得到的二级高速缓存的分类数;
ai表示第i类二级高速缓存所对应的二级高速缓存的个数,bi表述第i类二级高速缓存中,每个二级高速缓存所具有的空闲CPU的数量;ci表示第i类二级高速缓存所对应的权重。
进一步的,所述S5具体包括:
优先选择NUMA节点中其上CPU均空闲的二级高速缓存进行CPU的绑定,如果没有其上CPU均空闲的二级高速缓存,则选取当前NUMA节点组合中,其上有空闲CPU的二级高速缓存进行CPU的绑定。
本发明的一种用于腾云S2500的CPU资源调配调度优化方法的有益效果为:在计算节点调度算法中加入了二级高速缓存对多个计算实例的影响,使计算资源尽可能的独占二级高速缓存,由于减少了同一个二级高速缓存上其他进程的干扰,计算负载的性能变的稳定且高效,使其服务质量得到更好保证。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的飞腾腾云S2500NUMA拓扑示意图。
图2是本发明的飞腾腾云S2500上创建的虚拟机Flavor规格样例示意图,其中包含4个NUMA,每一个NUMA上包含一个CPU。
图3是本发明的OpenStack原生资源调配策略产生的绑核结果示意图,其中黑色部分为已占用CPU,灰色部分为新分配虚拟机绑定的CPU。
图4是本发明的OpenStack基于本发明产生的绑核结果示意图,其中黑色部分为已占用CPU,灰色部分为新分配虚拟机绑定的CPU。
图5是本发明的Kubernetes原生资源调配策略产生的绑核结果示意图,其中黑色部分为已占用CPU,灰色部分为新分配Pod绑定的CPU。
图6是本发明的Kubernetes基于本发明产生的绑核结果,其中黑色部分为已占用CPU,灰色部分为新分配Pod绑定的CPU。
图7是本发明实施例1的整体结构示意图。
图8是本发明实施例1的绑定流程示意图。
图9是本发明实施例1的绑定结果示意图。
图10是本发明实施例2的分配流程示意图。
图11是本发明实施例2的绑定结果示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
本发明具体公开了一种用于腾云S2500的CPU资源调配调度优化方法,包括以下步骤:
S1、获取需要的NUMA节点个数n;
S2、从总的NUMA节点中随机抽取n个NUMA节点,进行组合,遍历上述过程,得到若干NUMA节点组合;
S3、基于每个NUMA节点组合中对应的二级高速缓存中存在的空闲CPU个数,设置该二级高速缓存中CPU的权重值,其中空闲CPU个数越多,则CPU的权重值越高;
S4、以每个NUMA节点组合中空闲CPU的个数作为加权值,计算每个NUMA节点组合的得分Q,并按照大到小的顺序对NUMA节点组合进行排序;
S5、基于S4中NUMA节点组合的顺序进行CPU的绑定,完成CPU资源调配调度。
为进一步优化上述技术方案,S4中,通过如下计算方法确定得分Q:
其中,n为按照其所具有的空闲CPU数量,将一个NUMA节点组合中具有相同空闲CPU数量的二级高速缓存划分为同一类,得到的二级高速缓存的分类数;
ai表示第i类二级高速缓存所对应的二级高速缓存的个数,bi表述第i类二级高速缓存中,每个二级高速缓存所具有的空闲CPU的数量;ci表示第i类二级高速缓存所对应的权重。
为进一步优化上述技术方案,S5具体包括:
优先选择NUMA节点中其上CPU均空闲的二级高速缓存进行CPU的绑定,如果没有其上CPU均空闲的二级高速,则选取当前NUMA节点组合中,其上有空闲CPU的二级高速缓存进行CPU的绑定。
实施例1,对于OpenStack(以OpenStack Train版本为例):
如图7所示,在OpenStack中部署一个云主机,首先虚拟机调度器根据每一台计算节点虚拟机管理器向数据库上报的拓扑信息,计算出每一个Host的SCPU值,对Host进行排序并选定其中得分最高的Host节点来部署新创建的虚拟机,具体的:
1、首先用户需要创建一个Flavor,来指定需要创建的虚拟机的规格。在本发明的方案中,腾云S2500所需要创建的规格需要跨多个NUMA,每一个NUMA上绑定1个CPU(如图2所示);
2、根据创建好的虚拟机资源规格定义,创建虚拟机实例对象。
3、虚拟机实例信息发送到虚拟机节点调度器,从数据库中获取当前集群的物理机资源以及资源使用信息计算物理机的得分,对物理机进行排序,并选择最优的物理机;
4、如图8所示,再对选中的Host(物理机)进行绑核和部署虚拟机,遍历该物理机所有的NUMA节点组合,将虚拟机和物理机的NUMA组合的节点配对绑核,具体的:
根据要创建的虚拟机所需的NUMA个数,遍历当前选中机器的NUMA分配组合。现有技术中:机器上总共有3个NUMA节点,以数字对NUMA节点编号(1,2,3...以此类推),当前要创建的虚拟机,需要使用的NUMA节点个数为2,每一个NUMA上分1个CPU, 则遍历产生NUMA分配组合可能性为:1,2(第1,2号NUMA被分配,每一个NUMA上分配一个CPU);1,3;2,3等等,将产生的NUMA组合与虚拟机NUMA组合进行尝试配对,确认虚拟机的每一个NUMA是否均能绑定到物理机分配的对应的NUMA节点组合上,如果配对失败则进行下一组配对。
如图3所示,为OpenStack原生资源调配策略产生的绑核结果,图中黑色部分为已占用CPU,灰色部分为新分配虚拟机绑定的CPU,在原有的虚拟机节点调度器的过滤器中,当遍历找到第一个所有NUMA绑定均符合要求的组合时,选择该组合,并跳出当前遍历(比如尝试将物理机上的1,2号NUMA节点和虚拟机的1,2号NUMA节点进行绑定,此时发现CPU个数均满足要求,选择每一个NUMA上第一个可分配的CPU即可,此时跳出遍历,选定当前的组合),此方式存在的问题有:1.由于将虚拟机NUMA与物理机NUMA进行配对的过程并不对二级高速缓存的占用信息做处理,因此有可能将CPU绑定到和其他CPU共享的二级高速缓存上导致性能下降。2.遍历NUMA组合时,由于只选择第一个可用的组合,因此无法找到相对更优的选择。比如在实施例1中选择第1,2个NUMA上的第一个二级高速缓存上进行分配CPU,此时CPU分配成功,但会导致性能下降。
如图4所示,为OpenStack采用本发明产生的绑核结果,图中黑色部分为已占用CPU,灰色部分为新分配虚拟机绑定的CPU,本发明首先对NUMA组合进行遍历,针对遍历的NUMA组合结果,根据每一个组合中二级高速缓存中的空闲CPU进行加权的加和,计算方式下文详述。根据加和结果对NUMA组合进行从大到小排序,然后再依次遍历排序好的组合,选取第一个配对成功的NUMA组合,进行虚拟机NUMA和物理机NUMA的配对。
本发明在进行虚拟机NUMA和物理机NUMA配对的过程中,优先选择其上CPU均空闲的二级高速缓存上的CPU进行绑核,如果没有空闲二级高速缓存则选取当前NUMA上可用的CPU进行绑核,最终返回该配对成功的NUMA组合。以实施例1为例,最终选择的结果为节点组合1上的第1、2、3号NUMA,而第1、2、3号NUMA中都是第二个二级高速缓存上四个CPU均呈空闲状态,因此将CPU分别绑定到每一个NUMA上的第二个二级高速缓存上的第一个可用的CPU,如图9所示,最终绑核的结果,每一个CPU独占一个二级高速缓存缓存。
根据当前选定的numa组合,以及cpu绑定情况,从当前节点扣除对应的资源, 更新到集群数据库,并根据该绑核信息创建虚拟机。
本发明的NUMA组合加权求和方法:
默认算法为计算物理机剩余CPU个数。而在CPU独占策略下,对于腾云S2500平台,该策略无法产生更好的绑核效果,因此本发明在计算节点得分采用的算法,是基于NUMA节点上以二级高速缓存所对应的4个CPU为单位(或一组),每组中空闲CPU个数作为加权值(以腾云S2500 CPU结构拓扑说明,如图1所示,总共有16个NUMA,每个NUMA中有两个二级高速缓存,每个二级高速缓存中有4个CPU,即每个MUNA中有8个CPU,每一个二级高速缓存空闲CPU数)。随后对所有加权值进行求和。算法如下:
以图7为例,设共3个NUMA,每一个NUMA对应两个二级高速缓存上的空闲CPU个数分部为{3:3,4:3}(表明:一个二级高速缓存上空闲3个CPU,这样的二级高速缓存总共有3个,一个二级高速缓存上四个CPU都空闲,这样的二级高速缓存有3个),{3:4,4:2}(表明:一个二级高速缓存上空闲3个CPU,这样的二级高速缓存总共有4个,一个二级高速缓存上四个CPU都空闲,这样的二级高速缓存有2个),根据加权计算,两个节点组合的分值分别为:节点组合1:3^1.1*3+4^1.1*3=23.82(此处的3^1.1为二级高速缓存上有3个空闲CPU的加权值,下同,该加权值在NUMA绑定的时候会使得一个有4个空闲CPU的二级高速缓存权重,比有2个二级高速缓存,其中每个都有两个空闲CPU的权重加和高,该权重可以根据情况进行自行设计,此处是当前的选择);
节点组合2:3^1.1*4+4^1.1*2=22.58;
节点组合1的分值大于节点组合2的分值,故选择节点组合1;
如此一来物理机上二级高速缓存缓存所对应空闲CPU多的Host将被优先被选中,因此在多数情况下能比修改之前产生更好的结果。为了不影响x86平台原有逻辑,针对该算法做了平台区分,仅对腾云S2500执行该加权算法。
实施例2,对于Kubernetes(以1.23版本为例):
如图5所示,为Kubernetes原生资源调配策略产生的绑核结果,图中黑色部分为已占用CPU,灰色部分为新分配容器沙箱Pod绑定的CPU,Kubernetes调度容器沙箱Pod的流程如下:
容器沙箱Pod指定所需要的cpu需求和上限,使得该Pod类型为资源保障型(Guarenteed);
kube-scheduler首先根据物理机的资源,将pod调度到一个节点上,然后kubelet针对该容器沙箱Pod的资源要求进行绑定;
kubelet中对pod使用的CPU进行绑定选择时,其策略被多个管理器所决定。它们是CPU管理器、内存管理器、设备管理器(kubelet允许按照此模式进一步扩展开发新的管理器)。这些管理器分别会根据各自的立场决策出各自认为的最优NUMA组合。
这里特别强调CPU管理器在决策时,根据pod所需要的CPU个数,遍历所有可选择的NUMA组合,最终筛选出满足CPU个数的NUMA组合,并将NUMA个数最少的组合设置为“prefered”组合;设置为“prefered”的组合是每个管理器对推荐NUMA组合的一种表示。
kubelet对多个管理器生成的可绑定NUMA拓扑进行合并。随后,优先选择设置为“prefered”的组合,如果没有“prefered”组合,则选择NUMA最少的组合。
根据该NUMA拓扑进行绑核。该步骤根据上一步选择出的组合进行绑核,依次从每一个NUMA节点上选择CPU。选取时有两种策略:1. 按NUMA节点编号从小到大排序,每一个NUMA节点上按照CPU编号从小到大依次选取CPU,直到将CPU个数分配完。该策略下会出现每个NUMA和CPU分配的比例不均衡,导致最终POD的性能下降;2. 将要分配的CPU个数平均分配到各个NUMA节点上,每一个NUMA节点上选择CPU时,按CPU编号从小到大排序。
两种策略都有同样的问题,当一个NUMA上已经分配了CPU时,新分配的CPU可能会和原来分配的CPU抢占一个二级高速缓存,导致新分配的Pod性能较差,因此我们针对此问题进行了优化。
如图6所示,为Kubernetes采用本实发明的策略产生的绑核结果,图中黑色部分为已占用CPU,灰色部分为新分配Pod绑定的CPU,当在一个NUMA节点上分配CPU时,如果当前NUMA节点已经有被分配的CPU,优先选择其上CPU均为空闲的二级高速缓存上。每一个CPU选取时均采取该分配策略,如果最后还剩余一些CPU没有分配,但是当前已经没有CPU均空闲的二级高速缓存了,则剩余待分配的CPU按物理机节点剩余CPU编号从小到大继续选取。
对于两个平台的差异,Openstack的算法是基于虚拟机规格要求NUMA拓扑的情况下进行分配,虚拟机规格决定当前要使用多少CPU以及多少NUMA, CPU和NUMA在规格上有一个确定的对应关系,在分配时,首先考虑NUMA的分配,然后再考虑CPU在NUMA内的分配。而Kubernetes是仅仅根据的CPU请求数量进行分配,kubernetes根据CPU个数先计算出要分配到几个NUMA上,然后在分配的每个NUMA中进行CPU的选择。分配算法的思想是一致的,但是Kubernetes多了一层计算NUMA分配的逻辑。
对于Kubernetes来说,以图6为例,把4个CPU都绑定在第一个NUMA的下方的二级高速缓存上,从单个NUMA分配的最终布局上看是一样的,但区别在于,如果没有其上CPU全为空闲的限制,则分配结果会将3个新分配CPU和另一个已分配CPU放到同一个二级高速缓存上,在运行过程中不同的容器之间会产生高速缓存的干扰。因此本发明的分配策略会使容器性能更稳定,而不是会造成资源挤兑。
对于实施例2,如图10所示,在Kubernetes中部署一个8C8G的Pod,首先kubelet查看服务器上每一个NUMA节点的可用CPU,计算出分配8c所需最小的NUMA节点数,并分配NUMA,然后对选定的NUMA节点,依次查看每一个NUMA节点上可用的其上CPU全部空闲的二级高速缓存,并从其对应的CPU列表中尽可能的分配CPU,直到满足8c的要求,如果最后仍未满足要求,则从剩余二级高速缓存的CPU中分配,直到结束。最终的分配结果如图11所示(黑色为之前占用的CPU,灰色为新分配的CPU)。
因此,本发明在主流云编排平台OpenStack和Kubernetes上,在绑定CPU时,采取空闲二级高速缓存缓存优先的策略,使得新部署的计算负载绑定的CPU与其他计算负载相对隔离,使得计算负载的性能更加稳定,提高了服务质量。对于OpenStack平台,在筛选机器进行部署虚拟机时,基于二级高速缓存对应的空闲CPU个数,对当前机器所有二级高速缓存进行加权求和得分进行排序,使得虚拟机能够部署到资源争抢更少的节点。同时,在进行绑定时,优先选择全部空闲的二级高速缓存对应的CPU进行绑定,使得在绑定时能达到最好性能。对于Kubernetes平台,在进行绑核时,首先筛选掉已被使用的二级高速缓存,以及对应的CPU,优先选取有全部剩余的空闲二级高速缓存对应的CPU,如果没有足够的CPU,则在已使用的二级高速缓存对应的CPU中继续绑定。通过以上策略的修改,OpenStack和Kubernetes在飞腾腾云S2500上进行计算资源调度的时候能够达到更好的性能。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (3)

1.一种用于腾云S2500的CPU资源调配调度优化方法,其特征在于,包括以下步骤:
S1、获取需要的NUMA节点个数n;
S2、从总的NUMA节点中随机抽取n个NUMA节点,进行组合,遍历上述过程,得到若干NUMA节点组合;
S3、基于每个NUMA节点组合中对应的二级高速缓存中存在的空闲CPU个数,设置该二级高速缓存中CPU的权重值,其中空闲CPU个数越多,则CPU的权重值越高;
S4、以每个NUMA节点组合中空闲CPU的个数作为加权值,计算每个NUMA节点组合的得分Q,并按照大到小的顺序对NUMA节点组合进行排序;
S5、基于S4中NUMA节点组合的顺序进行CPU的绑定,完成CPU资源调配调度。
2.基于权利要求1所述的一种用于腾云S2500的CPU资源调配调度优化方法,其特征在于,所述S4中,通过如下计算方法确定得分Q:
其中,n为按照其所具有的空闲CPU数量,将一个NUMA节点组合中具有相同空闲CPU数量的二级高速缓存划分为同一类,得到的二级高速缓存的分类数;
ai表示第i类二级高速缓存所对应的二级高速缓存的个数,bi表述第i类二级高速缓存中,每个二级高速缓存所具有的空闲CPU的数量;ci表示第i类二级高速缓存所对应的权重。
3.基于权利要求1所述的一种用于腾云S2500的CPU资源调配调度优化方法,其特征在于,所述S5具体包括:
优先选择NUMA节点中其上CPU均空闲的二级高速缓存进行CPU的绑定,如果没有其上CPU均空闲的二级高速,则选取当前NUMA节点组合中,其上有空闲CPU的二级高速缓存进行CPU的绑定。
CN202310629414.XA 2023-05-31 2023-05-31 一种用于腾云s2500的cpu资源调配调度优化方法 Active CN116361010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310629414.XA CN116361010B (zh) 2023-05-31 2023-05-31 一种用于腾云s2500的cpu资源调配调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310629414.XA CN116361010B (zh) 2023-05-31 2023-05-31 一种用于腾云s2500的cpu资源调配调度优化方法

Publications (2)

Publication Number Publication Date
CN116361010A CN116361010A (zh) 2023-06-30
CN116361010B true CN116361010B (zh) 2023-08-04

Family

ID=86909776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310629414.XA Active CN116361010B (zh) 2023-05-31 2023-05-31 一种用于腾云s2500的cpu资源调配调度优化方法

Country Status (1)

Country Link
CN (1) CN116361010B (zh)

Families Citing this family (2)

* 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架构资源分配方法及系统
CN117519994B (zh) * 2024-01-05 2024-04-16 银河麒麟软件(长沙)有限公司 一种基于k8s的NUMA感知调度方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109076029A (zh) * 2016-03-31 2018-12-21 英特尔公司 用于网络i/o访问的技术
CN109791530A (zh) * 2016-10-10 2019-05-21 英特尔公司 多管芯硬件处理器和方法
CN113553164A (zh) * 2021-09-17 2021-10-26 统信软件技术有限公司 一种进程迁移方法、计算设备及存储介质
CN115729706A (zh) * 2022-11-24 2023-03-03 广州超云科技有限公司 Cpu性能优化系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891234B2 (en) * 2018-04-04 2021-01-12 Sap Se Cache partitioning to accelerate concurrent workloads

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109076029A (zh) * 2016-03-31 2018-12-21 英特尔公司 用于网络i/o访问的技术
CN109791530A (zh) * 2016-10-10 2019-05-21 英特尔公司 多管芯硬件处理器和方法
CN113553164A (zh) * 2021-09-17 2021-10-26 统信软件技术有限公司 一种进程迁移方法、计算设备及存储介质
CN115729706A (zh) * 2022-11-24 2023-03-03 广州超云科技有限公司 Cpu性能优化系统及方法

Also Published As

Publication number Publication date
CN116361010A (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN116361010B (zh) 一种用于腾云s2500的cpu资源调配调度优化方法
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
US8037185B2 (en) Dynamic application placement with allocation restrictions, vertical stacking and even load distribution
CN110474966B (zh) 处理云平台资源碎片的方法及相关设备
CN110673951B (zh) 通用运行环境的拟态调度方法、系统及介质
CN110968424B (zh) 一种基于K8s的资源调度方法、装置和存储介质
CN112214307A (zh) 在可用主机节点的约束内的容器化过程的执行
TWI786564B (zh) 任務調度方法和裝置、儲存媒體及計算機設備
US11372683B2 (en) Placement of virtual GPU requests in virtual GPU enabled systems using a requested memory requirement of the virtual GPU request
CN109800058A (zh) 一种虚拟机自动迁移方法
CN112860383A (zh) 集群资源调度方法、装置、设备及存储介质
CN111124687A (zh) 一种cpu资源预留方法、装置及其相关设备
CN112631766A (zh) 项目环境资源的动态调整方法及装置
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN113391914A (zh) 任务调度方法和装置
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
CN110493317B (zh) 处理云平台资源碎片的方法及相关设备
CN113672391A (zh) 一种基于Kubernetes的并行计算任务调度方法与系统
CN113641448A (zh) 一种边缘计算容器分配和层下载排序体系结构及其方法
CN116600014B (zh) 一种服务器调度方法、装置、电子设备及可读存储介质
CN116680078A (zh) 云计算资源调度方法、装置、设备以及计算机存储介质
Zhuang et al. Impact of instance seeking strategies on resource allocation in cloud data centers
CN116360994A (zh) 分布式异构资源池的调度方法、装置、服务器及存储介质
CN116260876A (zh) 基于K8s的AI应用调度方法、装置及电子设备
CN114968581A (zh) 一种Kubernetes集群的pod调度方法及相关组件

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