基于numa高性能网络处理器负载的虚拟处理器调度方法

文档序号:8298908阅读:164来源:国知局
基于numa高性能网络处理器负载的虚拟处理器调度方法
【技术领域】
[0001] 本发明涉及计算机系统虚拟化领域,尤其涉及基于NUMA高性能网络处理器负载 的虚拟处理器调度方法。
【背景技术】
[0002] 虚拟化技术通过将底层硬件资源整合并再分配,将一台物理服务器虚拟出多台计 算机,从而提升了硬件设备的利用率。虚拟机监控器(VirtualMachineManagement,VMM) 是存在于硬件与传统操作系统间的一个软件管理层。其管理者真实的物理资源(CPU、内存 及I/O设备),并通过对物理资源的抽象,并将其分配给上层的操作系统,从而使一台服务 器可以同时运行多个操作系统。NUMA(Non-UniformMemoryAccessArchitecture,NUMA) 架构是一种较为成熟的多核处理器架构解决方案,它将服务器硬件资源分为多个节点,每 个节点拥有自己的处理器及内存资源。处理器访问本地内存速度比访问远程内存快。
[0003]SR-I0V(Single-RootI/OVirtualization)技术是一种基于硬件的网络虚拟 化解决方案,它允许在虚拟机之间高效共享快速外设组件互连(PeripheralComponent InterconnectExpress,PCIe)设备,并且取得了能够与本机性能媲美的网络1/0性能。 SR-I0V将自身功能分为物理功能(PF)和虚拟功能(VF),PF是全功能的PCIe功能,拥有完 全配置资源,可以用于配置或控制PCIe设备;VF是一种轻量级PCIe功能,可以PF以及与同 一PF关联的其他VF共享一个或多个物理资源,VF仅允许拥有用于自身行为的配置资源。
[0004] 现有关于NUMA的研究主要集中在非虚拟化方面,通过一些类似NUMACTL的接口调 用来对NUMA下任务的硬件资源进行控制,进而使得任务CPU与内存间具有较好的亲和度关 系。关于SR-I0V的研究主要集中在减少虚拟机监控器(VirtualMachineMonitor,VMM) 的介入以及减少中断的频率上。
[0005] 进来XEN内核对NUMA也做了很多支持与优化,这使得在XEN环境下对NUMA相关 研究成为可能,其中XEN4. 2通过在分配给虚拟机(VirtualMachine,VM)硬件资源时,考虑 将处理器资源与内存资源绑定,使得VM获得了较好的资源亲和度,但其可能产生某些NUMA 节点处理器负载过重的情况;XEN4. 3考虑到负载均衡问题,在XEN4. 2的基础上增加了感知 NUMA过载的调度模块,进而避免了资源分配不合理的情况。
[0006] 但是在NUMA架构下专门针对虚拟机高性能网络的研究还没什么进展,因此,本发 明致力于开发基于NUMA高性能网络处理器负载的虚拟处理器调度方法以解决VCPU处理 网络数据包效率不是最优的问题。

【发明内容】

