一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法技术

技术编号:14483363 阅读:45 留言:0更新日期:2017-01-26 02:54
本发明专利技术公开了一种基于虚拟机宿主机内存地址转换的NUMA内存迁页方法,包括:通过VMM实时监控虚拟机里的应用程序,得到应用程序的热页的地址的集合(HPA)和应用程序NUMA亲和度的信息;当发现应用程序的NUMA亲和度下降到低于阈值时,将该应用程序标志为需要迁移状态;对标志为需要迁移状态的应用程序,通过VMM获取该应用程序运行的VCPU所在的NUMA节点作为目标节点,并对应用程序的热页进行GPA‑>HVA地址转换获得需要迁移的宿主机内存页的虚拟地址,并将转换后得到的宿主机内存页的虚拟地址和目标节点作为参数调用系统调用move_pages将内存页迁移到目标节点。本发明专利技术解决了在虚拟机环境下不能对虚拟机里运行的程序进行内存迁页的问题。

【技术实现步骤摘要】

本专利技术涉及计算机系统虚拟化领域,尤其涉及一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法
技术介绍
虚拟化技术可以将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统。每个虚拟计算机系统(简称为客户机或虚拟机)都拥有自己的虚拟硬件(如CPU、内存和设备等),来提供一个独立的虚拟机执行环境。而运行虚拟机的真实物理计算机系统则成为宿主机。虚拟化技术由于其具有的容错性和高资源利用率而广泛应用在云计算和高性能计算等领域。在虚拟化环境里,虚拟机监视器(VirtualMachineManagement,VMM)是存在于硬件和操作系统之间的一个软件管理层,其主要负责管理真实的物理资源,如CPU、内存及I/O设备等,并将底层的硬件资源抽象为对应的虚拟设备接口供虚拟机使用。内存虚拟化是虚拟化技术的基础之一。内存虚拟化的目的是给虚拟机提供一个从零开始的并且连续的内存空间,而且必须要在各虚拟机之间有效隔离、调度以及共享内存资源。为了达到这个目的,VMM引入了一层新的地址空间,即客户机物理地址空间(GuestPhysicalAddress,GPA),这个地址空间并不是真正的物理地址空间,它只是宿主机虚拟地址空间在客户机地址空间的一个映射。如图1所示,对客户机来说,客户机物理地址空间都是从零开始的连续地址空间,但对于宿主机来说,客户机的物理地址空间并不一定是连续的,客户机物理地址空间有可能映射在若干个不连续的宿主机地址区间。引入了客户机物理地址空间以后,就形成了从应用程序所在虚拟机虚拟地址(GuestVirtualAddress,GVA)到虚拟机物理地址(GuestPhysicalAddress,GPA),再从虚拟机物理地址GPA到宿主机虚拟地址(HostVirtualAddress,HVA),再从HVA到宿主机物理地址(HostPhysicalAddress,HPA)的三层地址转换。在KVM中,KVM用一个kvm_memory_slot数据结构来记录每一个地址区间的映射关系,此数据结构包含了对应此映射区间的起始客户机页帧号(GuestFrameNumber,GFN),映射的内存页数目以及起始宿主机虚拟地址。于是KVM就可以实现对客户机物理地址到宿主机虚拟地址之间的转换,也即首先根据客户机物理地址找到对应的映射区间,然后根据此客户机物理地址在此映射区间的偏移量就可以得到其对应的宿主机虚拟地址。进而再通过宿主机的页表也可实现客户机物理地址到宿主机物理地址之间的转换,也即GPA到HPA的转换,如图2所示。现有的主流多核处理器采用的架构是非一致性内存访问(Non-UniformMemoryAccess,简称NUMA)架构。NUMA架构的特点是系统的相关硬件资源(如内存、CPU)被划分为多个节点。在NUMA架构里,处理器访问本地节点的内存的速度要比访问远程节点的内存的速度要快。如图3所示的是物理平台的具有8个NUMA节点的NUMA架构服务器的示意图。由于不同位置的处理器(CPU)与各个内存之间的距离不同,且各个处理器之间的距离也不同,因此不同处理器访问各个内存的时间也是不同的。现有的关于NUMA架构性能调优方法主要包括进程迁移和内存迁移。其中,内存迁移是指将应用程序的数据全部迁移到程序所在的CPU节点上,这样可以让CPU和内存之间的亲和度达到最优从而提升性能。然而,现有的研究主要集中在非虚拟化环境,即进行NUMA调优的对象是宿主机的应用程序。对于虚拟机里运行的应用程序来说,由于缺少宿主机物理架构的信息和相应的NUMA调优方法,其性能势必会受到影响。另外,由于传统的内存迁移方法迁移的对象是程序的所有内存页,这势必会导致非常大的开销。但是,每个应用程序在运行时经常访问的内存页(简称为“热页”)往往是很少的,因此迁移应用程序热页以外的内存页对性能提升并没有多大作用。因此,本专利技术致力于开发在NUMA架构下,基于KVM内存地址转换的细粒度的内存迁页方法,通过该方法可以在获得运行在虚拟机里的程序的虚拟机内存页的GVA以后,进行地址转换成HVA并对该程序的物理机内存页进行迁移。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是提供一种在NUMA架构下基于虚拟机和宿主机内存地址转换的内存页迁移方法,使虚拟机里的应用程序的NUMA内存调优成为可能,并通过地址解析只迁移虚拟机应用程序的热页来大大降低内存调优的开销。为了实现上述专利技术目的,本专利技术提供了一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法,包括以下步骤:步骤1、通过VMM实时监控虚拟机里的应用程序,得到所述应用程序的热页地址的集合和所述应用程序的NUMA亲和度信息;步骤2、当发现所述应用程序的NUMA亲和度下降到低于阈值时,则将所述应用程序标志为需要迁移的状态;步骤3、对标志为需要迁移状态的所述应用程序,通过VMM获取所述应用程序运行的VCPU所在的NUMA节点作为目标节点,并对所述应用程序的热页进行虚拟机物理地址到宿主机虚拟地址的转换,将所述应用程序的热页迁移到目标节点;然后跳转到步骤1继续对虚拟机应用程序进行监控。进一步地,所述应用程序的NUMA亲和度信息被配置为通过计算所述应用程序运行的VCPU所在的NUMA节点与所述应用程序数据所在的NUMA节点的距离来获得。进一步地,所述应用程序的热页迁移到目标节点被配置为通过将转换后得到的宿主机内存页的虚拟地址和目标节点作为参数调用系统功能move_pages实现。本方法与现有技术相比,至少具有以下有益的技术效果:(1)通过只迁移应用程序的热页来大幅降低NUMA内存调优的开销,提升NUMA内存调优带来的性能收益。(2)通过对虚拟机应用程序的内存页进行GPA到宿主机HVA的地址转换来将虚拟机里的应用程序的内存页对应到宿主机相应的内存页上,使对虚拟机里的应用程序进行NUMA内存迁移成为可能。以下将结合附图对本专利技术的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本专利技术的目的、特征和效果。附图说明图1是本专利技术的一个较佳实施例的内存虚拟化引入的新的虚拟机物理地址空间示意图;图2是本专利技术的一个较佳实施例的KVM中从虚拟地址GVA到宿主机物理地址HPA的地址转换示意图;图3是本专利技术的一个较佳实施例的物理平台的非一致性内存访问(NUMA)架构的示意图;图4是本专利技术的一个较佳实施例的NUMA内存迁页的流程示意图。具体实施方式下面结合附图对本专利技术的实施例作详细说明,本实施例在以本专利技术技术方案为前提下进行实施,以下给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。如图4所示,本专利技术所述的基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法包括以下步骤:步骤1、通过VMM来监控虚拟机里应用程序的运行信息。对于虚拟机里当前负荷较高的应用,通过监控应用的的内存访问来获得应用的热页。并通过计算应用程序运行的VCPU所在的NUMA节点与应用程序数据所在的NUMA节点的距离来计算程序的NUMA亲和度。步骤2、当监控的应用程序的NUMA亲和度低于某个阈值时(该阈值与平台相关),标志该应用程序为需要进行内存迁移状态。步骤3、对标志为需要进行迁移状态的程序,通过VMM获得其VCPU所在NUMA节点为目标节点本文档来自技高网
...
一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法

