首页> 中国专利> 一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法

一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法

摘要

本发明公开了一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法,涉及计算机系统虚拟化领域,包括下列步骤:获取当前NUMA架构下,虚拟机的CPU和内存之间的亲和度矩阵、虚拟机的内存和网卡之间的亲和度矩阵和虚拟机CPU和网卡之间的亲和度矩阵;获取虚拟机的性能数据,并计算虚拟机的CPU与内存亲和度权重α,虚拟机内存和网卡之间的亲和度权重β以及虚拟机CPU和网卡之间亲和度的权重γ;使用如下模型公式计算虚拟机的内存及网卡资源亲和度值,并作为性能指标:

著录项

  • 公开/公告号CN108021429A

    专利类型发明专利

  • 公开/公告日2018-05-11

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201711320837.4

  • 申请日2017-12-12

  • 分类号

  • 代理机构上海旭诚知识产权代理有限公司;

  • 代理人郑立

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-06-19 05:21:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-06

    授权

    授权

  • 2018-06-05

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20171212

    实质审查的生效

  • 2018-05-11

    公开

    公开

说明书

技术领域

本发明涉及计算机系统虚拟化领域,尤其是一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法。

背景技术

如今,由于虚拟化技术高度的资源整合性和容错性,虚拟化技术已经成为了实现云计算的关键技术。数据中心和云计算提供商通过虚拟化技术来实现基础设施即服务(Infrastructure as a Service,IaaS),并且提供灵活的和按需付费的资源共享服务。通过虚拟化技术,一台物理机可以运行多台虚拟机,而每台虚拟机都拥有自己的资源,如虚拟处理器(virtual CPU,vCPU),内存和I/O设备。与此同时,随着网络功能虚拟化(NetworkFunctions Virtualization,NFV)技术的兴起,虚拟机会越来越多的执行网络密集型的任务,例如网络包处理,网络包转发和流量分析等。因此,探索如何优化虚拟化网络的性能并且提升虚拟机的网络性能变得越来越重要。

与此同时,非一致性内存访问(Non-Uniform Memory Access,NUMA)架构由于其高内存带宽和良好的可扩展性成为了现代多核服务器的主流架构。基于NUMA架构的服务器广泛部署于现有的云数据中心。在NUMA架构下,CPU和内存等被划分成多个节点,每个CPU都可以访问全部的内存,但是CPU访问本地节点的内存时延迟最小,访问远程节点的内存的延迟随着距离的增大而增大。这种NUMA架构带来的特性也被称为“内存亲和度”问题。在虚拟化环境下,底层物理机的物理拓扑对虚拟机来说是透明的,因此,内存亲和度问题给虚拟机的性能优化带来了不小的挑战。而目前国内外的不少研究也正是集中在优化虚拟化环境下的内存亲和度问题上,即让虚拟机的vCPU和虚拟机的内存具有最优亲和度,以提升虚拟机性能。

然而,随着网卡性能的提升,在NUMA架构上的亲和度问题不再局限于处理器和内存的亲和度。如图1所示为本研究所使用的Intel Ivy Bridge的服务器架构图。在该架构下,网卡(NIC)只与节点0相连。显而易见,比起节点1,2,3,节点0与网卡的距离更近,因此节点0与网卡的亲和度也会更好。在过去,内存的带宽、性能通常比网卡带宽、性能高出若干个数量级。然而,随着40G网卡的普及和100G网卡的出现,内存和网卡之间的性能差距逐渐被消除,网卡亲和度也和内存亲和度一样成为了高性能虚拟化环境下影响虚拟机性能的重要因素。

然而,现有的研究主要集中在优化虚拟机的内存亲和度从而提升性能,少有研究关注于优化虚拟机的网卡亲和度。而少数的关注虚拟机网卡亲和度的研究,也只是经验主义地将虚拟机放置在网卡所在NUMA节点,缺乏具体地理论、实验分析与建模,从而缺乏实用性与自适应性。除此之外,也没有研究尝试将内存亲和度与网卡亲和度结合起来建模从而优化虚拟机的性能。最后,同一台虚拟机,当运行不同程序时,虚拟机的性能特征是不同的,对于内存和网卡资源的需求度也是不同的,因此,模型还需要实时考虑虚拟机的性能特征才能较准确的预测虚拟机性能。

