一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法

文档序号:6624302阅读:340来源:国知局
一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法
【专利摘要】本发明公开了一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法,包括:在NUMA架构下,当虚拟机网卡启动时,获取网卡缓存在各个NUMA节点上的分布;基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度;结合上述网卡缓存在各个NUMA节点上的分布以及各个NUMA节点对该网卡缓存的亲和度,以确定目标NUMA节点;将虚拟处理器调度至所述目标NUMA节点的CPU上。本发明解决了在NUMA架构下,虚拟机的VCPU与网卡缓存亲和度非最优化,进而造成虚拟机网卡处理网络数据包的处理速率不高的问题。
【专利说明】—种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法

【技术领域】
[0001]本发明涉及计算机系统虚拟化领域,尤其涉及一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法。

【背景技术】
[0002]虚拟化技术通常将原本需要多台物理设备实现的计算或存储功能整合到一台功能相对强大的物理服务器中去,从而实现了硬件资源的整合与再分配,提高了硬件设备的利用率,在云计算以及数据中心构建中发挥着非常重要的作用。
[0003]虚拟机监视器是指存在于硬件和传统操作系统之间的一个软件管理层,其主要作用是管理真实的物理设备,例如物理CPU、内存等,并将底层的硬件抽象为对应的虚拟设备接口,使多个操作系统得到各自所需的虚拟硬件,从而使他们能够同时在同一个物理设备上运行。
[0004]NUMA(Non Uniform Memory Access Architecture,非统一内存访问)的特点是:被共享的存储器物理上是分布式的,所有这些存储器的集合就是全局地址空间。所以处理器访问这些存储器的时间是不一样的,显然访问本地存储器(亲和度高)的速度要比访问全局共享存储器或远程访问外地存储器(亲和度低)要快些。如图1所示的是物理平台的非统一内存访问(NUMA)架构的示意图。参考图1,该示意图是一个具有8个NUMA节点的NUMA架构服务器示意图。由于不同位置的处理器(CPU)与各个存储器之间的距离不同,且各个处理器之间的距离也不同,因此不同处理器访问各个存储器的时间也是不同的。
[0005]SR-1OV(Single-Root 1/0 Virtualizat1n)技术是一种基于硬件的虚拟化的解决方案,可提高性能和可伸缩性。SR-1OV标准允许在虚拟机之间高效共享PCIe (PeripheralComponent Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的1/0性能。
[0006]SR-1OV分为物理功能(PF)和虚拟功能(VF)。其中,PF是全功能的PCIe功能,可以像其他任何PCIe设备一样进行发现、管理和处理。PF拥有完全配置资源,可以用于配置或控制PCIe设备。VF是一种轻量级PCIe功能,可以与物理功能以及与同一物理功能关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。
[0007]如图2所示的是具有SR-1OV功能的网卡运行示意图。参考图2,SR-1OV网卡物理功能(PF)可以虚拟出多个虚拟功能(VF),然后分配给虚拟机虚拟功能(VF),当虚拟机启动时,数据包发送到相应的接包缓存/发包缓存(Rx/Tx),通过1MMU(input/output memorymanagement unit)等硬件辅助虚拟化的支持,虚拟机可以直接访问自己的网卡缓存,从而达到了接近本机性能的网络处理速度。
[0008]物理设备和虚拟机之间引入虚拟机监视器作为中间层,不可避免的使得虚拟机的性能受到一定的影响,其中一个就是对虚拟机内存的影响,在全虚拟化环境下,具有SR-1OV虚拟功能的虚拟机通过硬件辅助虚拟化设备1MMU等的支持,使得虚拟机获取缓存物理地址不需要通过虚拟机监控器的介入,使得网络性能得到很大的提升,但是在NUMA环境下,虚拟机网卡缓存多数情况分配在多个节点上面,这造成了缓存分布的不确定性,这势必会影响虚拟机处理网络数据包的速度。
[0009]学术界现有的研究主要集中在非虚拟化方面,主要考虑到通过NUMA —些类似NUMACTL等的库来对NUMA下的任务的内存分布进行控制,从而使得相应任务处理的CPU和内存达到较好的亲和度,从而提高任务处理的速度。
[0010]现有Xen内核对NUMA支持了几种配置方法,其中包括内存完全本地化(NUMAaware placement)以及内存配置到几个节点上,然后虚拟处理器(VCPU)调度到分配的节点上面(NUMA aware scheduling),但是这样同样没有充分地从内存分布的角度分析虚拟机内存资源,这样下来VCPU和内存之间的亲和度还是没有达到最优的效果,这势必会影响VCPU处理内存的速度。
[0011]因此,本领域的技术人员致力于开发一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法以解决VCPU处理网络数据包速率不是最优的问题。


【发明内容】

[0012]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在NUMA架构下,虚拟机的VCPU与网卡缓存亲和度非最优化,进而造成虚拟机网卡处理网络数据包的处理速率不闻。
[0013]为实现上述目的,本发明提供了一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法,包括如下步骤:
[0014](I)在NUMA架构下,当虚拟机网卡启动时,获取网卡缓存在各个NUMA节点上的分布;
[0015](2)基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度;
[0016](3)结合上述网卡缓存在各个NUMA节点上的分布以及各个NUMA节点对该网卡缓存的亲和度,以确定目标NUMA节点;
[0017](4)将虚拟处理器调度至所述目标NUMA节点的CPU上。
[0018]进一步地,在所述步骤(3)中,还结合各个NUMA节点上的CPU负载均衡以确定目标NUMA节点。
[0019]进一步地,在所述步骤(I)中,所述获取网卡缓存在各个NUMA节点上的分布包括如下步骤:
[0020](11)通过在虚拟机虚拟功能的驱动启动的时候,在驱动程序中探取直接内存访问分配缓存的虚拟地址,并获取虚拟功能的缓存的大小;
[0021](12)将所述虚拟地址发送至指定域;
[0022](13)所述指定域通过超级调用向虚拟机监控器请求得到与所述虚拟地址对应的物理地址;
[0023](14)基于对所述物理地址对应的NUMA节点上的缓存分布情况分析,以确定所述网卡缓存在各个NUMA节点上的分布。
[0024]进一步地,在所述步骤(11)中,通过网卡性能检测工具来获取虚拟功能的缓存的大小。
[0025]进一步地,所述指定域为虚拟机监控器中的DomainO。
[0026]进一步地,在所述步骤⑵中,所述基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度包括如下步骤:
[0027](21)根据各个NUMA节点之间的距离信息,以得出各个NUMA节点对该网卡缓存的亲和度。
[0028]进一步地,在执行所述步骤(4)之后,还包括如下步骤:(5)继续监控虚拟机网卡的运行情况。
[0029]进一步地,所述虚拟机具有SR-1OV虚拟功能。
[0030]与现有技术相比,本技术方案至少具有以下有益效果:
[0031]根据本发明提供的虚拟处理器的调度方法,通过获取网卡缓存在各个NUMA节点上的分布情况以及各个NUMA节点对该网卡缓存的亲和度情况,以确定最优的虚拟处理器的调度方案(即确定目标NUMA节点),使得虚拟处理器运行到与网卡缓存具有最优亲和度的状态,从而提高虚拟网络数据包的处理速度。
[0032]进一步地,基于对当前虚拟机的网卡缓存的分析,能够保证在NUMA架构下虚拟处理器和目标内存之间存在最优的亲和度,从而使得虚拟机更充分地利用NUMA架构的特点。
[0033]进一步地,在确定目标NUMA节点过程中,还结合考虑了各个NUMA节点上的CPU负载均衡问题,从而使得将VCPU调度到目标NUMA节点上的多个CPU核上,在这些CPU核上仍然保持着原有的负载调度方法,减少了对系统的影响。
[0034]进一步地,可有效控制在Xen平台上VCPU资源的精确配置,保证VCPU对具有SR-1OV虚拟功能的虚拟机网卡数据包具有最优的网络处理速率。
[0035]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

【专利附图】

【附图说明】
[0036]图1是物理平台的非统一内存访问(NUMA)架构的示意图;
[0037]图2是具有SR-1OV功能的网卡运行示意图;
[0038]图3是本发明的一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法的流程示意图;
[0039]图4是图3所述虚拟处理器的调度方法中获取网卡缓存在各个NUMA节点上的分布的示意图。

【具体实施方式】
[0040]下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0041]如图3所示的是本发明的一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法的流程示意图。参考图3,所示调度方法包括如下步骤:
[0042]步骤S1:在NUMA架构下,当虚拟机网卡启动时,获取网卡缓存在各个NUMA节点上的分布;
[0043]步骤S2:基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度;
[0044]步骤S3:结合上述网卡缓存在各个NUMA节点上的分布以及各个NUMA节点对该网卡缓存的亲和度,以确定目标NUMA节点;
[0045]步骤S4:将虚拟处理器调度至所述目标NUMA节点的CPU上。
[0046]需要说明的是,本发明实施例提供的虚拟处理调度方法适用于具有SR-1OV虚拟功能的虚拟机,在NUMA架构下,虚拟机的网卡缓存分布在多个NUMA节点上,造成了缓存分布的不确定性,从而影响虚拟机处理网络数据包的速度的情况。
[0047]具体来说,在本实施例中,每当具有SR-1OV虚拟功能的虚拟机启动并开辟网卡缓存用于接收网络数据包时,通过在虚拟机虚拟功能的驱动启动的时候,在驱动程序中探取直接内存访问(Direct Memory Access, DMA)分配缓存的虚拟地址,并通过网卡性能检测工具(例如Ethtool)来获取虚拟功能的缓存的大小,并将所述虚拟地址发送至指定域。其中,所述指定域是指虚拟机监控器(例如Xen)中的DomainO。
[0048]然后,所述指定域通过超级调用向虚拟机监控器(VMM)请求得到与所述虚拟地址对应的物理地址,并且基于对所述物理地址对应的NUMA节点上的缓存分布情况分析,以确定所述网卡缓存在各个NUMA节点上的分布。
[0049]实现确定所述网卡缓存在各个NUMA节点上的分布的核心代码如下:
[0050]增加以下变量,用来存放调用接口的虚拟机参数。
[0051]struct P2m_domain*myp2m[1];
[0052]p2m_type_t*myt[10];
[0053]p2m_ _access_t*mya[10];
[0054]p2m—query—t myq[10];
[0055]unsigned int^mypo [10];
[0056]int count = 0 ;
[0057]通过在下面初始化调用里面增加探取代码,获取参数信息。
[0058]