【技术保护点】
一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法,其特征在于,包括以下步骤:步骤1、通过VMM实时监控虚拟机里的应用程序,得到所述应用程序的热页地址的集合和所述应用程序的NUMA亲和度信息;步骤2、当发现所述应用程序的NUMA亲和度下降到低于阈值时,则将所述应用程序标志为需要迁移的状态;步骤3、对标志为需要迁移状态的所述应用程序,通过VMM获取所述应用程序运行的VCPU所在的NUMA节点作为目标节点,并对所述应用程序的热页进行虚拟机物理地址到宿主机虚拟地址的转换,将所述应用程序的热页迁移到目标节点;然后跳转到步骤1继续对虚拟机应用程序进行监控。

【技术特征摘要】
1.一种基于虚拟机和宿主机内存地址转换的NUMA内存迁页方法,其特征在于,包括以下步骤:步骤1、通过VMM实时监控虚拟机里的应用程序,得到所述应用程序的热页地址的集合和所述应用程序的NUMA亲和度信息;步骤2、当发现所述应用程序的NUMA亲和度下降到低于阈值时,则将所述应用程序标志为需要迁移的状态;步骤3、对标志为需要迁移状态的所述应用程序,通过VMM获取所述应用程序运行的VCPU所在的NUMA节点作为目标节点,并对所述应用程序的热页进行虚拟机物理地址到宿主机虚拟地址的转换,将所述应用程序的热页迁移到目...

【专利技术属性】
技术研发人员:管海兵谭钧升钱建民马汝辉李健
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1