因此,本发明致力于开发基于NUMA架构的,在高性能虚拟化网络下的,虚拟机内存亲和度以及网卡亲和度计算方法。同时,模型会将虚拟机的实时性能特征数据作为输入参数。通过该模型,可以较准确的捕获虚拟机在当前的内存和网卡亲和度下的性能,并可以通过模型预测虚拟机在NUMA系统下,放置在哪个节点时性能最优。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于NUMA架构的,高性能虚拟化网络下的,虚拟机内存及网卡资源亲和度计算方法,同时模型将虚拟机的实时性能特征数据作为输入参数,使准确的捕获虚拟机在不同内存及网卡亲和的下的性能成为可能,并可以通过模型预测在NUMA系统下,虚拟机放置在哪个节点时性能最优。

对于虚拟机的内存亲和度,本发明定义为虚拟机的虚拟CPU和虚拟内存之间的亲和度。

对于虚拟机的网卡亲和度,本发明定义其包括两部分:

1、虚拟机的内存和网卡之间的亲和度:这是因为当虚拟机进行收发网络包时,DMA机制会将网络包从网卡传输到虚拟机内存或者从虚拟机内存传输到网卡。因此,虚拟机内存和网卡的亲和度越高,距离越近,则传输开销越小,虚拟机的网络性能则会越高;相反的,虚拟机与网卡亲和度越低,距离越远,则传输开销越大,虚拟机的网络性能则会越差。

2、虚拟机的CPU和网卡之间的亲和度:在某些系统或架构下,网卡亲和度还涉及到虚拟机CPU和网卡之间的关系。比如在Intel Xeon E5系列处理器之后,Intel的处理器都包含数据直接I/O技术(Data Direct I/O,DDIO),在该技术的支持下,当虚拟机运行在网卡所在NUMA节点时,CPU的L3缓存会代替内存成为网络包DMA传输的目的地址,从而减少网络延迟增大带宽。然而,如果虚拟机运行在其它与网卡不相连的NUMA节点时,DDIO会失效,虚拟机的内存仍然是DMA传输的目的位置。其它的处理器架构也有类似的技术,例如Sun微系统的片上网络接口单元(Network Interface Unit,NIU)。

本发明提供了一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法,包括下列步骤:

步骤1,获取当前NUMA架构下,虚拟机的CPU和内存之间的内存访问延迟矩阵,记为APMLat,将APMLat近似为虚拟机的CPU和内存之间的亲和度矩阵;

步骤2,获取当前NUMA架构下,虚拟机的内存和网卡之间的DMA传输带宽矩阵,记为ANMBdw,将ANMBdw近似为虚拟机的内存和网卡之间的亲和度矩阵;

步骤3,获取当前NUMA架构下,L3缓存访问的延迟和内存访问的延迟的矩阵,记为ANPLat,将L3缓存访问的延迟和内存访问延迟比值的矩阵近似为虚拟机CPU和网卡之间的亲和度矩阵;这是因为,Intel DDIO技术生效时,虚拟机进行网络I/O操作时只需读写L3缓存,而当因为虚拟机运行在远离网卡所在NUMA节点而导致DDIO失效时,虚拟机进行网络I/O操作需要读写内存;

步骤4,获取虚拟机的性能数据,并通过虚拟机性能特征数据计算虚拟机的CPU与内存亲和度权重α,虚拟机内存和网卡之间的亲和度权重β以及虚拟机CPU和网卡之间亲和度的权重γ;

步骤5,使用如下模型公式计算虚拟机的内存及网卡资源亲和度值,并作为性能指标:

其中,APMLat(i,j)表示当虚拟机的虚拟CPU运行在节点i而其要访问的内存处于节点j时,节点i到j之间的延迟;ANMBdw(i)表示当虚拟机内存位于NUMA节点i时,网卡到节点i的DMA传输带宽;ANPLat(i,j)表示当虚拟机的CPU运行在NUMA节点i,而内存处于NUMA节点j时,节点i到j之间的延迟;C[i]表示虚拟机在NUMA节点CPU使用率的分布,M[j]表示虚拟机内存在NUMA节点的分布比例;α为CPU与内存亲和度权重,β为拟机内存和网卡之间的亲和度权重,γ为虚拟机CPU和网卡之间亲和度的权重。

进一步地,步骤1中通过内存延迟检查(Intel Memory Latency Checker)工具获取NUMA系统虚拟机的CPU和内存之间的亲和度矩阵APMLat。

进一步地,步骤2中通过memcpy进程模拟DMA传输来获取虚拟机的内存和网卡之间的亲和度矩阵ANMBdw。

进一步地,步骤3中通过运行lmbench工具来获取虚拟机CPU和网卡之间的亲和度矩阵ANPLat。

进一步地,步骤4通过libvirt库提供的接口和Linux内核提供的/proc文件系统实时虚拟机的性能数据。

进一步地,所述虚拟机的性能数据包括每千条指令的缓存丢失数目(cache MissPer thousand Instruction,MPKI),每秒收发包数(Packets Per Second,PPS),虚拟机CPU使用率和内存分布情况;通过缓存丢失率,我们判断虚拟机是否为内存密集型虚拟机。缓存丢失率越高,说明虚拟机内存访问越密集,CPU和内存之间的亲和度对虚拟机性能影响越大。通过每秒收法包数,判断虚拟机是否为网络密集型虚拟机,虚拟机每秒收发包数越多,说明虚拟机网络活动越频繁,虚拟机内存和网卡的亲和度以及虚拟机CPU和网卡的亲和度对虚拟机网络性能影响越大。

进一步地,步骤4中通过使用libvirt库提供的接口vir Domain Interface Stats分别获取虚拟机的每秒收发包数和虚拟机CPU使用率。

进一步地,步骤4中通过读取Linux内核提供的/proc/<虚拟机进程id>/numa_maps文件实时获取虚拟机的内存分布情况。

本方法与现有技术相比,具有以下有益的技术效果:

1、通过将虚拟机的网卡亲和度分解为虚拟机内存和网卡的亲和的以及虚拟机CPU和网卡的亲和度,从而能够准确的建模虚拟机的网络亲和度。

2、通过将虚拟机的内存亲和度与网卡亲和度结合起来一起建模,从而能够在基于NUMA架构下高性能虚拟化网络环境准确的建模虚拟机的资源亲和度。

3、通过将虚拟机的实时性能数据如缓存丢失率,每秒收法包数,CPU使用率,内存使用率等作为模型参数,从而能够较好的捕获虚拟机的实时资源亲和度信息,从而可作为性能预测指标。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明所用物理平台的非一致性内存访问(NUMA)架构的示意图;

图2是运行网络密集型程序Netperf的虚拟机在不同内存和网卡亲和度配置下,虚拟机的网络性能和模型所捕获的值的关系图;

图3是运行内存密集型程序STREAM的虚拟机在不同内存和网卡亲和度配置下,虚拟机的性能和模型所捕获的值的关系图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

一种基于NUMA架构的虚拟机内存及网卡资源亲和度计算方法,包括以下步骤:

步骤1,通过Intel Memory Latency Checker(内存延迟检查)工具获取当前NUMA架构下,虚拟机的CPU和内存之间的内存访问延迟矩阵,记为APMLat,将APMLat近似为虚拟机的CPU和内存之间的亲和度矩阵,不失一般性,在本发明所使用服务器NUMA架构下,获得APMLat矩阵如下表所下::

内存在节点0内存在节点1内存在节点2内存在节点3CPU在节点00.980.340.310.34CPU在节点10.340.990.340.31CPU在节点20.310.340.990.34CPU在节点30.340.310.341.00

表格中,值越大表示亲和度越好。APMLat(0,1)=0.34表示当虚拟机的CPU运行在NUMA节点0,而内存处于NUMA节点1时,该虚拟机的CPU和内存的亲和度为0.34。