【权利要求】
1.一种基于NUMA高性能网络缓存资源亲和度的虚拟处理器的调度方法,其特征在于,包括如下步骤: (1)在NUMA架构下,当虚拟机网卡启动时,获取网卡缓存在各个NUMA节点上的分布; (2)基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度; (3)结合上述网卡缓存在各个NUMA节点上的分布以及各个NUMA节点对该网卡缓存的亲和度,以确定目标NUMA节点; (4)将虚拟处理器调度至所述目标NUMA节点的CPU上。
2.如权利要求1所述的虚拟处理器的调度方法,其特征在于,在所述步骤(3)中,还结合各个NUMA节点上的CPU负载均衡以确定目标NUMA节点。
3.如权利要求1所述的虚拟处理器的调度方法,其特征在于,在所述步骤(I)中,所述获取网卡缓存在各个NUMA节点上的分布包括如下步骤: (11)通过在虚拟机虚拟功能的驱动启动的时候,在驱动程序中探取直接内存访问分配缓存的虚拟地址,并获取虚拟功能的缓存的大小; (12)将所述虚拟地址发送至指定域; (13)所述指定域通过超级调用向虚拟机监控器请求得到与所述虚拟地址对应的物理地址; (14)基于对所述物理地址对应的NUMA节点上的缓存分布情况分析,以确定所述网卡缓存在各个NUMA节点上的分布。
4.如权利要求3所述的虚拟处理器的调度方法,其特征在于,在所述步骤(11)中,通过网卡性能检测工具来获取虚拟功能的缓存的大小。
5.如权利要求3所述的虚拟处理器的调度方法,其特征在于,所述指定域为虚拟机监控器中的DomainO。
6.如权利要求1所述的虚拟处理器的调度方法,其特征在于,在所述步骤(2)中,所述基于各个NUMA节点之间的亲和度关系,以得出各个NUMA节点对该网卡缓存的亲和度包括如下步骤: (21)根据各个NUMA节点之间的距离信息,以得出各个NUMA节点对该网卡缓存的亲和度。
7.如权利要求1所述的虚拟处理器的调度方法,其特征在于,在执行所述步骤(4)之后,还包括如下步骤: (5)继续监控虚拟机网卡的运行情况。
8.如权利要求1所述的虚拟处理器的调度方法,其特征在于,所述虚拟机具有SR-1OV虚拟功能。
【文档编号】G06F9/50GK104199718SQ201410415792
【公开日】2014年12月10日 申请日期:2014年8月22日 优先权日:2014年8月22日
【发明者】管海兵, 马汝辉, 李健, 贾小龙 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1