[0007] 有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于当前虚 拟机网卡缓存与NUMA节点亲和度,分析出物理处理器(PhysicalCPU,PCPU)负载情况进行 预测调度的方法,其克服了虚拟机VCPU不能获取足够的处理器资源处理网络数据包的不 足,有效地提高了网络数据包的处理效率。
[0008] 为实现上述目的,本发明提供了一种基于当前虚拟机网络缓存在NUMA架构下的 分布情况,并通过处理器实时负载的计算,进而进行VCPU的精确调度的方法,同时使虚拟 机VCPU具有亲和度与处理器资源的优势。本发明包括以下步骤:
[0009] 步骤1、每当虚拟机SR-I0V虚拟功能(VF)网卡启动的时候,通过获取网卡缓存虚 拟地址信息,D0M0将地址信息转换为物理地址信息,通过NUMA节点间存取延迟情况,得到 各个NUMA节点对网络缓存的资源亲和度。
[0010] 步骤2、D0M0实时监控虚拟机及自身的VCPU负载,通过VCPU与PCPU之间映射关 系及NUMA节点与PCPU的包含关系,最终得到整台服务器NUMA节点的负载情况。
[0011] 步骤3、通过计算出来的NUMA节点处理器负载情况,并依据亲和度数据,得出最终 的调度结果,调度VCPU到最优的网络处理NUMA节点,然后继续监视虚拟机网卡的运行情 况,如果虚拟机网卡没有重启,跳转到步骤2,否则,跳转到步骤1。
[0012] 基于当前虚拟机网卡缓存NUMA节点处理器实时负载的分析,得出最优的VCPU调 度位置的方法具有以下有益的技术效果:
[0013] (1)可有效控制在XEN平台上VCPU资源的精确配置,保证VCPU对具有SR-I0V虚 拟功能的虚拟机网络数据包具有最优的处理效果。
[0014] (2)本发明在D0M0里实现,并通过将VCPU调度至多个PCPU上运行,然后保持XEN 原有的调度方法,减少了对虚拟机调度系统的影响,并且实现了轻量级的系统开销。
[0015] (3)基于对当前物理处理器负载的分析,能够保证在NUMA架构下VCPU和目标内存 间具有较好亲和度的情况下,同时具有充足的处理器资源,充分利用了NUMA架构的特点。
[0016] 以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以 充分地了解本发明的目的、特征和效果。
【附图说明】
[0017] 图1是物理平台的NUMA架构示意图;
[0018] 图2是具有SR-I0V功能的网卡运行示意图;
[0019] 图3是本发明中超级调用及处理器负载分析示意图;
[0020] 图4是本发明中vNAB架构示意图。
【具体实施方式】
[0021] 以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以 充分地了解本发明的目的、特征和效果。
[0022] 图1是一个实验室服务器架构示意图,该图展示了NUMA架构存在的经典问题。
[0023] 图2是本发明中用到的SR-I0V高性能网卡的运行示意图,I0MMU是指10存储器 管理单元。
[0024] 图3是本发明中vNAB系统在整体VMM框架中的位置,vNAB通过超级调用从VM监 控器获得缓存信息,同时D0M0实时从VM及自己获取VCPU实时负载,进而获取PCPU负载情 况,为vNAB调用模块提供信息支持。
[0025] 图4是本发明中vNAB模块示意图,通过对缓存信息及处理器实时负载的分析,将 VCPU调度到合适的位置。
[0026] 基于NUMA高性能网络处理器负载的虚拟处理器调度方法包括以下步骤:
[0027] 步骤1、每当虚拟机SR-I0V虚拟功能(VF)网卡启动的时候,通过获取网卡缓存虚 拟地址信息,D0M0将地址信息转换为物理地址信息,通过NUMA节点间存取延迟情况,得到 各个NUMA节点对网络缓存的资源亲和度(该方法较上一代方法做了改进,效率更优)。该 部分核心代码如下:
[0028] 增加以下变量,用来存放调用接口的虚拟机参数。
[0029] Staticstructdomain*my_domain[1000];
[0030] staticintcount= 0 ;
[0031] 通过在下面初始化调用里面增加探取代码,获取参数信息。
【主权项】
1. 一种基于NUMA高性能网络处理器负载的虚拟处理器调度方法,其特征在于,在非统 一内存访问NUMA架构下,当具有SR-IOV虚拟功能的虚拟机启动虚拟网卡时,分析NUMA节 点对虚拟机网络缓存的亲和度;在进行虚拟处理器调度时将处理器的实时负载情况作为调 度的依据;通过实时统计物理处理器负载,同时让VCPU运行在处理器资源充足以及与网卡 缓存具有较优所述亲和度的所述NUMA节点上。
2. 如权利要求1所述的虚拟处理器调度方法,其特征在于,包括以下步骤: 步骤1、每当虚拟机所述SR-IOV虚拟功能网卡启动的时候,通过获取所述网卡缓存虚 拟地址信息,DOMO将所述虚拟地址信息转换为物理地址信息,通过NUMA节点间存取延迟情 况,得到各个NUMA节点对网络缓存的资源亲和度; 步骤2、D0M0实时监控虚拟机及自身的虚拟CPU负载,通过所述虚拟CPU与物理CPU之 间映射关系及所述NUMA节点与所述物理CPU的包含关系,最终得到整台服务器所述NUMA 节点的负载情况; 步骤3、通过计算出来的NUMA节点处理器负载情况,并依据所述亲和度,得出最终的调 度结果,调度所述虚拟CPU到最优的网络处理所述NUMA节点,然后继续监视虚拟机网卡的 运行情况,如果所述虚拟机网卡没有重启,跳转到步骤2,否则,跳转到步骤1。
【专利摘要】本发明公开了基于NUMA(Non-Uniform Memory Access Architecture)高性能网络处理器负载的虚拟处理器调度方法。其中,当虚拟机启动SR-IOV(Single-Root I/O Virtual i zation)高性能网卡分配的虚拟功能网卡时,通过监控虚拟机网卡的运行,获取虚拟机网卡缓存与NUMA节点上的亲和度情况;然后向VM及DOM0获取VCPU运行负载情况,通过VCPU到PCPU的映射关系获得NUMA节点上PCPU的运行负载;最后通过NUMA节点与缓存亲和度以及NUMA节点处理器实时负载信息,得到最终的调度结果,使得处理网络数据包的VCPU同时具有亲和度及处理器资源的优势,这些使得高性能网络服务器在虚拟化环境下网络性能取得了明显的提升。
【IPC分类】G06F9-50, G06F9-455
【公开号】CN104615480
【申请号】CN201510058388
【发明人】管海兵, 李健, 马汝辉, 贾小龙
【申请人】上海交通大学
【公开日】2015年5月13日
【申请日】2015年2月4日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1