虚拟机的NUMA节点调度方法、装置、设备及存储介质与流程

文档序号:32035580发布日期:2022-11-03 03:18阅读:347来源:国知局
虚拟机的NUMA节点调度方法、装置、设备及存储介质与流程
虚拟机的numa节点调度方法、装置、设备及存储介质
技术领域
1.本发明涉及计算机技术领域,具体涉及一种虚拟机的numa节点调度方法、装置、设备及存储介质。


背景技术:

2.非统一内存访问(numa)是一种用于多处理器的电脑内存体设计,内存访问时间取决于处理器的内存位置。
3.利用numa技术,可以把几十个cpu(甚至上百个cpu)组合在一个服务器内。numa服务器的基本特征是具有多个cpu模块,每个cpu模块由多个cpu(如4个)组成,并且具有独立的本地内存、i/o槽口等。由于其节点之间可以通过互联模块进行连接和信息交互,因此每个cpu可以访问整个系统的内存。显然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问numa的由来。而虚拟机(virtual machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机的创建和使用基于物理机的硬件基础,需要将实体机的物理cpu、内存资源作为虚拟机的vcpu、内存。而当给虚拟机分配numa节点时,通常将负载最低的numa节点分配给虚拟机。
4.通过上述方案给虚拟机分配计算资源时,容易造成计算资源分配不均衡,业务的性能较低。


技术实现要素:

5.本技术提供了一种虚拟机的numa节点调度方法、装置、设备及存储介质,提高了目标虚拟机的业务性能,该技术方案如下。
6.一方面,提供了一种虚拟机的numa节点调度方法,所述方法包括:
7.确定目标虚拟机所需numa节点的目标数量;
8.在各个numa节点中,选择目标数量的numa节点,与所述目标虚拟机绑定;
9.监控与所述目标虚拟机绑定的numa节点的负载情况,并当第一节点存在负载不均衡时,将所述目标虚拟机与第一节点的绑定关系切换至第二节点;所述负载情况包括cpu负载以及内存负载。
10.又一方面,提供了一种虚拟机的numa节点调度装置,所述装置包括:
11.目标数量确定模块,用于确定目标虚拟机所需numa节点的目标数量;
12.节点确定模块,用于在各个numa节点中,选择目标数量的numa节点,与所述目标虚拟机绑定;
13.负载均衡模块,用于监控与所述目标虚拟机绑定的numa节点的负载情况,并当第一节点存在负载不均衡时,将所述目标虚拟机与第一节点的绑定关系切换至第二节点;所述负载情况包括cpu负载以及内存负载。
14.在一种可能的实现方式中,所述负载均衡模块,还用于,
15.当检测到所述第一节点的cpu负载与内存负载中的至少一者超过目标阈值时,确定所述第一节点存在负载不均衡,并将所述目标虚拟机与第一节点的绑定关系切换至第二节点。
16.在一种可能的实现方式中,所述负载均衡模块,还用于,
17.在所述第一节点对应的第一物理机中,获取除第一节点外的各个候选节点;
18.按照所述候选节点的负载情况,选取第二节点,以将所述目标虚拟机与第一节点的绑定关系切换至所述第二节点。
19.在一种可能的实现方式中,所述负载均衡模块,还用于,在所述候选节点中,选取平均负载情况最优的最优候选节点;所述平均负载情况为cpu占用率与内存占用率的平均值;
20.当所述最优候选节点的剩余负载资源高于所述目标虚拟机在第一节点中的占用资源时,将所述最优候选节点确定为第二节点。
21.在一种可能的实现方式中,所述负载均衡模块,还用于,
22.当所述最优候选节点的剩余负载资源低于资源阈值时,在所述第一物理机的相邻物理机中选取次候选节点;
23.按照所述次候选节点的负载情况,选取第二节点,以将所述目标虚拟机与第一节点的绑定关系切换至所述第二节点。
24.在一种可能的实现方式中,所述节点确定模块,还用于,
25.在所述各个numa节点中查询未超配节点;
26.当所述各个numa节点存在未超配节点时,在所述未超配节点中选取目标数量的numa节点,通过cgroup与所述目标虚拟机绑定。
27.在一种可能的实现方式中,所述节点确定模块,还用于,
28.当所述各个numa节点中不存在未超配节点时,在超配numa节点中选取目标数量的numa节点,通过cgroup与所述目标虚拟机绑定。
29.在一种可能的实现方式中,所述节点确定模块,还用于,将所述未超配numa节点按照负载情况进行排序,并选取平均负载情况最优的目标数量的numa节点。
30.在一种可能的实现方式中,所述装置还包括数据库保存模块,用于,确定各个物理机中的各个numa节点;
31.按照指定周期,对所述各个numa节点的负载情况进行检测,并将检测结果保存至负载数据库中。
32.又一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的虚拟机的numa节点调度方法。
33.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的虚拟机的numa节点调度方法。
34.再一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述虚拟机的numa节点调度方法。
35.本技术提供的技术方案可以包括以下有益效果:
36.在给目标虚拟机分配numa节点之前,需要先计算该目标虚拟机所需要numa节点的目标数量,再在各个numa节点中,选取出目标数量的numa节点与目标虚拟机绑定,在完成绑定后,再对与目标虚拟机绑定的numa节点的负载情况进行实时监控,当监控到第一节点的负载不均衡时,再将目标虚拟机与第一节点的绑定关系切换到第二节点。上述方案在实现numa节点的均衡操作时,同时考虑了cpu负载以及内存负载的情况,尽可能避免了计算资源分配不均衡的情况发生,提高了目标虚拟机的业务性能。
附图说明
37.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1是根据一示例性实施例示出的一种虚拟机的numa节点调度系统的结构示意图。
39.图2是根据一示例性实施例示出的一种虚拟机的numa节点调度方法的方法流程图。
40.图3是根据一示例性实施例示出的一种虚拟机的numa节点调度方法的方法流程图。
41.图4示出了本技术实施例涉及的一种虚拟机随机资源调度示意图。
42.图5示出了本技术实施例涉及的一种虚拟机绑定单个资源的示意图。
43.图6示出了本技术实施例涉及的一种虚拟机绑定多个资源的示意图。
44.图7示出了本技术实施例涉及的一种目标虚拟机numa节点选择流程图。
45.图8示出了本技术实施例涉及的一种负载数据库方案示意图。
46.图9示出了本技术实施例涉及的一种虚拟机的numa节点调度装置。
47.图10是根据本技术一示例性实施例提供的一种计算机设备示意图。
具体实施方式
48.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。
50.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
51.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中
预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。
52.在对本技术所示的各个实施例进行说明之前,首先对本技术涉及到的几个概念进行介绍。
53.1)虚拟机(virtual machine)
54.虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的cmos、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
55.2)非一致性内存访问架构(numa,non uniform memory access)
56.numa(non uniform memory access)技术可以使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点。基于电子商务应用对内存访问提出的更高的要求,numa也向复杂的结构设计提出了挑战。
57.非统一内存访问(numa)是一种用于多处理器的电脑内存体设计,内存访问时间取决于处理器的内存位置。在numa下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器的地方到另一个处理器之间共享的处理器或存储器)快一些。
58.numa通过提供分离的存储器给各个处理器,避免当多个处理器访问同一个存储器产生的性能损失来试图解决这个问题。对于涉及到分散的数据的应用(在服务器和类似于服务器的应用中很常见),numa可以通过一个共享的存储器提高性能至n倍,而n大约是处理器(或者分离的存储器)的个数。
59.图1是根据一示例性实施例示出的一种虚拟机的numa节点调度系统的结构示意图。该系统运行于目标服务器110中,该目标服务器110中运行有包括虚拟机111以及numa节点112。
60.可选的,该目标服务器110可以与终端120通过有线或无线网络建立通信连接。
61.可选的,该终端120可以向该目标服务器发送用户请求,当该目标服务器110接收到用户请求后,则可以根据该用户请求在目标服务器内创建对应的目标虚拟机,以实现用户所请求执行的功能。
62.可选的,该终端可以是具有数据处理功能以及数据存储功能的终端设备,该终端可以包括一个终端,也可以包括多个终端,本技术实施例对该终端的数量不设限制。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等具有数据处理器以及数据存储组件的终端设备,但不局限于此。
63.可选的,该云服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础运计算服务的云服务器。
64.可选的,该云服务器110与该终端120之间可以通过通信网络相连。可选的,该通信网络可以是有线网络或无线网络。
65.可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网,但也可以是其他任何网络,包括但不限于局域网、城域网、广域网、移动、有限或无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语
言、可扩展标记语言等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层、传输层安全、虚拟专用网络、网际协议安全等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
66.图2是根据一示例性实施例示出的一种虚拟机的numa节点调度方法的方法流程图。该方法由计算机设备执行,该计算机设备可以是如图1中所示的虚拟机的numa节点调度系统中的目标服务器110。如图2所示,该虚拟机的numa节点调度方法可以包括如下步骤:
67.步骤201,确定目标虚拟机所需numa节点的目标数量。
68.在本技术实施例中,在目标服务器建立目标虚拟机之前,需要先运行目标虚拟机所需要的计算资源(例如cpu资源以及内存资源)。并且目标服务器为numa设计,目标服务器中的内存以及cpu被分配至各个numa节点,因此在目标服务器确定出目标虚拟机所需要的计算资源后,则可以根据目标虚拟机的numa节点中所包含的资源量,确定目标虚拟机需要多少个numa节点支撑运行。
69.步骤202,在各个numa节点中,选择目标数量的numa节点,与该目标虚拟机绑定。
70.当计算出支撑目标虚拟机运行所需要的节点的数量(即目标数量)后,则目标服务器可以在各个numa节点中进行筛选,选择出目标数量的numa节点,与目标虚拟机绑定,从而支撑目标虚拟机的运行。
71.可选的,为了保证目标虚拟机的业务能力,目标服务器可以在各个numa节点中,选取出资源占用率较小的numa节点,并在资源占用率较小的numa节点中选取出目标数量的numa节点与目标虚拟机绑定。
72.例如,目标服务器可以将各个numa节点,分别按照cpu占用率以及内存占用率进行排序,并在各个numa节点中,选取出cpu占用率以及内存占用率均在前n%(如50%)的目标数量的numa节点与目标虚拟机绑定。
73.步骤203,监控与该目标虚拟机绑定的numa节点的负载情况,并当该第一节点存在负载不均衡时,将该目标虚拟机与第一节点的绑定关系切换至第二节点;该负载情况包括该cpu负载以及内存负载。
74.在目标服务器中创建了目标虚拟机,并将目标数量的numa节点与目标虚拟机绑定以支撑目标虚拟机的运行后,目标服务器还需要对与目标虚拟机绑定的numa节点进行负载情况的监控,当检测目标虚拟机绑定的第一节点存在负载不均衡时,也就是第一节点的负载超出预期。
75.此时说明目标虚拟机对第一节点造成了很大的负担,第一节点中的cpu与内存即难以支撑目标虚拟机的运行,且支撑目标虚拟机也可能会对需要第一节点进行处理的其他事项造成影响,从而导致第一节点崩溃。
76.因此为了避免上述情况,目标服务器在第一节点中的cpu负载以及内存负载中的至少一者出现超配时,将目标虚拟机与第一节点的绑定接触,并选取到第二节点,将目标虚拟机与第二节点重新绑定,从而实现通过第二节点替代第一节点。
77.综上所述,在给目标虚拟机分配numa节点之前,需要先计算该目标虚拟机所需要numa节点的目标数量,再在各个numa节点中,选取出目标数量的numa节点与目标虚拟机绑定,在完成绑定后,再对与目标虚拟机绑定的numa节点的负载情况进行实时监控,当监控到
第一节点的负载不均衡时,再将目标虚拟机与第一节点的绑定关系切换到第二节点。上述方案在实现numa节点的均衡操作时,同时考虑了cpu负载以及内存负载的情况,尽可能避免了计算资源分配不均衡的情况发生,提高了目标虚拟机的业务性能。
78.图3是根据一示例性实施例示出的一种虚拟机的numa节点调度方法的方法流程图。该方法由计算机设备执行,该计算机设备可以是如图1中所示的虚拟机的numa节点调度系统中的目标服务器110以及终端120共同执行。如图3所示,该虚拟机的numa节点调度可以包括如下步骤:
79.步骤301,确定目标虚拟机所需numa节点的目标数量。
80.在一种可能的实现方式中,用户通过终端120向目标服务器发送用户请求(例如该用户请求用于指示目标服务器创建目标容器),此时目标服务器110接收到用户请求,则可以根据该用户请求创建对应的目标虚拟机以创建目标容器。
81.并且用户请求中包含创建该目标虚拟机所需要的目标资源量。
82.在一种可能的实现方式中,当目标服务器接收到用户请求后,解析该用户请求获得目标资源量,并根据目标资源量与每个numa节点的资源配置大小,确定目标虚拟机所需numa节点的目标数量。
83.例如当目标资源量指示目标虚拟机需要36个核心、128g内存,而每个numa节点资源配置大小为24个核心、64g内存,那么为了支撑该目标虚拟机的正常运行,至少需要两个numa节点提供计算资源。
84.步骤302,在各个numa节点中,选择目标数量的numa节点,与该目标虚拟机绑定。
85.在本技术实施例中,当确定了目标数量的numa节点后,则可以通过cgroup将目标数量的numa节点与目标虚拟机绑定。请参考图4,其示出了本技术实施例涉及的一种虚拟机随机资源调度示意图。如图4所示,在现有技术中,创建虚拟机时默认对虚拟机的资源调度不做限制,此时虚拟机可能会存在申请numa0的cpu,申请numa1的内存,此时cpu需要跨numa访问资源,导致性能较低。
86.本技术实施例是在确定了目标虚拟机需要的目标数量的numa节点后,直接通过cgroup将目标数量的numa节点与目标虚拟机绑定,从而降低了cpu跨numa访问资源情况发生的频率,从而提高了目标虚拟机的业务性能。请参考图5,其示出了本技术实施例涉及的一种虚拟机绑定单个资源的示意图。如图5所示,物理机配置为48core 256g内存。物理机有2个numa,单个numa24核128g内存。在物理机上创建12core 64g规格的虚拟机。通过cgroup将虚拟机控制在numa0上,此时虚拟机申请到的cpu和内存都是numa0的,此时虚拟机的性能是最高的。
87.请参考图6,其示出了本技术实施例涉及的一种虚拟机绑定多个资源的示意图。物理机配置为48core 256g内存。物理机有2个numa,单个numa24核128g内存。在物理机上创建36core 64g规格的虚拟机。通过cgroup将虚拟机控制在numa0上与numa1上,两个numa分别承担18core 32g的资源,此时虚拟机申请到的cpu和内存都是numa1与numa2的。
88.在一种可能的实现方式中,在该各个numa节点中查询未超配节点;当该各个numa节点存在未超配节点时,在该未超配节点中选取目标数量的numa节点,通过cgroup与该目标虚拟机绑定。
89.当需要创建目标虚拟机,且已经确定了目标虚拟机所需要分配的numa节点的目标
数量,此时则需要在各个numa节点中选取出目标数量的numa节点。为了保证目标虚拟机的性能,目标服务器可以优先在未超配的节点中选取numa节点。该未超配的节点可以定义为numa节点,绑定的cpu资源与内存资源的任一者不超过最大值的节点。
90.也就是说,目标服务器在各个numa节点中优先选取负载较小的节点以支撑目标虚拟机的运行。
91.进一步的,当该各个numa节点中不存在未超配节点时,在超配numa节点中选取目标数量的numa节点,通过cgroup与该目标虚拟机绑定。
92.而当各个numa节点中不存在未超配的节点时,则在超配的numa节点中选取目标数量的numa节点。
93.在一种可能的实现方式中,各个numa节点中的未超配节点数量小于目标数量时,则可以先将未超配节点与目标虚拟机绑定,并在超配节点中选取numa节点与目标虚拟机绑定,直至目标虚拟机与目标数量的numa节点绑定。
94.当各个numa节点中存在未超配节点时,在一种可能的实现方式中,将该未超配numa节点按照负载情况进行排序,并选取平均负载情况最优的目标数量的numa节点。
95.也就是说,目标服务器检测到各个numa节点中存在未超配节点时,直接将各个未超配numa节点按照负载情况进行排序,并选取平均负载情况最优的numa节点。例如当获取到各个未超配节点后,则目标服务器可以直接将各个未超配节点的cpu占用率与内存占用率取平均值并进行排序,并按照排序结果选择最优的目标数量的numa节点。
96.当需要在超配节点中选取目标数量的numa节点与目标虚拟机绑定时,在一种可能的实现方式中,目标服务器可以确定各个超配节点所绑定的虚拟机需求的cpu以及内存的超配比例,例如当超配节点a的cpu核为36,内存为128g,而该超配节点a所绑定的虚拟机向超配节点a请求的资源之和为72个核、192g,那么该超配节点a所需求的cpu超配比例为2,内存超配比例为1.5。
97.当获取到各个超配节点所绑定的虚拟机需求的cpu以及内存的超配比例后,可选的,可以根据超配比例均值,选取出超配比例最优的目标数量的numa节点与目标虚拟机匹配。
98.请参考图7,其示出了本技术实施例涉及的一种目标虚拟机numa节点选择流程图。如图7所示,创建虚拟机先获取虚拟机的规格,该规格在创建虚拟机时用户输入的,比如虚拟机大小为4核,8g内存;再判断集群中是否有未超配节点,是则直接在未超配节点中选择合适的节点创建虚拟机;否则在超配节点中选择合适的节点创建虚拟机。
99.在创建虚拟机后则可以监控各个numa节点的cpu和内存负载,从而实现负载均衡操作,优先在同台物理机上迁移或交换,其次跨物理机迁移或交换,如下步骤303所示。
100.步骤303,监控与该目标虚拟机绑定的numa节点的负载情况,并当检测到该第一节点的cpu负载与内存负载中的至少一者超过目标阈值时,确定该第一节点存在负载不均衡,并将该目标虚拟机与第一节点的绑定关系切换至第二节点。
101.在一种可能的实现方式中,在该第一节点对应的第一物理机中,获取除第一节点外的各个候选节点;按照该候选节点的负载情况,选取第二节点,以将该目标虚拟机与第一节点的绑定关系切换至该第二节点。
102.当目标服务器检测到第一节点存在负载不均衡时,则可以在第一节点所在的第一
物理机中,查询其他候选节点,并按照候选节点的负载情况,判定是否可以替换第一节点。当可以将候选节点替换第一节点,例如最优候选节点的负载情况较好,满足第一条件(如cpu占用率与内存占用率均小于第一阈值),则直接将目标虚拟机与第一节点的绑定关系切换至第二节点。
103.进一步的,当最优候选节点的负载情况一般,负载情况最好的最优候选节点不满足第一条件但满足第二条件(如cpu占用率与内存占用率大于第一阈值但小于第二阈值),则此时可以在该负载情况最好的最优候选节点中,选取占用资源少于目标虚拟机的候选虚拟机,将最优候选节点与第一节点交换虚拟机,使得最优候选节点与候选虚拟机的绑定关系切换至第一节点;将目标虚拟机与第一节点的绑定关系切换至最优候选节点。
104.此时最优候选节点即为第二节点,候选虚拟机与目标虚拟机交换后,一方面使得第一节点的资源占用率减小,另一方面,由于第二节点绑定了目标虚拟机,但解绑了候选虚拟机,降低了第二节点的资源占用量;又一方面,由于第一节点与第二节点在同一物理机内,降低了虚拟机迁移时对资源的占用量。
105.在各个候选节点中选取最优候选节点时,在一种可能的实现方式中,目标服务器在该候选节点中,选取平均负载情况最优的最优候选节点;该平均负载情况为cpu占用率与内存占用率的平均值;当该最优候选节点的剩余负载资源高于该目标虚拟机在第一节点中的占用资源时,将该最优候选节点确定为第二节点。
106.而当最优候选节点的负载情况一般(例如cpu占用率与内存占用率大于第二阈值时),此时说明该第一物理机内的各个numa节点都趋于饱和,在一种可能的实现方式中,当该最优候选节点的剩余负载资源低于资源阈值时(例如此时cpu占用率与内存占用率大于第二阈值),在该第一物理机的相邻物理机中选取次候选节点;按照该次候选节点的负载情况,选取第二节点,以将该目标虚拟机与第一节点的绑定关系切换至该第二节点。
107.也就是说,在第一物理机内找不到第二节点使得第一节点进行目标虚拟机的迁移或交换时,则选择第一物理机的相邻物理机,并在相邻物理机上找寻第二节点,以实现跨物理机的虚拟机的迁移或交换。
108.在上述方案的基础上,可选的,目标服务器还可以先确定各个物理机中的各个numa节点,并按照指定周期,对该各个numa节点的负载情况进行检测,并将检测结果保存至负载数据库中。
109.请参考图8,其示出了本技术实施例涉及的一种负载数据库方案示意图。如图8所示,在上述方案中每次创建虚拟机的时候都要将当前物理机集群中的每个numa节点的负载都获取一遍,然后再综合判断在哪个numa节点起虚拟机,这个速度和效率都十分低的。所有可以做如下改进。在每个物理机中运行一个程序,周期性(比如每5s)查询一次当前物理机下的numa负载,并将数据存放在负载数据库里。这样在下次创建虚拟机时,通过数据库的信息能快速决策出虚拟机创建到哪个物理机的numa上。
110.需要注意的是,本技术实施例所示出的上述方案,还可以应用于类似虚拟机的占用cpu以及内存的其他进程(例如容器)中,以对其他进程的资源配置进行调控。
111.综上所述,在给目标虚拟机分配numa节点之前,需要先计算该目标虚拟机所需要numa节点的目标数量,再在各个numa节点中,选取出目标数量的numa节点与目标虚拟机绑定,在完成绑定后,再对与目标虚拟机绑定的numa节点的负载情况进行实时监控,当监控到
第一节点的负载不均衡时,再将目标虚拟机与第一节点的绑定关系切换到第二节点。上述方案在实现numa节点的均衡操作时,同时考虑了cpu负载以及内存负载的情况,尽可能避免了计算资源分配不均衡的情况发生,提高了目标虚拟机的业务性能。
112.请参考图9,其示出了本技术实施例涉及的一种虚拟机的numa节点调度装置。所述装置包括:
113.目标数量确定模块901,用于确定目标虚拟机所需numa节点的目标数量;
114.节点确定模块902,用于在各个numa节点中,选择目标数量的numa节点,与所述目标虚拟机绑定;
115.负载均衡模块903,用于监控与所述目标虚拟机绑定的numa节点的负载情况,并当第一节点存在负载不均衡时,将所述目标虚拟机与第一节点的绑定关系切换至第二节点;所述负载情况包括cpu负载以及内存负载。
116.在一种可能的实现方式中,所述负载均衡模块,还用于,
117.当检测到所述第一节点的cpu负载与内存负载中的至少一者超过目标阈值时,确定所述第一节点存在负载不均衡,并将所述目标虚拟机与第一节点的绑定关系切换至第二节点。
118.在一种可能的实现方式中,所述负载均衡模块,还用于,
119.在所述第一节点对应的第一物理机中,获取除第一节点外的各个候选节点;
120.按照所述候选节点的负载情况,选取第二节点,以将所述目标虚拟机与第一节点的绑定关系切换至所述第二节点。
121.在一种可能的实现方式中,所述负载均衡模块,还用于,在所述候选节点中,选取平均负载情况最优的最优候选节点;所述平均负载情况为cpu占用率与内存占用率的平均值;
122.当所述最优候选节点的剩余负载资源高于所述目标虚拟机在第一节点中的占用资源时,将所述最优候选节点确定为第二节点。
123.在一种可能的实现方式中,所述负载均衡模块,还用于,
124.当所述最优候选节点的剩余负载资源低于资源阈值时,在所述第一物理机的相邻物理机中选取次候选节点;
125.按照所述次候选节点的负载情况,选取第二节点,以将所述目标虚拟机与第一节点的绑定关系切换至所述第二节点。
126.在一种可能的实现方式中,所述节点确定模块,还用于,
127.在所述各个numa节点中查询未超配节点;
128.当所述各个numa节点存在未超配节点时,在所述未超配节点中选取目标数量的numa节点,通过cgroup与所述目标虚拟机绑定。
129.在一种可能的实现方式中,所述节点确定模块,还用于,
130.当所述各个numa节点中不存在未超配节点时,在超配numa节点中选取目标数量的numa节点,通过cgroup与所述目标虚拟机绑定。
131.在一种可能的实现方式中,所述节点确定模块,还用于,将所述未超配numa节点按照负载情况进行排序,并选取平均负载情况最优的目标数量的numa节点。
132.在一种可能的实现方式中,所述装置还包括数据库保存模块,用于,确定各个物理
机中的各个numa节点;
133.按照指定周期,对所述各个numa节点的负载情况进行检测,并将检测结果保存至负载数据库中。
134.综上所述,在给目标虚拟机分配numa节点之前,需要先计算该目标虚拟机所需要numa节点的目标数量,再在各个numa节点中,选取出目标数量的numa节点与目标虚拟机绑定,在完成绑定后,再对与目标虚拟机绑定的numa节点的负载情况进行实时监控,当监控到第一节点的负载不均衡时,再将目标虚拟机与第一节点的绑定关系切换到第二节点。上述方案在实现numa节点的均衡操作时,同时考虑了cpu负载以及内存负载的情况,尽可能避免了计算资源分配不均衡的情况发生,提高了目标虚拟机的业务性能。
135.请参阅图10,其是根据本技术一示例性实施例提供的一种计算机设备示意图,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,以实现上述方法。
136.其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
137.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
138.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
139.在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
140.在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图3任一实施例所示方法的全部或部分步骤。
141.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识
或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
142.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1