CN111104219A - 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 - Google Patents
虚拟核心与物理核心的绑定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111104219A CN111104219A CN201911208779.5A CN201911208779A CN111104219A CN 111104219 A CN111104219 A CN 111104219A CN 201911208779 A CN201911208779 A CN 201911208779A CN 111104219 A CN111104219 A CN 111104219A
- Authority
- CN
- China
- Prior art keywords
- cpu core
- physical cpu
- binding
- physical
- cloud host
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种云主机虚拟CPU核心与物理CPU核心的绑定方法、装置、设备及存储介质;在本申请中,从服务器物理CPU资源中划分出仅进行虚拟CPU核心绑定的专用物理CPU资源池,这样接收到绑定请求后,便可将虚拟CPU核心与专用物理CPU资源池中的物理CPU核心进行绑定,再接收物理CPU核心的分配请求时,可从其他资源池中进行分配,通过这种方式,便可避免已绑定的物理CPU影响物理CPU的分配,从而提供了有效的物理CPU资源管理方式,提高了云主机的性能,提高了云平台物理资源的高可用性及利用率。
Description
技术领域
本发明涉及资源管理技术领域,更具体地说,涉及一种云主机虚拟CPU核心与物理CPU核心的绑定方法、装置、设备及计算机可读存储介质。
背景技术
云主机是云计算在基础设施应用上的重要组成部分,位于云计算产业链金字塔底层,源自云计算平台。目前创建云主机时,需要将云主机的虚拟CPU(central processingunit,中央处理器)核与物理CPU核进行绑定,但是在绑定物理CPU核时,只能够在资源池中随机选择进行绑定,不可指定物理CPU核,这就会导致物理CPU核不能够被充分利用,例如:
假设服务器A的NUMA node0上有0-6核,创建核心云主机a指定物理CPU核的时候绑定了第4号核心,那么NUMA node0还剩下{0-3,5-6}核心可以被云主机请求分配。此时如果请求创建一个4核心的云主机b,那么NUMA node0就会被排除在外,被认为不满足云主机创建条件。但是它的物理CPU核心数是满足创建条件的,仅仅是因为云主机a占用了物理核心数4,导致其他核心被分散,所以无法满足云主机b的请求条件,造成物理CPU资源浪费。
因此,如何有效对物理CPU资源进行管理,提高云平台物理资源的高可用性,提高资源利用率,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种云主机虚拟CPU核心与物理CPU核心的绑定方法、装置、设备及计算机可读存储介质,以实现对物理CPU资源进行有效管理,提高云平台物理资源的高可用性,提高资源利用率。
为实现上述目的,本发明提供的一种云主机虚拟CPU核心与物理CPU核心的绑定方法,包括:
接收绑定请求,所述绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,所述专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
其中,本方案还包括:
接收分配请求,所述分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;
从共享物理CPU资源池中确定待分配的物理CPU核心;其中,所述共享物理CPU资源池为进行虚拟CPU核心分配的资源池;
将所述待分配的物理CPU核心分配至所述云主机的虚拟CPU核心。
其中,将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定之后,还包括:
将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
其中,所述从专用物理CPU资源池中确定待绑定的物理CPU核心,包括:
判断所述绑定请求中是否携带指定绑定信息;所述指定绑定信息为将所述云主机的虚拟CPU核心CPUx绑定至物理CPU核心CPUy的信息,所述物理CPU核心CPUy为专用物理CPU资源池中的核心;
若存在,则将所述物理CPU核心CPUy作为待绑定的物理CPU核心;
若不存在,则随机从所述专用物理CPU资源池中确定待绑定的物理CPU核心。
其中,若宿主机的物理CPU的NUMA数量大于一,则所述指定绑定信息中的物理CPU核心CPUy为:所述宿主机的物理CPU的同一NUMA的物理CPU核心,或者所述宿主机的物理CPU的不同NUMA的物理CPU核心的组合。
为实现上述目的,本发明进一步提供一种云主机虚拟CPU核心与物理CPU核心的绑定装置,包括:
第一接收模块,用于接收绑定请求,所述绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
第一确定模块,用于从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,所述专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
绑定模块,用于将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
其中,本方案还包括:
第二接收模块,用于接收分配请求,所述分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;
第二确定模块,用于从共享物理CPU资源池中确定待分配的物理CPU核心;其中,所述共享物理CPU资源池为进行虚拟CPU核心分配的资源池;
分配模块,用于将所述待分配的物理CPU核心分配至所述云主机的虚拟CPU核心。
其中,本方案还包括:
绑定关系写入模块,用于将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
为实现上述目的,本发明进一步提供一种云主机虚拟CPU核心与物理CPU核心的绑定设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
通过以上方案可知,本发明实施例提供的一种云主机虚拟CPU核心与物理CPU核心的绑定方法,包括:接收绑定请求,绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;从专用物理CPU资源池中确定待绑定的物理CPU核心;专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;将云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
可见,在本申请中,从服务器物理CPU资源中划分出仅进行虚拟CPU核心绑定的专用物理CPU资源池,这样接收到绑定请求后,便可将虚拟CPU核心与专用物理CPU资源池中的物理CPU核心进行绑定,这样再接收到物理CPU核心的分配请求时,可从其他资源池中进行分配,已绑定的物理CPU并不影响物理CPU的分配,从而提供了有效的物理CPU资源管理方式,提高了云主机的性能,提高了云平台物理资源的高可用性及利用率。
本发明还公开了一种云主机虚拟CPU核心与物理CPU核心的绑定装置、设备及计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种云主机虚拟CPU核心与物理CPU核心的绑定方法流程示意图;
图2为本发明实施例公开的另一具体的云主机虚拟CPU核心与物理CPU核心的绑定方法流程示意图;
图3为本发明实施例公开的一种云主机虚拟CPU核心与物理CPU核心的绑定装置结构示意图;
图4为本发明实施例公开的一种云主机虚拟CPU核心与物理CPU核心的绑定设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在论述本方案之前,先对本申请中涉及的专业词语进行解释,以帮助理解本方案:
云平台:基于OpenStack开源项目开发的云管理平台,包含计算模块、存储模块、网络模块等;
物理CPU:服务器上安装的CPU硬件;
物理CPU核:一个物理CPU有多个核,在物理主机上可以查看物理CPU核展示信息,例如物理服务器A上的NUMA信息如下:
NUMA node0 CPU(s): 0-6
NUMA node1 CPU(s): 7-12
解释:说明物理服务器A的一个物理CPU有两个NUMA:NUMA node0和NUMA node1,两个NUMA共有12个核,在NUMA node0上有0-6核心数,NUAM node1上有7-12核心数。
核心或者核心数:英语称Core;
物理CPU核心资源:云主机创建需要绑定的物理CPU核心数;
虚机CPU核心资源:云主机创建时分配的虚拟CPU核心数;
可用域:一组主机的集合。
本发明实施例公开了一种云主机虚拟CPU核心与物理CPU核心的绑定方法、装置、设备及计算机可读存储介质,以实现对物理CPU资源进行有效管理,提高云平台物理资源的高可用性,提高资源利用率。
参见图1,本发明实施例提供的一种云主机虚拟CPU核心与物理CPU核心的绑定方法流程示意图;该方法包括:
S101、接收绑定请求,绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
需要说明的是,在本申请中,需要预先将云平台上存在于同一个可用域中的物理主机进行管理,将可用域内的物理CPU资源划分为专用物理CPU资源池和共享物理CPU资源池;其中,专用物理CPU资源池供云主机创建的时候需要绑定物理CPU核心时进行选择;而对CPU性能要求不高,即不需要绑定只需要分配物理CPU的云主机,从共享物理CPU资源池中进行选择。
在此,对物理CPU核心的绑定和分配进行详细说明:绑定,是指创建云主机的时候有特殊需求,要为云主机分配专用的CPU资源,进行CPU独占,以提高云主机的计算能力。分配,一般的CPU使用方式,是指云主机使用这个主机的物理CPU,在某个时间点或者时间段内CPU会被进程占用(分时间片使用的),可能下一次这个进程需要使用这个CPU,但是这个CPU正在被其他进程所占用,此时就不能达到想要的效果,即无法提升云主机性能。也就是说,绑定的目的是要CPU独占,提高云主机的性能,不做CPU核绑定,无法保证CPU一直为该云主机提供服务,当下次云主机需要使用高性能CPU资源的时候无法得到满足。因此本申请单独设置专用物理CPU资源池以供响应绑定请求,在此举例说明:
假设物理CPU核心为0-10,如果云主机A做了主机物理CPU绑定,绑定了0-2三个核心,则该三个核心一直被云主机A所使用的。如果没有做虚拟CPU和物理CPU核绑定,云主机在某个时间段内占用物理主机的0-2CPU核心,下次可使用3-5的物理CPU核,在这些CPU核之间加载均衡是需要付出代价的,另外这些物理CPU共享***中所有的内存,都有自己独立的Cache。比如对处于两个不同物理CPU的进程之间进行负载平衡的话,将会使得Cache失效,造成效率的下降,而且频繁的加载资源(包括CPU资源)会大量占用CPU资源,从而降低性能。
进一步,本申请在划分专用物理CPU资源池和共享物理CPU资源池时,专用物理CPU资源池和共享物理CPU资源池的划分资源池数量可自行设置,没有强制限制条件。但是云主机创建的时候只能选择一个服务器上的CPU,不能跨主机选择。在此,列举以下两个例子对本方案的划分方式进行说明:
1)一个服务器上CPU核数是0-12,那么可以将0-7设置为专用CPU资源池,8-12设置为共享CPU资源池,如果当前服务器CPU资源充足,那么创建云主机就可以一部分占用专用CPU资源池,一部分占用共享资源池(结合云主机物理CPU绑定)。
2)集群里面有10台服务器,可以将其中的两台服务器上的CPU资源设置为专用CPU资源,另外的8台设置为共享CPU资源,创建云主机的时候选择是否创建在专用或者共享的资源池即可。
需要说明的是,本申请中的绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求,宿主机为承载云主机的主机,并且,创建云主机时会根据资源需求选择满足条件的宿主机,例如:当请求创建的云主机基本资源为{“vcpu”:5,“ram”:512,“disk”:10}(vcpu:虚拟CPU,ram:内存,disk:硬盘)时,云主机调度程序,从现有主机中选择满足请求条件的主机,作为创建该云主机的宿主机,也即:判定主机现有可用的物理CPU核数大于请求的vcpu数,现有主机可用内存大小大于请求的ram大小,现有主机可用硬盘大小大于请求的disk数的主机作为创建云主机的宿主机。
S102、从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
需要说明的是,本申请中的专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池,那么接收到分配请求时,则需要从专用物理CPU资源池以外的资源池中分配物理CPU核心(如共享物理CPU资源池),由于绑定和分配的物理CPU核心不在同一个物理CPU资源池,那么分配请求便不会受到已绑定物理CPU核心的影响,从而实现了对物理CPU资源的有效管理,提高云平台物理资源的高可用性,提高资源利用率。
因此本申请接收到绑定请求后,便需要从专用物理CPU资源池中确定待绑定的物理CPU核心,本申请在确定待绑定的物理CPU核心时,可以通过多种方式确定,例如:可以通过指定的方式确定,可以通过随机分配的方式确定,还可以通过按照预定顺序的方式确定等等,在此并不具体限定。
S103、将云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
本申请确定待绑定的物理CPU核心后,便可将云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
可以看出,在本申请从服务器物理CPU资源中划分出仅进行虚拟CPU核心绑定的专用物理CPU资源池,这样接收到绑定请求后,便可将虚拟CPU核心与专用物理CPU资源池中的物理CPU核心进行绑定,这样再接收到物理CPU核心的分配请求时,可从其他资源池中进行分配,已绑定的物理CPU并不影响物理CPU的分配,从而提供了有效的物理CPU资源管理方式,提高了云主机的性能,提高了云平台物理资源的高可用性及利用率。
参见图2,本发明实施例提供的另一具体的云主机虚拟CPU核心与物理CPU核心的绑定方法流程示意图;该方法包括:
S201、接收绑定请求,绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
S202、判断绑定请求中是否携带指定绑定信息;若存在,则执行S203;若不存在,则执行S204;
其中,指定绑定信息为将云主机的虚拟CPU核心CPUx绑定至物理CPU核心CPUy的信息,物理CPU核心CPUy为专用物理CPU资源池中的核心;专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;若宿主机的物理CPU的NUMA数量大于一,则所述指定绑定信息中的物理CPU核心CPUy为:所述宿主机的物理CPU的同一NUMA的物理CPU核心,或者所述宿主机的物理CPU的不同NUMA的物理CPU核心的组合;
S203、将物理CPU核心CPUy作为待绑定的物理CPU核心;
S204、随机从专用物理CPU资源池中确定待绑定的物理CPU核心;
S205、将云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
其中,本方案还包括:接收分配请求,分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;从共享物理CPU资源池中确定待分配的物理CPU核心;其中,共享物理CPU资源池为进行虚拟CPU核心分配的资源池;将待分配的物理CPU核心分配至云主机的虚拟CPU核心。
需要说明的是,如果本申请接收到的是分配请求,该分配请求未指定云主机的虚拟CPU核心和主机物理CPU核心的映射关系,也即:通过云主机创建过程自动调度分配的主机物理CPU资源,都是不做绑定的,那么被创建的云主机虚拟CPU将会从共享CPU资源池中进行分配。
可以理解的是,本申请从专用物理CPU资源池中确定待绑定的物理CPU核心时,可以通过指定的方式确定待绑定的CPU核心,也即:可以将云主机的虚拟CPUx绑定到物理CPUy上;当然本申请也可以通过随机选取的方式从专用物理CPU资源池中确定待绑定的物理CPU核心,在此,分别以云主机虚拟CPU核心数及物理CPU的NUMA架构的不同情况对此进行具体说明:
1)请求创建的云主机虚拟CPU核心数为1时:由于只有1个虚拟CPU核心需要绑定,因此只需要指明要将云主机创建在专用CPU资源池还是创建在共享CPU资源池即可,通过云主机调度程序自动分配主机物理CPU核心给云主机。在本实施例中,具体是将虚拟CPU核心指定到专用物理CPU资源池中的物理CPU核心;当然,还可以自动从专用物理CPU资源池中选择物理CPU核心数进行创建,在自动选择物理CPU核心时,可以根据物理CPU当前状态和压力情况进行选择,也即:由于在创建云主机需要指定虚拟CPU、内存和硬盘等基本资源,因此在自动选择时,会根据请求所指定的资源选择主机集群中合适的物理主机进行创建,因此在选择物理CPU核心时只要选择满足请求所指定的条件即可创建云主机。
2)请求创建的云主机虚拟CPU核心数为1>时,此时和云主机是否设置“numa_node=xx”配置有关;需要说明的是,numa_node是指物理CPU的NUMA架构,新的服务器的一颗CPU的NUMA NODE一般都在2个以上,例如:一个服务器的NUMA架构为:
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
如果只有一个NUMA node的时候即只有:
NUMA node0 CPU(s): 0-7,16-23
此时,可以将此NUMA node作为一个专用CPU资源池,其中可使用的物理CPU核为0-7,16-23。
在此,本申请根据“numa_node=xx”配置的不同,主要存在两种情况:
a)如果不要求物理CPU绑定,那么被创建的云主机虚拟CPU将会从共享CPU资源池中进行分配;
b)如果要求物理CPU绑定,且“numa_node=1”,那么云主机会被调度到专用CPU资源池,若用户指定了物理CPU核心数,云主机将被创建到指定的物理CPU核心上,否则将自动选择物理CPU核心数作为云主机的创建资源,如果找不到可满足的条件,云主机将创建失败;
c)如果要求物理CPU绑定,且“numa_node=X(X>1)”,那么云主机将选择符合条件的物理CPU NUMA NODE进行匹配,可组合使用同一物理CPU的不同NUMA NODE的物理CPU核心以匹配创建条件,若用户指定了物理CPU核心数(可以是一个,也可以是组合,例如:0-3,5;6-7,9-10),云主机将被创建到指定的物理CPU核心上,否则将自动选择物理CPU核心数作为云主机的创建资源;
需要说明的是,划分专用资源池的目的是有效提高对主机物理CPU资源的管理,有效提升云主机的性能。而在本实施例中,通过组合NUMA NODE绑定,可更大限度的使用物理CPU资源,
d)也可以将云主机的部分虚拟CPU核心资源绑定物理CPU核心,即被请求创建的云主机虚拟CPU核心(虚拟核心>1)可以同时使用专用物理CPU资源池和共享物理CPU资源池,此时需要“numa_node=X(X>1)”配置的支持。
需要说明的是,如上述说明的服务器NUMA NODE架构的形式,一个服务器上可能有多个NUMA NODE。只有当numa_node>1,即服务器CPU有多个NUMA NODE的时候,云主机才能建在同一个CPU的不同NUMA NODE上。也即:一个云主机不能横跨两个CPU进行创建,但是跨一个CPU的两个NUMA NODE是可以的。
需要说明的是,在云计算技术盛行的今天,高效易用的云平台是站住脚跟的基石,当时,由于当前云平台不支持划分物理CPU资源,无法指定物理CPU核心创建云主机,无法充分利用物理服务器资源,无法满足用户资源高可用的需求场景,大大降低了云平台的易用性。因此,本申请通过将主机资源池划分为专用物理CPU资源池和共享物理CPU资源池,以及支持云主机创建时指定物理CPU核心数创建,可解决云平台物理CPU资源无法充分利用,云主机虚拟CPU绑定物理CPU不可指定的问题,大大提高云平台的易用性。
基于上述任意方法实施例,在本实施例中,将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定之后,还包括:将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
本申请添加了上述创建云主机物理CPU绑定方法后,还需要将用户请求的虚拟CPUx核心和物理CPUy核心的绑定关系,注入云主机配置文件,生成虚拟CPUx核心和物理CPUy核心的映射关系。其中,将绑定关系注入云主机配置文件可以理解为:将绑定关系写入云主机XML文件,该云主机的XML文件需要将指定的虚拟CPU和主机的物理CPU进行绑定,以便了解主机上的CPU核心数是否被使用,另外,主机也会标记已经被使用的CPU核心数,在下次创建云主机的时候主机上的这些已经被占用的物理CPU核将不再提供给云主机进行调度。
需要说明的是,云主机的XML文件,是在云主机创建成功后根据云主机自身配置及当前环境中的一些配置生成的,无论是否使用CPU绑定,都会生成XML文件。因此在本申请中,在云主机创建时,都需要将CPUx/CPUy核心数注入云主机配置文件。该配置文件中的CPU映射关系记录了云主机的虚拟CPU是否绑定到了主机的物理CPU核,如果做了绑定,XML文件中会记录绑定的物理CPU核的核数是哪个,如果不做绑定,只做分配,XML文件中不会记录物理CPU核的核数是哪个,只记录云主机分配了多少个虚拟CPU,不会体现主机物理CPU信息。
综上可以看出,本申请提供的这种云平台云主机虚拟CPU核心绑定物理CPU核心策略的改进方案,主要针对云平台云主机创建时虚拟CPU核心绑定物理CPU核心,及物理CPU核心的选择方式上进行改进,在此提供一具体实施方案,主要过程如下:
1)对云平台上同一可用域中的物理服务器进行设置,划分专用物理CPU资源池和共享物理CPU资源池;
2)设置云主机创建请求分配的虚拟CPU核心数,确定该云主机是否对计算能力有一定的要求,是否要做物理CPU绑定;
需要说明的是,该计算能力可以为对数据的处理能力,也即:如果对计算能力有一定需求,这时可进行虚拟CPU和物理CPU核的绑定,实现了CPU独占,此时可以保证CPU的高性能运行的,避免了频繁切换物理CPU核,刷新CPU Cache带来的CPU资源损耗。
3)根据云主机请求资源,对可用域内物理资源(包括CPU,内存,硬盘资源)进行调度,判定是否满足云主机创建条件;如果满足条件,则选择为宿主机,并在该宿主机上通过上述绑定方法实现云主机虚拟CPU核心与物理CPU核心的绑定。
4)成功创建云主机,生成云主机XML文件,若设置物理CPU绑定请求,XML文件中将存在云主机虚拟CPU核心和物理CPU核心的映射关系,也可通过云平台获取此映射关系;
需要说明的是,如果不从云平台获取,则需要去底层操作linux命令获取虚拟机XML信息,才能看到云主机虚拟CPU和主机物理CPU的映射关系。从云平台获取映射关系,就是为了方便使用,方便查看,提高云平台可用性。
5)若云主机创建失败,给出合理的错误提示。
综上可以看出,本申请通过划分专用资源池可有效提高对主机物理CPU资源的管理,有效提升云主机的性能。通过对云平台云主机创建虚拟CPU核心和物理CPU核心绑定策略进行改进,通过允许指定物理CPU核心进行绑定,可有效提高物理CPU的利用率,大大提高了云平台的易用性。
下面对本发明实施例提供的绑定装置进行介绍,下文描述的绑定装置与上文描述的绑定方法可以相互参照。
参见图3,本发明实施例提供的一种云主机虚拟CPU核心与物理CPU核心的绑定装置结构示意图;该装置包括:
第一接收模块100,用于接收绑定请求,所述绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
第一确定模块200,用于从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,所述专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
绑定模块300,用于将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
其中,本方案还包括:
第二接收模块,用于接收分配请求,所述分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;
第二确定模块,用于从共享物理CPU资源池中确定待分配的物理CPU核心;其中,所述共享物理CPU资源池为进行虚拟CPU核心分配的资源池;
分配模块,用于将所述待分配的物理CPU核心分配至所述云主机的虚拟CPU核心。
其中,本方案还包括:
绑定关系写入模块,用于将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
其中,所述第一确定模块包括:
判断单元,用于判断所述绑定请求中是否携带指定绑定信息;所述指定绑定信息为将所述云主机的虚拟CPU核心CPUx绑定至物理CPU核心CPUy的信息,所述物理CPU核心CPUy为专用物理CPU资源池中的核心;
第一确定单元,用于在所述绑定请求中携带指定绑定信息时,将所述物理CPU核心CPUy作为待绑定的物理CPU核心;
第二确定单元,用于在所述绑定请求中不携带指定绑定信息时,随机从所述专用物理CPU资源池中确定待绑定的物理CPU核心。
其中,若宿主机的物理CPU的NUMA数量大于一,则所述指定绑定信息中的物理CPU核心CPUy为:所述宿主机的物理CPU的同一NUMA的物理CPU核心,或者所述宿主机的物理CPU的不同NUMA的物理CPU核心的组合。
本发明实施例还公开了一种云主机虚拟CPU核心与物理CPU核心的绑定设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任意方法实施例所述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
参见图4,为本发明实施例公开的一种云主机虚拟CPU核心与物理CPU核心的绑定设备结构示意图;其中,该设备可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器11在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备的应用软件及各类数据,例如执行绑定方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行绑定方法的程序代码等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14的设备,本领域技术人员可以理解的是,图4示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种云主机虚拟CPU核心与物理CPU核心的绑定方法,其特征在于,包括:
接收绑定请求,所述绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,所述专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
2.根据权利要求1所述的绑定方法,其特征在于,还包括:
接收分配请求,所述分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;
从共享物理CPU资源池中确定待分配的物理CPU核心;其中,所述共享物理CPU资源池为进行虚拟CPU核心分配的资源池;
将所述待分配的物理CPU核心分配至所述云主机的虚拟CPU核心。
3.根据权利要求1所述的绑定方法,其特征在于,将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定之后,还包括:
将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
4.根据权利要求1至3任意一项所述的绑定方法,其特征在于,所述从专用物理CPU资源池中确定待绑定的物理CPU核心,包括:
判断所述绑定请求中是否携带指定绑定信息;所述指定绑定信息为将所述云主机的虚拟CPU核心CPUx绑定至物理CPU核心CPUy的信息,所述物理CPU核心CPUy为专用物理CPU资源池中的核心;
若存在,则将所述物理CPU核心CPUy作为待绑定的物理CPU核心;
若不存在,则随机从所述专用物理CPU资源池中确定待绑定的物理CPU核心。
5.根据权利要求4所述的绑定方法,其特征在于,
若宿主机的物理CPU的NUMA数量大于一,则所述指定绑定信息中的物理CPU核心CPUy为:所述宿主机的物理CPU的同一NUMA的物理CPU核心,或者所述宿主机的物理CPU的不同NUMA的物理CPU核心的组合。
6.一种云主机虚拟CPU核心与物理CPU核心的绑定装置,其特征在于,包括:
第一接收模块,用于接收绑定请求,所述绑定请求为将云主机的虚拟CPU核心绑定至宿主机的物理CPU核心的请求;
第一确定模块,用于从专用物理CPU资源池中确定待绑定的物理CPU核心;其中,所述专用物理CPU资源池为仅进行虚拟CPU核心绑定的资源池;
绑定模块,用于将所述云主机的虚拟CPU核心与待绑定的物理CPU核心进行绑定。
7.根据权利要求6所述的绑定装置,其特征在于,还包括:
第二接收模块,用于接收分配请求,所述分配请求为:为云主机的虚拟CPU核心分配宿主机的物理CPU核心的请求;
第二确定模块,用于从共享物理CPU资源池中确定待分配的物理CPU核心;其中,所述共享物理CPU资源池为进行虚拟CPU核心分配的资源池;
分配模块,用于将所述待分配的物理CPU核心分配至所述云主机的虚拟CPU核心。
8.根据权利要求7所述的绑定装置,其特征在于,还包括:
绑定关系写入模块,用于将所述云主机的虚拟CPU核心与物理CPU核心的绑定关系,写入所述云主机的配置文件。
9.一种云主机虚拟CPU核心与物理CPU核心的绑定设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的云主机虚拟CPU核心与物理CPU核心的绑定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911208779.5A CN111104219A (zh) | 2019-11-30 | 2019-11-30 | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911208779.5A CN111104219A (zh) | 2019-11-30 | 2019-11-30 | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111104219A true CN111104219A (zh) | 2020-05-05 |
Family
ID=70421204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911208779.5A Withdrawn CN111104219A (zh) | 2019-11-30 | 2019-11-30 | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104219A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831398A (zh) * | 2020-07-20 | 2020-10-27 | 平安科技(深圳)有限公司 | 虚拟机创建及cpu资源分配方法、装置、设备 |
CN112052068A (zh) * | 2020-08-17 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种Kubernetes容器平台CPU绑核的方法与装置 |
CN112231058A (zh) * | 2020-10-16 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种突破numa拓扑限制创建云主机的方法及装置 |
CN116820687A (zh) * | 2023-08-29 | 2023-09-29 | 银河麒麟软件(长沙)有限公司 | 基于kubelet的NUMA架构资源分配方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103180830A (zh) * | 2012-08-31 | 2013-06-26 | 华为技术有限公司 | 中央处理器资源分配方法和计算节点 |
US9274823B1 (en) * | 2014-12-24 | 2016-03-01 | Parallels IP Holdings GmbH | Thin hypervisor for native execution of unsafe code |
CN109144706A (zh) * | 2017-06-15 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种cpu资源的动态分配方法、装置及物理机 |
-
2019
- 2019-11-30 CN CN201911208779.5A patent/CN111104219A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103180830A (zh) * | 2012-08-31 | 2013-06-26 | 华为技术有限公司 | 中央处理器资源分配方法和计算节点 |
US9274823B1 (en) * | 2014-12-24 | 2016-03-01 | Parallels IP Holdings GmbH | Thin hypervisor for native execution of unsafe code |
CN109144706A (zh) * | 2017-06-15 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种cpu资源的动态分配方法、装置及物理机 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831398A (zh) * | 2020-07-20 | 2020-10-27 | 平安科技(深圳)有限公司 | 虚拟机创建及cpu资源分配方法、装置、设备 |
CN112052068A (zh) * | 2020-08-17 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种Kubernetes容器平台CPU绑核的方法与装置 |
CN112231058A (zh) * | 2020-10-16 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种突破numa拓扑限制创建云主机的方法及装置 |
CN116820687A (zh) * | 2023-08-29 | 2023-09-29 | 银河麒麟软件(长沙)有限公司 | 基于kubelet的NUMA架构资源分配方法及*** |
CN116820687B (zh) * | 2023-08-29 | 2023-12-05 | 银河麒麟软件(长沙)有限公司 | 基于kubelet的NUMA架构资源分配方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984264B (zh) | 虚拟gpu的实现方法、装置及*** | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
WO2021135263A1 (zh) | 一种cpu资源预留方法、装置及其相关设备 | |
CN107209716B (zh) | 内存管理装置和方法 | |
KR20210095690A (ko) | 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체 | |
CN109960569B (zh) | 一种虚拟化处理方法及装置 | |
CN110750336B (zh) | 一种OpenStack虚拟机内存热扩容方法 | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US20220229701A1 (en) | Dynamic allocation of computing resources | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及*** | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储*** | |
CN105677481B (zh) | 一种数据处理方法、***及电子设备 | |
CN116483740B (zh) | 内存数据的迁移方法、装置、存储介质及电子装置 | |
CN112162818A (zh) | 一种虚拟内存分配方法、装置、电子设备及存储介质 | |
US9405470B2 (en) | Data processing system and data processing method | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN114281516A (zh) | 一种基于numa属性的资源分配方法及装置 | |
CN111949414B (zh) | 一种存储控制器性能优化方法、***、终端及存储介质 | |
CN109144231B (zh) | 一种虚拟化电力管理方法及设备 | |
CN109815192B (zh) | 一种嵌入式***内存管理方法及装置 | |
CN113918283A (zh) | 数据存储方法、装置、***及介质 | |
CN113268346A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200505 |
|
WW01 | Invention patent application withdrawn after publication |