CN112181595A - 虚拟机的numa节点绑定方法、装置、设备及存储介质 - Google Patents
虚拟机的numa节点绑定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112181595A CN112181595A CN202011077864.5A CN202011077864A CN112181595A CN 112181595 A CN112181595 A CN 112181595A CN 202011077864 A CN202011077864 A CN 202011077864A CN 112181595 A CN112181595 A CN 112181595A
- Authority
- CN
- China
- Prior art keywords
- virtual
- numa
- node
- numa node
- virtual machine
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000015654 memory Effects 0.000 claims abstract description 96
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 101000598160 Homo sapiens Nuclear mitotic apparatus protein 1 Proteins 0.000 description 1
- 102100036961 Nuclear mitotic apparatus protein 1 Human genes 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5011—Allocation 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/5016—Allocation 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
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种虚拟机的NUMA节点绑定方法、装置、设备及存储介质;在本方案中,需要监控主机上所有NUMA节点的资源使用情况信息,在分配虚拟NUMA节点时,不再固定按照虚拟机socket和core的分布来分配虚拟NUMA节点,而是按照当前主机所有NUMA节点的资源使用情况信息来分配虚拟机的虚拟NUMA节点;将虚拟机的虚拟CPU及内存分配到各个vNUMA节点后,再将虚拟机内每一个虚拟NUMA节点上的虚拟CPU和内存绑定在主机对应的NUMA节点上,通过该方式,可避免出现因NUMA节点负载较大而影响虚拟机处理效率的问题,提高虚拟机的运行效率,并减少用户的手动操作。
Description
技术领域
本发明涉及虚拟机技术领域,更具体地说,涉及一种虚拟机的NUMA节点绑定方法、装置、设备及存储介质。
背景技术
非一致性内存访问架构(Non Uniform Memory Access Architecture,NUMA)是一种多处理器的内存访问架构,NUMA架构将内存域引入计算机操作系统,用户访问内存的速度取决于访问内存块与进程所在CPU(central processing unit,中央处理器)的相对位置,若访问数据所在的内存块与CPU处于同一节点下,则访问速度会很快,但如果访问数据所在的内存块与CPU处于非同一节点下,则会发生内存数据跨节点访问,期间会消耗一定的时间用来处理上下文切换等流程,因此会存在一定的效率降低问题;但上述问题并不会遮掩NUMA架构的优点,这种架构在访问本节点内存时,相较于SMP(Symmetrical Multi-Processing,对称多处理)架构,能够更加快速地访问内存,减少缓存竞争,并具有较好的扩展性。
当虚拟化平台运行在NUMA架构的主机上时,为了充分发挥NUMA架构的优点,需要虚拟化平台通过一定逻辑处理优化虚拟机进程以及线程在各个numa节点的分布,以提高虚拟机的处理效率;现阶段的虚拟化平台在这一过程中的逻辑,往往是将虚拟机的所有vCPU(虚拟机的CPU)绑定在同一numa节点上;或者通过虚拟机的CPU socket和core来划分虚拟机内部的vNUMA节点,然后再手动分配虚拟机的vCPU绑定在不同的vNUMA节点。
上述两种方式虽然在一定程度上能够让虚拟机进程以及进程下的所有线程在访问主机CPU和内存时,尽量使用本节点内存,减少了远端内存的访问,提升虚拟机的部分性能,但是面对复杂的集群问题以及各个主机上不同的资源使用率的问题,通过上述两种方法还是存在不同的弊端。如:采用第一绑定方式时,若主机当前NUMA节点负载较大,通过该绑定方式会影响虚拟机的处理效率,得不偿失;若采用第二种方式,则需要人为观察主机的CPU、内存负载情况,再逐个进行CPU绑定,操作较为复杂,并且虚拟机的vNUMA(virtual-NonUniform Memory Access Architecture,虚拟机的非一致性内存访问架构)节点由于依赖CPU的socket和core的控制,无法由用户自动控制,也会造成某一vNUMA节点由于资源压力的问题导致效率降低。
发明内容
本发明的目的在于提供一种虚拟机的NUMA节点绑定方法、装置、设备及存储介质,以提高虚拟机运行效率。
为实现上述目的,本发明提供一种虚拟机的NUMA节点绑定方法,包括:
获取主机上每个NUMA节点的资源使用情况信息;
利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点,并将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
其中,所述获取主机上每个NUMA节点的资源使用情况信息,包括:
获取所述主机上每个NUMA节点的CPU使用率和/或内存使用率。
其中,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
判断每个NUMA节点的CPU使用率是否大于第一预定阈值;
若大于所述第一预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
其中,所述判断每个NUMA节点的CPU使用率是否大于第一预定阈值之前,还包括:
以预定时长为间隔获取每个NUMA节点的CPU使用率,得到至少两组CPU使用率;
则所述判断每个NUMA节点的CPU使用率是否大于第一预定阈值,包括:判断每个NUMA节点的每组CPU使用率是否均大于第一预定阈值。
其中,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
判断每个NUMA节点的内存使用率是否大于第二预定阈值;
若大于所述第二预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
其中,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定符合所述选定条件的NUMA节点的第一数量;
判断所述第一数量是否大于等于所述虚拟机设定的第二数量;
若是,则确定分配给虚拟机的虚拟NUMA节点数量为所述第一数量,若否,则确定分配给虚拟机的虚拟NUMA节点数量为所述第二数量。
其中,所述将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点,包括:
将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点;
若将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点后,存在剩余虚拟CPU和/或内存未分配,则将未分配的虚拟CPU和/或内存分配至所述虚拟机的第一个虚拟NUMA节点。
为实现上述目的,本发明进一步提供一种虚拟机的NUMA节点绑定装置,包括:
获取模块,用于获取主机上每个NUMA节点的资源使用情况信息;
数量确定模块,用于利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
节点创建模块,用于利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点;
分配模块,用于将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
绑定模块,用于将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的NUMA节点绑定方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的NUMA节点绑定方法的步骤。
通过以上方案可知,本发明实施例提供的一种虚拟机的NUMA节点绑定方法,包括:获取主机上每个NUMA节点的资源使用情况信息;利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点,并将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
综上可以看出,本申请需要监控主机上所有NUMA节点的资源使用情况信息,在分配虚拟NUMA节点时,不再固定按照虚拟机socket和core的分布来分配虚拟NUMA节点,而是按照当前主机所有NUMA节点的资源使用情况信息来分配虚拟机的虚拟NUMA节点;将虚拟机的虚拟CPU及内存分配到各个vNUMA节点后,再将虚拟机内每一个虚拟NUMA节点上的虚拟CPU和内存绑定在主机对应的NUMA节点上,通过该方式,可避免出现因NUMA节点负载较大而影响虚拟机处理效率的问题,提高虚拟机的运行效率,并减少用户的手动操作。本发明还公开了一种虚拟机的NUMA节点绑定装置、设备及存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种虚拟机的NUMA节点绑定方法流程示意图;
图2为本发明实施例公开的NUMA绑定示意图;
图3为本发明实施例公开的一种虚拟机的NUMA节点绑定装置结构示意图;
图4为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种虚拟机的NUMA节点绑定方法、装置、设备及存储介质,以提高虚拟机运行效率。
参见图1,本发明实施例提供的一种虚拟机的NUMA节点绑定方法流程示意图;通过图1可以看出,该方法包括如下步骤:
S101、获取主机上每个NUMA节点的资源使用情况信息;
其中,获取主机上每个NUMA节点的资源使用情况信息,包括:获取所述主机上每个NUMA节点的CPU使用率和/或内存使用率。
具体来说,本申请通过监控来获取主机各个NUMA节点的资源状况使用情况信息,例如:资源使用率或者资源剩余信息。在本申请中,主要获取CPU使用率以及内存使用率,通过其他资源使用率也可以,在此并不具体限定。
S102、利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
在本申请中,预先设定的选定阈值为针对每个资源设定的选定条件,其可以为资源使用率的最大值,如果某一NUMA节点的某一资源的使用量大于对应的使用率最大值,则说明该NUMA节点不满足该选定条件,若不大于该使用率最大值,则说明该NUMA节点满足该选定条件。通过该方式,即可从主机中去除不满足选定条件的NUMA节点,在向NUMA节点分配虚拟NUMA节点时,便不考虑不满足选定条件的NUMA节点,以避免出现因NUMA节点负载较大影响虚拟机处理效率的问题。
并且,本申请可按照主机中满足选定条件的可用NUMA节点数来设置虚拟机的vNUMA节点数量,若主机中所有NUMA节点的资源压力都过高,则虚拟机开启NUMA感知失败,无法与NUMA节点绑定。
S103、利用虚拟NUMA节点数量创建对应数量个虚拟NUMA节点,并将虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
其中,将虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点,包括:将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点;若将虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点后,存在剩余虚拟CPU和/或内存未分配,则将未分配的虚拟CPU和/或内存分配至所述虚拟机的第一个虚拟NUMA节点。
可以理解的是,本申请确定虚拟NUMA节点数量后,需要利用该数量指定虚拟机的vNUMA节点,并按照vNUMA节点的数量平均分配虚拟机的vCPU和内存,若vCPU数量或内存除以vNUMA节点数之后有余数,则将剩余的vCPU或内存默认分配给虚拟机的第一个vNUMA节点;当然,本申请也可根据CPU资源情况分配vCPU,或者根据内存使用情况分配内存,但是为了避免影响内部程序的运行,各个vNUMA节点分配的资源差不宜过大。
S104、将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
也就是说,本申请监控主机各个NUMA节点资源使用情况后,需要判定每个NUMA节点是否符合选定条件,若符合选定条件,则创建对应的vNUMA,否则不分配,参见图2,为本实施例公开的NUMA绑定示意图;通过图2可以看出,由于NUMA0、NUMA1、NUMA2符合选定条件,则分配对应的vNUMA0、vNUMA1、vNUMA2,而NUMA3不符合选定条件,则不分配对应的vNUMA。
并且,本申请确定每个vNUMA节点应该分配的vCPU数量以及内存大小后,需要将vNUMA节点所分配的内存绑定至对应主机的NUMA节点上;再将虚拟机vCPU逐个绑定至主机NUMA节点所属的物理核上面,如图2所示,虚拟机的虚拟CPU共有4个,平均分配给vNUMA0~vNUMA2后剩余1个,则分配给vNUMA0,同样的,由于虚拟机的内存为16G,分配给vNUMA0~vNUMA2后剩余1G,则分配给vNUMA0。
综上可以看出,本申请通过对主机的资源监控,得到各个NUMA节点的资源使用情况,再根据资源使用情况来设置虚拟机vNUMA节点数量并将CPU和内存绑定到对应的主机NUMA节点上,至此,虚拟机NUMA感知功能完成,实现对NUMA的绑定,虚拟机通过主机NUMA节点的本节点内存访问,加速虚拟机的运行效率。
在本实施例中,提供了如下几种确定虚拟NUMA节点数量的方法:
一、若资源使用情况信息为内存使用率,则S102具体包括:判断每个NUMA节点的内存使用率是否大于第二预定阈值;若大于所述第二预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
如:查询各个NUMA节点所属的剩余内存,若剩余内存使用率大于第二预定阈值80%,则说明该NUMA节点不适合分配虚拟机的vNUMA节点,也即该NUMA节点为不满足选定条件的节点;当然,如果虚拟机即将分配的vNUMA节点占用的内存大于剩余内存,则当前主机NUMA节点同样不适合分配虚拟机的vNUMA节点,也即该NUMA节点为不满足选定条件的节点。
二、若资源使用情况信息为CPU使用率,则S102具体包括:判断每个NUMA节点的CPU使用率是否大于第一预定阈值;若大于所述第一预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
需要说明的是,为了避免出现CPU使用率暂时性过高的问题,在本实施例中,可通过采样多组数据对节点进行判定。如:以预定时长为间隔获取每个NUMA节点的CPU使用率,得到至少两组CPU使用率;并判断每个NUMA节点的每组CPU使用率是否均大于第一预定阈值。若均大于第一预定阈值,则判定该NUMA节点不符合选定条件。
如:查询各个NUMA节点所属的CPU使用率,采样三组CPU数据,每组CPU数据的中间间隔为0.1s,确定查询的NUMA节点的CPU资源是否长时间占用过高,若过高,则判定当前主机NUMA节点不适合分配虚拟机的vNUMA节点。需要说明的是,本申请中的CPU使用率为该NUMA节点的总使用率,若每个CPU最高使用率为100%,NUMA节点有8个CPU,则该节点CPU最高使用率为800%,若第一预定阈值为700%,则查询到该节点的CPU使用率累加后达到了700%以上时,则说明不满足选定条件。
需要说明的是,本申请通过CPU使用率及内存使用率来确定符合选定条件的NUMA节点时,可以仅通过判断每个NUMA节点的内存使用率的方式确定,也可以仅通过判断每个NUMA节点的CPU使用率的方式确定,当然也可以通过判断每个NUMA节点的内存使用率以及CPU使用率的方式确定,也即:只有NUMA节点的内存使用率及CPU使用率均满足选定条件时才会被判定为符合选定条件的节点。
三、若用户预先设定了虚拟NUMA节点的数量,则S102具体包括:利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定符合选定条件的NUMA节点的第一数量;判断所述第一数量是否大于等于所述虚拟机设定的第二数量;若是,则确定分配给虚拟机的虚拟NUMA节点数量为所述第一数量,若否,则确定分配给虚拟机的虚拟NUMA节点数量为所述第二数量。也就是说,如果符合选定条件的节点数量不小于虚拟机预先设定的数量,则按照虚拟机设定的数量为准,否则以满足预定条件的节点数量为准。
下面对本发明实施例提供的节点绑定装置进行介绍,下文描述的节点绑定装置与上文描述的节点绑定方法可以相互参照。
参见图3,本发明实施例提供的一种虚拟机的NUMA节点绑定装置,包括:
获取模块100,用于获取主机上每个NUMA节点的资源使用情况信息;
数量确定模块200,用于利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
节点创建模块300,用于利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点;
分配模块400,用于将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
绑定模块500,用于将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
其中,所述获取模块具体用于:获取所述主机上每个NUMA节点的CPU使用率和/或内存使用率。
其中,数量确定模块包括:
第一判断单元,用于判断每个NUMA节点的CPU使用率是否大于第一预定阈值;
第一节点判定单元,用于在NUMA节点的CPU使用率大于所述第一预定阈值,判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
第一确定单元,用于确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
其中,所述数量确定模块还包括:
获取单元,用于以预定时长为间隔获取每个NUMA节点的CPU使用率,得到至少两组CPU使用率;
则所述第一判断单元具体用于:判断每个NUMA节点的每组CPU使用率是否均大于第一预定阈值。
其中,数量确定模块包括:
第二判断单元,用于判断每个NUMA节点的内存使用率是否大于第二预定阈值;
第二节点判定单元,用于在NUMA节点的内存使用率大于所述第二预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
第二确定单元,用于确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
其中,数量确定模块包括:
数量确定单元,用于利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定符合所述选定条件的NUMA节点的第一数量;
第三判断单元,用于判断所述第一数量是否大于等于所述虚拟机设定的第二数量;若是,则确定分配给虚拟机的虚拟NUMA节点数量为所述第一数量,若否,则确定分配给虚拟机的虚拟NUMA节点数量为所述第二数量。
其中,分配模块具体用于:将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点;若将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点后,存在剩余虚拟CPU和/或内存未分配,则将未分配的虚拟CPU和/或内存分配至所述虚拟机的第一个虚拟NUMA节点。
参见图4,本发明实施例提供的一种电子设备结构示意图,包括:
存储器11,用于存储计算机程序;
处理器12,用于执行所述计算机程序时实现上述方法实施例所述的NUMA节点绑定方法的步骤。
在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
该设备可以包括存储器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接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口15,用户接口15可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口15还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-15的设备,本领域技术人员可以理解的是,图4示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例所述的NUMA节点绑定方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种虚拟机的NUMA节点绑定方法,其特征在于,包括:
获取主机上每个NUMA节点的资源使用情况信息;
利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点,并将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
2.根据权利要求1所述的NUMA节点绑定方法,其特征在于,所述获取主机上每个NUMA节点的资源使用情况信息,包括:
获取所述主机上每个NUMA节点的CPU使用率和/或内存使用率。
3.根据权利要求2所述的NUMA节点绑定方法,其特征在于,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
判断每个NUMA节点的CPU使用率是否大于第一预定阈值;
若大于所述第一预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
4.根据权利要求3所述的NUMA节点绑定方法,其特征在于,所述判断每个NUMA节点的CPU使用率是否大于第一预定阈值之前,还包括:
以预定时长为间隔获取每个NUMA节点的CPU使用率,得到至少两组CPU使用率;
则所述判断每个NUMA节点的CPU使用率是否大于第一预定阈值,包括:判断每个NUMA节点的每组CPU使用率是否均大于第一预定阈值。
5.根据权利要求2所述的NUMA节点绑定方法,其特征在于,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
判断每个NUMA节点的内存使用率是否大于第二预定阈值;
若大于所述第二预定阈值,则判定对应的NUMA节点为不符合选定条件的节点;否则,判定对应的NUMA节点为符合选定条件的节点;
确定符合选定条件的节点的总数量,并将所述总数量作为分配给虚拟机的虚拟NUMA节点数量。
6.根据权利要求1所述的NUMA节点绑定方法,其特征在于,所述利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量,包括:
利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定符合所述选定条件的NUMA节点的第一数量;
判断所述第一数量是否大于等于所述虚拟机设定的第二数量;
若是,则确定分配给虚拟机的虚拟NUMA节点数量为所述第一数量,若否,则确定分配给虚拟机的虚拟NUMA节点数量为所述第二数量。
7.根据权利要求1至6中任意一项所述的NUMA节点绑定方法,其特征在于,所述将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点,包括:
将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点;
若将所述虚拟机的虚拟CPU及内存能平均分配至每个虚拟NUMA节点后,存在剩余虚拟CPU和/或内存未分配,则将未分配的虚拟CPU和/或内存分配至所述虚拟机的第一个虚拟NUMA节点。
8.一种虚拟机的NUMA节点绑定装置,其特征在于,包括:
获取模块,用于获取主机上每个NUMA节点的资源使用情况信息;
数量确定模块,用于利用预先设定的选定条件及每个NUMA节点的资源使用情况信息,确定分配给虚拟机的虚拟NUMA节点数量;
节点创建模块,用于利用所述虚拟NUMA节点数量创建对应数量个虚拟NUMA节点;
分配模块,用于将所述虚拟机的虚拟CPU及内存分配至每个虚拟NUMA节点;
绑定模块,用于将每个虚拟NUMA节点所分配的虚拟CPU及内存,绑定至对应的符合所述选定条件的NUMA节点上。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的NUMA节点绑定方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的NUMA节点绑定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077864.5A CN112181595A (zh) | 2020-10-10 | 2020-10-10 | 虚拟机的numa节点绑定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077864.5A CN112181595A (zh) | 2020-10-10 | 2020-10-10 | 虚拟机的numa节点绑定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181595A true CN112181595A (zh) | 2021-01-05 |
Family
ID=73948777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011077864.5A Pending CN112181595A (zh) | 2020-10-10 | 2020-10-10 | 虚拟机的numa节点绑定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181595A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608833A (zh) * | 2021-07-19 | 2021-11-05 | 曙光信息产业(北京)有限公司 | 虚拟机创建方法、装置、计算机设备和存储介质 |
CN116302363A (zh) * | 2023-05-16 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 一种虚拟机创建方法、系统、计算机设备及存储介质 |
CN116880965A (zh) * | 2023-09-08 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 一种节点分配方法、系统、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196958A (zh) * | 2017-12-29 | 2018-06-22 | 北京泽塔云科技股份有限公司 | 资源调度分配方法、计算机系统及超融合架构系统 |
CN111078363A (zh) * | 2019-12-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种虚拟机的numa节点调度方法、装置、设备及介质 |
-
2020
- 2020-10-10 CN CN202011077864.5A patent/CN112181595A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196958A (zh) * | 2017-12-29 | 2018-06-22 | 北京泽塔云科技股份有限公司 | 资源调度分配方法、计算机系统及超融合架构系统 |
CN111078363A (zh) * | 2019-12-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种虚拟机的numa节点调度方法、装置、设备及介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608833A (zh) * | 2021-07-19 | 2021-11-05 | 曙光信息产业(北京)有限公司 | 虚拟机创建方法、装置、计算机设备和存储介质 |
CN116302363A (zh) * | 2023-05-16 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 一种虚拟机创建方法、系统、计算机设备及存储介质 |
CN116302363B (zh) * | 2023-05-16 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种虚拟机创建方法、系统、计算机设备及存储介质 |
CN116880965A (zh) * | 2023-09-08 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 一种节点分配方法、系统、装置及介质 |
CN116880965B (zh) * | 2023-09-08 | 2024-02-09 | 苏州浪潮智能科技有限公司 | 一种节点分配方法、系统、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181595A (zh) | 虚拟机的numa节点绑定方法、装置、设备及存储介质 | |
CN102362464B (zh) | 内存访问监测方法和装置 | |
US9898338B2 (en) | Network computer system and method for dynamically changing execution sequence of application programs | |
CN109815162A (zh) | 内存管理方法、装置、移动终端及存储介质 | |
CN103744736A (zh) | 内存管理的方法及Linux终端 | |
CN111240601B (zh) | 一种分区空间的超级块确定方法、装置、设备及存储介质 | |
JP5796722B2 (ja) | Cpuの仮想化を支援することが可能なコンピュータサーバ | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN106933512B (zh) | 一种数据读写的方法及其设备 | |
CN112764925A (zh) | 基于虚拟内存的数据存储方法、装置、设备及存储介质 | |
CN110716805A (zh) | 图形处理器的任务分配方法、装置、电子设备及存储介质 | |
CN110399166B (zh) | ME Nonce值的保存方法、装置、设备及存储介质 | |
CN111625350A (zh) | 网络消息数据的内存分配方法、装置、设备及存储介质 | |
CN109558210B (zh) | 一种虚拟机应用主机gpu设备的方法及系统 | |
US10417005B2 (en) | Multi-multidimensional computer architecture for big data applications | |
CN110618946A (zh) | 堆栈内存分配方法、装置、设备和存储介质 | |
CN116048377A (zh) | 固态硬盘的数据处理方法及相关设备 | |
US20140149691A1 (en) | Data processing system and data processing method | |
CN106648878B (zh) | 一种系统及其动态分配mmio资源的方法 | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN110716806A (zh) | 边缘节点计算能力确定方法、电子设备、系统及介质 | |
CN116483740B (zh) | 内存数据的迁移方法、装置、存储介质及电子装置 | |
CN117311990B (zh) | 资源调整方法、装置、电子设备、存储介质及训练平台 | |
CN118093181A (zh) | 一种基于带宽的内存调度方法、装置、设备及介质 | |
US20230266883A1 (en) | Memory allocation method and apparatus, electronic device, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |
|
RJ01 | Rejection of invention patent application after publication |