步骤2,通过运行memcpy进程模拟DMA传输来获取当前NUMA架构下,虚拟机的内存和网卡之间的DMA传输带宽矩阵,记为ANMBdw,将ANMBdw近似为虚拟机的内存和网卡之间的亲和度矩阵;不失一般性,在本发明所使用服务器NUMA架构下,所获得ANMBdw矩阵如下表所下:

内存在节点0内存在节点1内存在节点2内存在节点3ANMBdw(i)1.000.770.690.79

表格中,值越大表示亲和度越好。ANMBdw(2)=0.69表示当虚拟机的内存处于NUMA节点2时,该虚拟机的内存和网卡的亲和度为0.69。

步骤3,通过运行lmbench工具来获取当前NUMA架构下,L3缓存访问的延迟和内存访问的延迟的矩阵,记为ANPLat,将L3缓存访问的延迟和内存访问延迟比值的矩阵近似为虚拟机CPU和网卡之间的亲和度矩阵;不失一般性,在本发明所使用服务器NUMA架构下,所获得ANPLat矩阵如下表所下:

内存在节点0内存在节点1内存在节点2内存在节点3CPU在节点01.001.001.001.00CPU在节点10.110.260.110.09CPU在节点20.090.110.260.11CPU在节点30.110.090.110.26

表格中,值越大表示亲和度越好。ANPLat(1,2)=0.11表示当虚拟机的CPU运行在NUMA节点1,而内存处于NUMA节点2时,该虚拟机的CPU和网卡的亲和度为0.11。

步骤4,通过使用libvirt库提供的接口vir Domain Interface Stats,virDomain Get CPU Stats分别获取虚拟机的每秒收发包数和虚拟机CPU使用率,通过Linux提供的perf工具获取虚拟机的MPKI以及PPS,通过读取Linux内核提供的/proc/<虚拟机进程id>/numa_maps文件实时获取虚拟机的内存分布情况,不失一般性地,本发明使用如下方法判断虚拟机的内存密集性以及网络密集性,对于不同的机器架构,所用阈值可能需要调整,通过虚拟机性能特征数据计算虚拟机的CPU与内存亲和度权重α,虚拟机内存和网卡之间的亲和度权重β以及虚拟机CPU和网卡之间亲和度的权重γ;

MPKI>56MPKI>24MPKI>0MPKI=0α=3α=2α=1α=0

其中α越大,虚拟机内存访问越密集。其中,MPKI>56表示当虚拟机的每1000条指令的缓存丢失数目大于56时,其内存访问最密集,α的值设置为3。

PPS>10000PPS>3000PPS>0PPS=0β=γ=3β=γ=2β=γ=0.5β=γ=0

其中每秒收法包数越大,虚拟机网络访问越密集。其中,PPS>10000表示当虚拟机的每秒收发包数目大于10000时,其网络I/O最密集,β和γ的值设置为3。

步骤5,使用如下模型公式计算虚拟机的内存及网卡资源亲和度值,并作为性能指标:

其中,APMLat(i,j)表示当虚拟机的虚拟CPU运行在节点i而其要访问的内存处于节点j时,节点i到j之间的延迟;ANMBdw(i)表示当虚拟机内存位于NUMA节点i时,网卡到节点i的DMA传输带宽;ANPLat(i,j)表示当虚拟机的CPU运行在NUMA节点i,而内存处于NUMA节点j时,节点i到j之间的延迟;C[i]表示虚拟机在NUMA节点CPU使用率的分布,M[j]表示虚拟机内存在NUMA节点的分布比例;α为CPU与内存亲和度权重,β为拟机内存和网卡之间的亲和度权重,γ为虚拟机CPU和网卡之间亲和度的权重。

图2,图3展示的是运行不同类型程序的虚拟机在不同内存和网卡亲和度配置下,虚拟机的性能和模型所捕获的值的关系图。横坐标CiMj表示虚拟机的CPU运行在NUMA节点i上,内存处于NUMA节点j上。从图中可以看出,本发明模型所预测的值的趋势与虚拟机的性能趋势是吻合的。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号