CN112748989A - 基于远程内存的虚拟机内存管理方法、系统、终端及介质 - Google Patents
基于远程内存的虚拟机内存管理方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN112748989A CN112748989A CN202110123663.2A CN202110123663A CN112748989A CN 112748989 A CN112748989 A CN 112748989A CN 202110123663 A CN202110123663 A CN 202110123663A CN 112748989 A CN112748989 A CN 112748989A
- Authority
- CN
- China
- Prior art keywords
- memory
- remote
- page
- virtual machine
- remote memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于远程内存的虚拟机内存管理方法及系统,根据内存置换机制,对本地内存端和远程内存端之间进行内存置换;虚拟机根据内存页需求,输出本地内存端与远程内存端之间的内存页访问请求;判断是否需要进行内存页预取,生成对远程内存的访问请求输出至远程内存端;根据对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回;将远程内存页存储于本地内存中,建立对应的内存映射,恢复虚拟机运行;虚拟机继续执行并重新访问该内存页。同时提供了一种相应的终端及介质。本发明实现了虚拟机层级的远程内存管理,水平拓展了虚拟机的内存资源。
Description
技术领域
本发明涉及分布式系统架构及系统虚拟化技术领域,具体地,涉及一种基于远程内存的虚拟机内存管理方法、系统、终端及介质。
背景技术
近年来随着大数据分析和机器学习的流行,人们需要处理的数据呈现爆炸式增长趋势。为了提升处理效率,一个有效的做法是将所有数据载入内存进行处理,以减少缓慢的磁盘I/O对程序性能的影响。但是,随着摩尔定律逐渐失效,单机内存容量增速逐渐放缓,已经无法满足数据处理的需要。于是,远程内存技术被提出,通过分布式技术让单个节点使用其他节点的内存资源,突破单机内存资源瓶颈。
虽然当前一些远程内存技术已经在诸如易用性、可靠性、内存访问性能上进行了不少的优化,但距离实际应用仍有一段距离。当前最新的远程内存系统都是物理机层级的,当虚拟机内应用访问远程内存资源时,会带来几个问题:
1、虚拟机间内存竞争可能造成页颠簸;
2、容错性问题,内存节点崩溃时会影响所有虚拟机;
3、隔离性问题,虚拟机可能访问到别的虚拟机的远程内存区域。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种基于远程内存的虚拟机内存管理方法、系统、终端及介质。
根据本发明的一个方面,提供了基于远程内存的虚拟机内存管理方法,包括:
根据内存置换机制,对本地内存端和远程内存端之间进行内存置换;
虚拟机根据内存页需求,输出本地内存端与远程内存端之间的内存页访问请求;
判断是否需要进行内存页预取,如需要,则生成新的内存页访问请求作为对远程内存的访问请求,如不需要,则将虚拟机输出的所述内存页访问请求直接作为对远程内存的访问请求,并将所述对远程内存的访问请求输出至远程内存端;
根据所述对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回;
将所述远程内存页存储于本地内存中,建立对应的内存映射,恢复虚拟机运行;
虚拟机继续执行并重新访问该内存页。
优选地,所述内存置换机制包括:定时内存置换策略和按需内存置换策略;所述定时内存置换策略与所述按需内存置换策略之间根据内存置换策略切换要求进行切换。
其中:所述定时内存置换策略是指:周期性进行内存页置换;所述按需内存置换策略是指:当内存不足时,进行内存页同步置换。
优选地,所述内存置换策略切换要求,包括:
虚拟机内存管理系统检测当前虚拟机物理内存使用率:
当虚拟机物理内存使用率低于预设的第一阈值(低阈值)时,不进行内存页置换;
当虚拟机物理内存使用率低于预设的第二阈值(高阈值)但高于预设的第一阈值(低阈值)时,采用定时内存置换策略;
当虚拟机物理内存使用率高于设定的第二阈值(高阈值)时,采用按需内存置换策略。
优选地,所述对本地内存端和远程内存端之间进行内存置换,包括:
从本地内存中选取若干不活跃内存页作为待置换页;
选取当前空闲内存页最多的远程内存节点作为页换出目的内存节点;
将所述待置换页信息和内容发送给所述目的内存节点;
所述目的内存节点接收计算节点请求并将从本地内存中选取的内存页置于所述目的内存节点的内存中。
优选地,所述不活跃内存页的选取方法,包括:
将若干个连续内存页组合为一个内存页组,采用一个双向链表维护所述内存页组的最近访问状态;若所述内存页组中的某个内存页最近被访问过,将其添加至双向链表头部;
从链表尾部取出一个内存页组,扫描其中的内存页直至找到一个最近未被访问的内存页,将该内存页组从双向链表末尾删除,作为不活跃的内存页。
优选地,所述空闲内存页的判断方法,包括:
将若干空闲内存页组合成一个内存片,所述内存片内的各内存页之间通过显式空闲链表相连;
为所有所述内存片维护一个位图,位图中对应的位为1时,表示该内存片没有空闲内存页,反之,该内存片中存在空闲内存页。
优选地,所述判断是否需要进行内存页预取,采用内存页预取方法;其中:
所述内存页预取算法,包括:
设预取窗口大小为M和预取页数目为N;
当获取到内存页访问请求时,与预取窗口中的前M个其它远程内存访问请求进行比较,若预取窗口中的M个内存访问的地址与此次内存访问地址成等差数列,则除了原本请求的内存页外,还将额外取回N个内存页;
减少预取窗口大小,增加预取页数目,当再次获取到内存页访问请求时,重新执行上一个步骤。
优选地,所述根据所述对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回,包括:
获取所有对远程内存的访问请求;
验证虚拟机身份,将所述访问请求发送至拥有所需内存页拷贝的远程内存节点;
根据内存页预取请求,通过先前发起的若干对远程内存的访问请求判断虚拟机接下来所需的远程内存页,并同当前所需的内存页一并取回到本地内存中。
优选地,所述方法还包括:
将本地内存端获取的内存页同步持久化到本地磁盘中。
根据本发明的第二个方面,提供了一种基于远程内存的虚拟机内存管理系统,包括:本地内存端和远程内存端;所述本地内存端位于虚拟机所处物理节点上,包括:本地内存以及设置于虚拟机所处计算节点上的内存置换模块和远程内存访问模块;所述远程内存端位于远端内存节点上,包括:远端内存以及设置于远端内存节点上的远程内存请求处理模块和远程内存管理模块;其中:
所述内存置换模块,根据内存置换机制,对所述本地内存端和所述远程内存端之间进行内存置换;
所述远程内存访问模块,获取虚拟机的内存页访问请求,并根据预取需求对所述内存页访问请求进行处理,形成对远程内存的访问请求后输出至远程内存端;接收返回的远程内存页,并存储于本地内存中;
所述远程内存请求处理模块,根据所述对远程内存的访问请求,读取对应的远程内存页并返回至本地内存端;
所述远程内存管理模块,对所述远程内存进行管理。
优选地,跨物理节点的多个基于远程内存的虚拟机内存管理系统之间通过高速互联网络通信和传输数据。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行上述任一项所述的方法。
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项所述的方法。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
1、本发明提供的基于远程内存的虚拟机内存管理方法、系统、终端及介质,将虚拟机内存资源进行水平扩展,部分虚拟机内存置于虚拟机所处的计算节点内存中,部分虚拟机内存资源置于远程内存节点的内存中,节点之间通过高速网络互联,突破了计算节点物理资源的限制。
2、本发明提供的基于远程内存的虚拟机内存管理方法、系统、终端及介质,相较于传统的磁盘置换方法,大大提升了虚拟机的内存页置换的性能。
3、本发明提供的基于远程内存的虚拟机内存管理方法、系统、终端及介质,实现了虚拟机层级的远程内存管理,水平拓展了虚拟机的内存资源。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的基于远程内存的虚拟机内存管理方法的流程图。
图2为本发明一实施例提供的基于远程内存的虚拟机内存管理系统的组织架构图。
图3为本发明一优选实施例中内存页同步示意图。
图4为本发明一优选实施例中远程内存管理模块示意图。
图5为本发明一优选实施例中不活跃内存页选取方法示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图1为本发明一实施例提供的基于远程内存的虚拟机内存管理方法的流程图。
如图1所示,该实施例提供的基于远程内存的虚拟机内存管理方法,可以包括如下步骤:
S100,根据内存置换机制,对本地内存端和远程内存端之间进行内存置换;
S200,虚拟机根据内存页需求,输出本地内存端与远程内存端之间的内存页访问请求;
S300,判断是否需要进行内存页预取,如需要,则生成新的内存页访问请求作为对远程内存的访问请求,如不需要,则将虚拟机输出的内存页访问请求直接作为对远程内存的访问请求,并将对远程内存的访问请求输出至远程内存端;
S400,根据对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回;
S500,将远程内存页存储于本地内存中,建立对应的内存映射,恢复虚拟机运行;
S600,虚拟机继续执行并重新访问该内存页。
作为一优选实施例,该方法还可以包括:将本地内存端获取的内存页同步持久化到本地磁盘中。
在该实施例的S100中,作为一优选实施例,内存置换机制可以包括:定时内存置换策略和按需内存置换策略;定时内存置换策略与按需内存置换策略之间根据内存置换策略切换要求进行切换。
进一步地,定时内存置换策略是指:周期性唤醒内核线程扫描可以被置换的内存页进行内存页置换。
进一步地,按需内存置换策略是指:当内存不足时,在EPT Violation处理程序中进行内存页同步置换。
进一步地,作为一优选实施例,内存置换策略切换要求,可以包括:
虚拟机内存管理系统检测当前虚拟机物理内存使用率:
当虚拟机物理内存使用率低于预设的低阈值时,不进行内存页置换;
当虚拟机物理内存使用率低于预设的高阈值但高于预设的低阈值时,采用定时内存置换策略;
当虚拟机物理内存使用率高于设定的高阈值时,采用按需内存置换策略。
在该实施例的S100中,作为一优选实施例,对本地内存端和远程内存端之间进行内存置换,可以包括如下步骤:
S101,从本地内存中选取若干不活跃内存页作为待置换页;
S102,选取当前空闲内存页最多的远程内存节点作为页换出目的内存节点;
S103,将待置换页信息和内容发送给目的内存节点;
S104,目的内存节点接收计算节点请求并将从本地内存中选取的内存页置于目的内存节点的内存中。
在该实施例的S101中,作为一优选实施例,不活跃内存页的选取方法,可以包括如下步骤:
S1011,将若干个连续内存页组合为一个内存页组,采用一个双向链表维护内存页组的最近访问状态;若内存页组中的某个内存页最近被访问过,将其添加至双向链表头部;
S1012,从链表尾部取出一个内存页组,扫描其中的内存页直至找到一个最近未被访问的内存页,将该内存页组从双向链表末尾删除,作为不活跃的内存页。
在该实施例的S102中,作为一优选实施例,空闲内存页的判断方法,可以包括如下步骤:
S1021,将若干空闲内存页组合成一个内存片,内存片内的各内存页之间通过显式空闲链表相连;
S1022,为所有内存片维护一个位图,位图中对应的位为1时,表示该内存片没有空闲内存页,反之,该内存片中存在空闲内存页。
在该实施例的S300中,作为一优选实施例,判断是否需要进行内存页预取,采用内存页预取方法;其中:
内存页预取算法,可以包括如下步骤:
S301,设预取窗口大小为M和预取页数目为N;
S302,当获取到内存页访问请求时,与预取窗口中的前M个其它远程内存访问请求进行比较,若预取窗口中的M个内存访问的地址与此次内存访问地址成等差数列,则除了原本请求的内存页外,还将额外取回N个内存页;
S303,减少预取窗口大小,增加预取页数目,当再次获取到内存页访问请求时,重新执行步骤S302。
在该实施例的S400中,作为一优选实施例,根据对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回,可以包括如下步骤:
S401,获取所有对远程内存的访问请求;
S402,验证虚拟机身份,并将访问请求发送至拥有所需内存页拷贝的远程内存节点;
S403,根据内存页预取请求,通过先前发起的若干对远程内存的访问请求判断虚拟机接下来所需的远程内存页,并同当前所需的内存页一并取回到本地内存中。
图2为本发明一实施例提供的基于远程内存的虚拟机内存管理系统的组织架构图。
如图2所示,该实施例提供的基于远程内存的虚拟机内存管理系统,可以包括:本地内存端和远程内存端;本地内存端位于虚拟机所处物理节点上,包括:本地内存以及设置于虚拟机所处计算节点上的内存置换模块和远程内存访问模块;远程内存端位于远端内存节点上,包括:远端内存以及设置于远端内存节点上的远程内存请求处理模块和远程内存管理模块;其中:
内存置换模块,根据内存置换机制,对本地内存端和远程内存端之间进行内存置换;
远程内存访问模块,获取虚拟机的内存页访问请求,并根据预取需求对内存页访问请求进行处理,形成对远程内存的访问请求后输出至远程内存端;接收返回的远程内存页,并存储于本地内存中;
远程内存请求处理模块,根据对远程内存的访问请求,读取对应的远程内存页并返回至本地内存端;
远程内存管理模块,对远程内存进行管理。
作为一优选实施例,跨物理节点的多个基于远程内存的虚拟机内存管理系统之间通过高速互联网络通信和传输数据。
作为一优选实施例,该实施例提供的基于远程内存的全新虚拟机内存管理系统,可以具有如下特征:
特征1:虚拟机内存管理系统包括如下模块:位于虚拟机所处计算节点上的内存置换模块和远程内存访问模块以及位于远端内存节点上的远程内存请求处理模块和远程内存管理模块。
特征2:系统中的每个虚拟机的内存包括两部分,位于虚拟机所处物理节点的本地内存和位于远端内存节点的远程内存。
特征3:跨物理节点的虚拟机内存管理模块间通过高速互联网络通信和传输数据。
作为一优选实施例,内存置换模块,可以具有如下特征:
特征1:实现了定时内存置换和按需内存置换两种内存置换策略。
特征2:能够按照某种要求或标准,在特征1两种置换策略间切换。
特征3:依照某种方法或标准,置换内存页时高效选取本地内存中的不活跃内存页,最大程度的减少将本地内存页置换到远程内存后引起的内存页颠簸问题。
特征4:置换内存页时,选取空闲内存最多的远程内存节点以便实现多内存节点间的负载均衡。
特征5:置换内存页时,将选取的内存页同步持久化到本地磁盘中以提升系统的容错性,如图3所示。
作为一优选实施例,远程内存访问模块,可以具有如下特征:
特征1:截获虚拟机发起的所有对远程内存的访问请求。
特征2:准确地将远程内存访问请求转发给拥有该内存页拷贝的远程内存节点。
特征3:依照某种规律或方法,能够根据之前发起的若干远程内存访问请求准确判断接下来虚拟机可能需要的远程内存页,并将它们提前取回到本地内存中。
特征4:取回远程内存页后,虚拟机能够直接从本地内存中读取该内存页。
作为一优选实施例,远程内存管理模块的工作原理如图4所示,其所采用的管理机制可以包括如下步骤:
步骤1:将若干空闲内存页组合成一个内存片,各内存页通过显式空闲链表相连。
步骤2:为所有内存片维护一个位图,位图中对应的位为1时,表示该内存块没有空闲内存页,反之,该内存块中存在空闲内存页。
作为一优选实施例,内存置换模块中,待置换页的选取方法如图5所示,可以包括如下步骤:
步骤1:将若干个连续内存页组合为一个内存页组,用一个双向链表维护内存页组的最近访问状态。若内存页组中的某个内存页最近被访问过,将其添加至双向链表头部。
步骤2:从链表尾部取出一个内存页组,扫描其中的内存页直至找到一个最近未被访问的内存页,而后将该内存页组从双向链表末尾删除。
作为一优选实施例,内存置换模块中,内存置换策略切换要求,可以包括如下步骤:
步骤1:虚拟机内存管理系统检测当前虚拟机物理内存使用率。若虚拟机物理内存使用率低于预设的低阈值时,不进行内存页置换;当虚拟机物理内存使用率低于高阈值但高于低阈值时,采用定时内存置换策略;当虚拟机物理内存使用率高于高阈值时,采用按需内存置换策略。
进一步地,对本地内存端和远程内存端之间进行内存置换,可以包括如下步骤:
步骤1:依据待置换页的选取方法,内存页置换模块从本地内存中选择若干不活跃内存页作为待置换页。
步骤2:内存页置换模块选取当前空闲内存最多的远程内存节点作为页换出目的节点。
步骤3:内存页置换模块将待置换页信息和内容发送给目的内存节点。
步骤4:目的内存节点接收计算节点请求并将内存页置于其内存中。
作为一优选实施例,远程内存访问模块中,内存页预取方法,可以包括如下步骤:
步骤1:设定预取判断窗口大小(M)和预取页数目(N)。
步骤2:当远程内存访问模块截获到远程内存访问请求时,与预取窗口中的其它远程内存访问请求(该请求的前M个请求)进行比较,若满足预取标准,则除了原本请求的内存页外,远程内存访问模块将额外取回N个内存页。
步骤3:减少预取判断窗口大小,增加预取页数目。
该实施例提供的基于远程内存的虚拟机内存管理系统,其访问远程内存页的流程如下:
步骤1:虚拟机发起远程内存页访问请求。
步骤2:远程内存访问模块截获远程内存页访问请求,根据内存页预取方法判断是否需要进行内存页预取,若如此,构造一个新的远程内存的访问请求。
步骤3:远程内存访问模块找出该内存页所在的远程内存节点并将上述请求转发给目的内存节点。
步骤4:目的内存节点上的远程内存请求处理模块接收步骤2请求,验证虚拟机身份。若虚拟机身份成功,进入下一步,否则直接结束。
步骤5:目的内存节点上的远程内存请求处理模块读取对应的远程内存页并返回。
步骤6:计算节点上远程内存访问模块接收远程内存页并置于本地内存中,建立对应的内存映射,恢复虚拟机运行。
步骤7:虚拟机继续执行并重新访问该内存页。
下面结合一具体应用实例,对本发明上述实施例提供的基于远程内存的虚拟机内存管理系统的技术方案进一步说明如下。
本具体应用实例采用两台装有HCA网卡的物理机搭建了一个小型集群,它们彼此之间通过光纤直连,并手动配置IP。在客户操作系统选择上,选用Ubuntu 18.04.4LTS。作为当前应用最为广泛的Linux发行版之一,它能满足本具体应用实例的各种需求。两台机器一台作为计算节点运行虚拟机,另一台作为内存节点提供远程内存,部署本具体应用实例的系统,如图2所示的架构。通过QEMU参数配置,本具体应用实例可以指定虚拟机拥有的远程内存容量。该架构对用户完全透明,用户可以通过终端启动,变更和销毁虚拟机,还可以在虚拟机中运行各种无需更改的应用和测试程序。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可用于执行上述任一项的方法。
可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项的方法。
本发明上述实施例提供的基于远程内存的全新虚拟机内存管理方法、系统、终端及介质,将虚拟机内存拓展到其它物理节点上并为其提供远程内存访问的接口。在本发明上述实施例中,每个虚拟机的内存包括两个部分:(1)位于虚拟机所处物理节点上的本地内存;(2)位于远端内存节点上的远程内存。当虚拟机本地内存紧张时,内存置换模块将不活跃内存页置换到远程内存中;当虚拟机发起远程内存访问请求时,虚拟机所处物理机将截获这些请求并转发至对应的远程内存节点,取回所需的内存页。
本发明上述实施例提供的基于远程内存的全新虚拟机内存管理系统,主要由位于虚拟机所处物理节点上的内存置换模块和远程内存访问模块以及位于远端内存节点上的远程内存请求处理模块和远程内存管理模块组成。跨物理节点的虚拟机内存管理模块间通过高速互联网络通信和传输数据。为了防止某些虚拟机恶意访问或篡改其它虚拟机的远程内存区域,该系统还提供了一种虚拟机身份验证机制,确保每个虚拟机只能访问自己拥有的远程内存。
本发明上述实施例提供的基于远程内存的全新虚拟机内存管理方法、系统、终端及介质,提供了虚拟机粒度的远程内存管理,同时为不同虚拟机之间的远程内存访问提供了安全有效的隔离机制,为云计算环境下虚拟机内存资源扩展提供了新的解决方案。
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照系统的技术方案实现方法的步骤流程,即,系统中的实施例可理解为实现方法的优选例,在此不予赘述。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (12)
1.一种基于远程内存的虚拟机内存管理方法,其特征在于,包括:
根据内存置换机制,对本地内存端和远程内存端之间进行内存置换;
虚拟机根据内存页需求,输出本地内存端与远程内存端之间的内存页访问请求;
判断是否需要进行内存页预取,如需要,则生成新的内存页访问请求作为对远程内存的访问请求,如不需要,则将虚拟机输出的所述内存页访问请求直接作为对远程内存的访问请求,并将所述对远程内存的访问请求输出至远程内存端;
根据所述对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回;
将所述远程内存页存储于本地内存中,建立对应的内存映射,恢复虚拟机运行;
虚拟机继续执行并重新访问该内存页。
2.根据权利要求1所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述内存置换机制包括:定时内存置换策略和按需内存置换策略;所述定时内存置换策略与所述按需内存置换策略之间根据内存置换策略切换要求进行切换。
3.根据权利要求2所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述内存置换策略切换要求,包括:
虚拟机内存管理系统检测当前虚拟机物理内存使用率:
当虚拟机物理内存使用率低于预设的第一阈值时,不进行内存页置换;
当虚拟机物理内存使用率低于预设的第二阈值但高于预设的第一阈值时,采用定时内存置换策略;
当虚拟机物理内存使用率高于设定的第二阈值时,采用按需内存置换策略。
4.根据权利要求1所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述对本地内存端和远程内存端之间进行内存置换,包括:
从本地内存中选取若干不活跃内存页作为待置换页;
选取当前空闲内存页最多的远程内存节点作为页换出目的内存节点;
将所述待置换页信息和内容发送给所述目的内存节点;
所述目的内存节点接收计算节点请求并将从本地内存中选取的内存页置于所述目的内存节点的内存中。
5.根据权利要求4所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述不活跃内存页的选取方法,包括:
将若干个连续内存页组合为一个内存页组,采用一个双向链表维护所述内存页组的最近访问状态;若所述内存页组中的某个内存页最近被访问过,将其添加至双向链表头部;
从链表尾部取出一个内存页组,扫描其中的内存页直至找到一个最近未被访问的内存页,将该内存页组从双向链表末尾删除,作为不活跃的内存页。
6.根据权利要求4所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述空闲内存页的判断方法,包括:
将若干空闲内存页组合成一个内存片,所述内存片内的各内存页之间通过显式空闲链表相连;
为所有所述内存片维护一个位图,位图中对应的位为1时,表示该内存片没有空闲内存页,反之,该内存片中存在空闲内存页。
7.根据权利要求1所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述判断是否需要进行内存页预取,采用内存页预取方法;其中:
所述内存页预取算法,包括:
设预取窗口大小为M和预取页数目为N;
当获取到内存页访问请求时,与预取窗口中的前M个其它远程内存访问请求进行比较,若预取窗口中的M个内存访问的地址与此次内存访问地址成等差数列,则除了原本请求的内存页外,还将额外取回N个内存页;
减少预取窗口大小,增加预取页数目,当再次获取到内存页访问请求时,重新执行上一个步骤。
8.根据权利要求1所述的基于远程内存的虚拟机内存管理方法,其特征在于,所述根据所述对远程内存的访问请求,获取所需内存页所在的远程内存节点,并读取对应的远程内存页并返回,包括:
获取所有对远程内存的访问请求;
验证虚拟机身份,将所述访问请求发送至拥有所需内存页拷贝的远程内存节点;
根据内存页预取请求,通过先前发起的若干对远程内存的访问请求判断虚拟机接下来所需的远程内存页,并同当前所需的内存页一并取回到本地内存中。
9.根据权利要求1-8中任一项所述的基于远程内存的虚拟机内存管理方法,其特征在于,还包括:
将本地内存端获取的内存页同步持久化到本地磁盘中。
10.一种基于远程内存的虚拟机内存管理系统,其特征在于,包括:本地内存端和远程内存端;所述本地内存端位于虚拟机所处物理节点上,包括:本地内存以及设置于虚拟机所处计算节点上的内存置换模块和远程内存访问模块;所述远程内存端位于远端内存节点上,包括:远端内存以及设置于远端内存节点上的远程内存请求处理模块和远程内存管理模块;其中:
所述内存置换模块,根据内存置换机制,对所述本地内存端和所述远程内存端之间进行内存置换;
所述远程内存访问模块,获取虚拟机的内存页访问请求,并根据预取需求对所述内存页访问请求进行处理,形成对远程内存的访问请求后输出至远程内存端;接收返回的远程内存页,并存储于本地内存中;
所述远程内存请求处理模块,根据所述对远程内存的访问请求,读取对应的远程内存页并返回至本地内存端;
所述远程内存管理模块,对所述远程内存进行管理。
11.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可用于执行权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可用于执行权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110123663.2A CN112748989A (zh) | 2021-01-29 | 2021-01-29 | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110123663.2A CN112748989A (zh) | 2021-01-29 | 2021-01-29 | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748989A true CN112748989A (zh) | 2021-05-04 |
Family
ID=75653291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110123663.2A Pending CN112748989A (zh) | 2021-01-29 | 2021-01-29 | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700903A (zh) * | 2023-08-08 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100261462A1 (en) * | 2009-04-13 | 2010-10-14 | Cequint, Incorporated | System and method for local handset check of the nxx local exchange to determine carrier |
CN102508638A (zh) * | 2011-09-27 | 2012-06-20 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
CN104426971A (zh) * | 2013-08-30 | 2015-03-18 | 华为技术有限公司 | 一种远程内存交换分区方法、装置及系统 |
CN107203411A (zh) * | 2017-04-18 | 2017-09-26 | 中国科学院计算技术研究所 | 一种基于远程ssd的虚拟机内存扩展方法及系统 |
CN107491340A (zh) * | 2017-07-31 | 2017-12-19 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
-
2021
- 2021-01-29 CN CN202110123663.2A patent/CN112748989A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100261462A1 (en) * | 2009-04-13 | 2010-10-14 | Cequint, Incorporated | System and method for local handset check of the nxx local exchange to determine carrier |
CN102508638A (zh) * | 2011-09-27 | 2012-06-20 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
CN104426971A (zh) * | 2013-08-30 | 2015-03-18 | 华为技术有限公司 | 一种远程内存交换分区方法、装置及系统 |
CN107203411A (zh) * | 2017-04-18 | 2017-09-26 | 中国科学院计算技术研究所 | 一种基于远程ssd的虚拟机内存扩展方法及系统 |
CN107491340A (zh) * | 2017-07-31 | 2017-12-19 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
Non-Patent Citations (1)
Title |
---|
邓文洋: "虚拟化环境下的多机内存优化技术研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700903A (zh) * | 2023-08-08 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
CN116700903B (zh) * | 2023-08-08 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
US10552337B2 (en) | Memory management and device | |
TWI549060B (zh) | Access methods and devices for virtual machine data | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
CN101042679A (zh) | 维护存储器一致性的方法和系统 | |
US20080109624A1 (en) | Multiprocessor system with private memory sections | |
CN105518631B (zh) | 内存管理方法、装置和系统、以及片上网络 | |
US10762137B1 (en) | Page table search engine | |
KR20180057639A (ko) | 선택적 리소스 이동을 이용하는 네트워크 결합 메모리 | |
US10108553B2 (en) | Memory management method and device and memory controller | |
KR20150132432A (ko) | 네트워크를 통한 메모리 공유 | |
Kim et al. | Improving the storage performance of smartphones through journaling in non-volatile memory | |
US20140250286A1 (en) | Computer and memory management method | |
CN115168247B (zh) | 用于并行处理器中动态共享存储空间的方法及相应处理器 | |
CN114443364B (zh) | 一种分布式块存储数据处理方法、装置、设备及存储介质 | |
KR980010819A (ko) | 비포함적 메모리 억세스 메커니즘 | |
CN113794764A (zh) | 服务器集群的请求处理方法、介质和电子设备 | |
CN112039999A (zh) | 一种内核态访问分布式块存储系统的方法及系统 | |
JP6343722B2 (ja) | マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス | |
CN112748989A (zh) | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 | |
US20110258424A1 (en) | Distributive Cache Accessing Device and Method for Accelerating to Boot Remote Diskless Computers | |
CN111611223A (zh) | 非易失性数据的访问方法、系统、电子设备和介质 | |
CN116521608A (zh) | 数据迁移方法及计算设备 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN113448897B (zh) | 适用于纯用户态远端直接内存访问的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210504 |
|
WD01 | Invention patent application deemed withdrawn after publication |