CN106874119A - 基于同质内存扫描的合并方法及装置 - Google Patents

基于同质内存扫描的合并方法及装置 Download PDF

Info

Publication number
CN106874119A
CN106874119A CN201710105084.9A CN201710105084A CN106874119A CN 106874119 A CN106874119 A CN 106874119A CN 201710105084 A CN201710105084 A CN 201710105084A CN 106874119 A CN106874119 A CN 106874119A
Authority
CN
China
Prior art keywords
memory
memory pages
homogeneity
tree
pages
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
Application number
CN201710105084.9A
Other languages
English (en)
Inventor
戚勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710105084.9A priority Critical patent/CN106874119A/zh
Publication of CN106874119A publication Critical patent/CN106874119A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及虚拟化集群***的内存优化技术领域,特别是一种基于同质内存扫描的合并方法及装置,针对虚拟化集群***的内存优化需要,构建一种利用虚拟化技术来无缝聚合同质内存资源的方法及装置,对***中的空闲内存资源进行统一管理,为在全局内搜寻同质内存提供基础。包括:将内存页面存入动态内存池;查找动态内存池中的内存页面是否在稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则进行下一步;查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则将动态内存池中的内存页面添加到非稳定树中。

Description

基于同质内存扫描的合并方法及装置
技术领域
本发明涉及虚拟化集群***的内存优化技术领域,特别是一种基于同质内存扫描的合并方法及装置。
背景技术
每个虚拟机上的内存会完整的映射到物理内存上,由于一台服务器上的多个虚拟机运行同一操作***,因此物理内存中存在大量相同的内存页面,在这里称之为同质内存。现代操作***设计中,共享内存己经成为一个普遍采用的技术,正是通过这一特点,我们可以将这些同质内存让多个虚拟机共享,通过扫描内存中的页,找到不同虚拟机之间的相同的内存页,然后将相同的内存页进行合并,当某个虚拟机需要修改内存页时,重新申请一个内存页,拷贝原来页数据到此内存页,将此内存页给需要改变内存页的虚拟机,从而达到降低总体内存需求,通过资源复用提高单台服务器内的资源优化,我们将这种方法称之为“节流”。
虽然同质内存共享技术大大节省了内存的使用量,但是为了充分利用服务器的各资源,管理员通常将不同类型的服务器应用,如计算密集型,通信密集型,密集型等,放在同一台服务器上以提高单台服务器的利用率,由于单台服务器上的同构虚拟机数量的减少,又会影响的使用效果。同时虚拟机中数据可分为读频繁和写频繁,因此对于某些内存页并且对内存也数据进行不加区分的进行共享,这就导致了对于写频繁的内存页频繁的被分离出去,而由于分页造成的开销远远大于实用同质内存复用带来的性能提升。
发明内容
鉴于此,本发明提供一种基于同质内存扫描的合并方法及装置,针对虚拟化集群***的内存优化需要,构建一种利用虚拟化技术来无缝聚合同质内存资源的方法及装置,对***中的空闲内存资源进行统一管理,为在全局内搜寻同质内存提供基础。
为了达到上述目的,本发明是通过以下技术方案实现的:
本发明提供一种基于同质内存扫描的合并方法,包括: 将内存页面存入动态内存池;查找动态内存池中的内存页面是否在稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则进行下一步; 查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则将动态内存池中的内存页面添加到非稳定树中。
进一步地,将内存页面存入动态内存池之前,还包括: 创建动态内存池。
进一步地,将内存页面存入动态内存池,包括: 为发生读写操作的内存页面添加去重标识; 将添加了去重标识的内存页面存入动态内存池。
进一步地,将添加了去重标识的内存页面存入动态内存池,包括: 将添加了去重标识的内存页面存入有限环形栈,有限环形栈最上层放置最新存入的内存页面。
进一步地,将动态内存池中的内存页面添加到非稳定树中,包括: 计算动态内存池中的内存页面的哈希值; 将动态内存池中的内存页面添加到非稳定树。
进一步地,将动态内存池中的内存页面添加到非稳定树中之后,还包括: 将添加到非稳定树中的内存页面标记为只读。
本发明还提供一种基于同质内存扫描的合并装置,包括: 内存页面存入模块,用于将内存页面存入动态内存池; 第一查找模块,用于查找动态内存池中的内存页面是否在稳定树中存在同质内存页面; 第二查找模块,用于查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面; 第一添加模块,用于将动态内存池中的内存页面添加到稳定树中; 第二添加模块,用于将动态内存池中的内存页面添加到非稳定树中。
进一步地,还包括: 动态内存池创建模块,用于创建动态内存池。
进一步地,还包括: 去重标识添加模块,用于为发生读写操作的内存页面添加去重标识。
进一步地,还包括: 哈希计算模块,用于计算动态内存池中的内存页面的哈希值;
进一步地,还包括: 内存页面属性更改模块,用于将添加到非稳定树中的内存页面标记为只读。
本发明提供一种基于同质内存扫描的合并方法,具有如下有益效果:根据读写顺序对内存页面进行无序的扫描以查找同质内存页面,并将其合并到稳定树中,把内存服务器对虚拟文件***的读操作的对象以及虚拟文件***写操作的目标做为扫描的主要内存页面,在动态内存池中捕获所有内存读写的提示,然后在动态内存池中全局查找同质内存页面,可以大大提高单个页面的共享度,从而节省更多的内存页面。
基于同质内存扫描的合并装置的有益效果与基于同质内存扫描的合并方法类似,不再赘述。
附图说明
图1为本发明实施例所提供的基于同质内存扫描的合并方法的流程示意图;
图2为本发明实施例所提供的基于同质内存扫描的合并方法的流程示意图的另一种实施方式;
图3为本发明实施例所提供的基于同质内存扫描的合并装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合具体情况说明本发明的示例性实施例:
请参考图1,图1为本发明实施例所提供的基于同质内存扫描的合并方法的流程示意图;本发明提供一种基于同质内存扫描的合并方法,包括:
步骤S101、将内存页面存入动态内存池;
步骤S102、查找动态内存池中的内存页面是否在稳定树中存在同质内存页面,若是,则进行步骤S103;
步骤S103、将动态内存池中的内存页面添加到稳定树中;若否,则进行步骤S104;
步骤S104、查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面,若是,则进行步骤S103;若否,则进行步骤S105;
步骤S105、将动态内存池中的内存页面添加到非稳定树中。
请参考图2,图2为本发明实施例所提供的基于同质内存扫描的合并方法的流程示意图的另一种实施方式;本实施例提供一种基于同质内存扫描的合并方法,包括:
步骤S201、创建动态内存池;
步骤S202、为发生读写操作的内存页面添加去重标识;
步骤S203、将添加了去重标识的内存页面存入动态内存池;
在本实施例中,将添加了去重标识的内存页面存入有限环形栈,有限环形栈最上层放置最新存入的内存页面。
步骤S204、查找动态内存池中的内存页面是否在稳定树中存在同质内存页面,若是,则进行步骤S205;
步骤S205、将动态内存池中的内存页面添加到稳定树中;若否,则进行步骤S206;
步骤S206、查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面,若是,则进行步骤S205;若否,则进行步骤S207;
步骤S207、计算动态内存池中的内存页面的哈希值;
步骤S208、将动态内存池中的内存页面添加到非稳定树;
步骤S209、将添加到非稳定树中的内存页面标记为只读;
值得说明的是,原生的KSM处理流程可以从以下KSM的原理中得到解释:KSM即KernelSamePage Merging,同时也被称为是一个内核模块,KSM作为内核中的守护进程定期执行页面扫描,识别副本页面并合并副本,释放这些页面以供它用。执行上述操作的过程对用户透明。例如,副本页面被合并(然后被标记为只读),但是,如果这个页面的其中一个用户由于某种原因更改该页面,该用户将收到自己的副本。
KSM使用的方法与内存去親合中使用的方法不同。在传统的去稱合中,对象被散列化,然后使用散列值进行初始相似性检查。当散列值一致时,下一步是进行一个实际对象比较,以便正式确定这些对象是否一致。KSM在它的第一个实现中采用这种方法,但后来开发了一种更直观的方法来简化它。需要指出的是,KSM依赖上层应用接口提供扫描的内存区域,虽然KSM可以扫描***中的所有内存页面,但是由于内存容量比较大,因此对内存区域完全扫描需要大量的时间并且耗费大量的计算资源。因此,Linux为应用程序提供了一个注册函数,让应用程序将自己希望杯合并的内存空间通过该接口向操作***注册,这个接口函数是:
#include<sys/mman.h>
int madvise(void * start,size_t length,int advise)
在当前的KSM中,页面通过两个“红黑”树管理,其中一个“红-黑”树是临时的。第一个树称为非稳定树,用于存储还不能理解为稳定的新页面。换句话说,作为合并候选对象的页面存储在这个非稳定树中。非稳定树中的页面不是写保护的。第二个树称为稳定树,存储那些已经发现是稳定的且通过KSM合并的页面。为确定一个页面是否是稳定页面,KSM使用了一个简单的32位校验和。当一个页面被扫描时,它的校验和被计算且与该页面存储在一起。在一次后续扫描中,如果新计算的校验和不等于此前计算的校验和,则该页面正在更改,因此不是一个合格的合并候选对象。由于这两棵树的数据结构为红黑树,因此向这个树中***和删除的时间复杂度均为O(logn)。
KSM使用进程处理一个单一的页面时,第一步是检查是否能够在稳定树中发现该页面。一个memcmp(内存比较)操作将在该页面和相关节点的页面上执行。如果memcmp返回0,则页面相同,发现一个匹配值。反之,如果返回-1,则表示候选页面小于当前节点的页面如果返回1,则表示候选页面大于当前节点的页面。尽管比较4K的页面似乎是相当重量级的比较,但是在多数情况下,一旦发现差异,memcmp将提前结束。
本实施例所述的方法是基于原生KSM同质内存合并处理流程的扩展,结合原生KSM处理流程具体的操作方法可以从以下三个方面说明:
在本实施例所述的方法中添加了去重提示的内存页面***到非稳定树中。此后每次对内存页面有读写操作时都会将操作对象页面在非稳定树中搜索。同时,为了防止在非稳定树中的页面被修改,必须将其中的所有的页面标示为只读模式,当需要写入时,将该页面从非稳定树中摘除,然后写过之后再次***到非稳定树。
一、去重标识的获取:根据对KSM的介绍,扫面的范围是由***调用madvise指定的,在这里为了实现我们的功能,必须扩展这个***调用。由于被共享的内存页面大多来自于虚拟磁盘镜像,所以还需要修改虚拟文件***的读命令(read,readv)和写(write,writev)命令,让这些函数在调用的时候顺便在这些页面上加上相应的读写标记,这个标记就做为去重提示。不过,这里的添加读写标记的内存页面必须在***调用madvise中定义的。
二、去重标识的存储:由于计算机中的I/O往往具有促发性,因此基于I/O的去重标识也具有促发性。当I/O的速度大于KSM扫描的速率时,***可能无法保存大量的去重标识。根据大部分***中处理这种有序的信息往往采取一个无限的缓冲队列来保存,但是该方法在本***中不太实用,因为我们无法预测I/O的数量,同时,由于记录这些页面的标识是有一定时效性的,随着我们的处理过程,队列尾部的标识可能会因为老化(当一个内存页面被标识之后没有及时被处理,而此时该内存页面又被读或者写过,这该称该标识老化)而不在具有实际意义,此时在去处理这些标识不仅浪费时间,同时还可能延迟该标识之后标识的处理时间,进一步增加这些标识失效的可能性。这样做的直接后果就是可能使得最终不能找到任何的候选合并页面。
由于在***中,并不需要在一次扫描中找出所有可共享的同质内存页面,因此我们提出了一种新的标识存储方式:有限环形栈。这种方式需要很少的额外开销,并且基本上不需要维护。
在有限环形栈中,***处理这些标识时总是从top处取出,这就意味着每次处理的都是最近最新的去重标识内存页面,根据我们上述分析的,最近最新被压入栈中的内存页面往往是最可能被共享的,而对于那些栈底的标识的内存页面,由于时效性可能己经没有任何意义,所以处理到这些页面的时候,意味着***中没有新标识的内存页面,即时此时处理这些无用的标识也不会给***带来额外的压力。如果标识的内存页面数量过多,则只会将栈底那些无用的标识删除,根据我们前面的分析,***不需要再一次处理过程中找到所有的共享内存页面,同时这些标识可能已经没有意义了,通过这种方式可以有效且简单的达到我们的目的。由于这只是一个普通的有限环形栈,不需要额外的维护。
三、去重标识的处理:在这里需要特别的指出,虽然我们提出了基于I/0标识的去重机制,但是并不意味着我们不需要原来的去重机制。基于I/0访问标识的去重机制主要面向那些共享时间比较短且发生过I/0行为的那些内存页面,而对于那些基本上没有I/0行为的内存页面,这种方式就不能发现其共享机会。根据向内存页面中添加去重标识的机制,***需要对原有的KSM处理方式加以扩充,新的处理流程和原生的KSM处理流程类似。
将本机制与原生的KSM混合使用,当有限环形栈中有数据时,优先使用基于I/O去重标识的KSM去重方法,否则考虑原生KSM的方式。同时,该混合机制同样是周期性的扫描madvise注册的内存空间。
在该方法中我们首先检查被标示的内存页面是否已经包含在稳定树中,如果存在,将内存池中页表中的物理地址改成稳定树中的页面地址,然后释放原有的内存页面;如果不在稳定树中,首先计算这个内存页面的大小,并且在非稳定树中检查,如果存在于非稳定树中,将这两个页面合并,并将其中的一个***到稳定树中,如果在非稳定树中也找不到,则将该内存页面***到非稳定树中。
非稳定树的退化:在原生的KSM实现中,把那些频繁写入的内存页面排除在非稳定树中,这样做的好处是避免重复搜索这些页面,因为每次计算的哈希值不同,同样也不会被合并,只有那些在两次扫描过程中哈希值保持不变的页面才会被***到非稳定树中。但是在我们的实现过程中,当一个内存页面有去重标识时,就将该页面***到非稳定树中。
那些与虚拟DMA读写操作相关的内存页面通常被认为是客户操作***中高速缓存的一部分。对于运行在Guest os 中的应用程序而言,如果虚拟机内部的缓冲被填满,那么Host os中的非稳定树势必会退化。这是因为在这种情况下,即便没有得到Host os清空高速缓存的情况下,Guest os也会将这些源于虚拟磁盘镜像中的整个缓冲都删除,以重新构建新的缓冲空间。此时,非稳定树中的所有被标示的内存页面都会被修改,对于外界而言,该非稳定树将变得不可达。此外,当非稳定树树内部节点改变时,与之同一层的所有兄弟节点也不可达。这也是当Guest os将这些已经被修改过的页面写会虚拟磁盘之后,Host os唯一所能了解到的东西。KSM的非稳定树自动修复程序修复速度会因为每次完整扫描的内存页面数量增加而降低。如果扫描的频率保持稳定,那么一个页面会因为之前的释放而被多重标记。因此,为了应付非稳定树这种退化的问题,一种有效的解决方法就是将***到非稳定树中的页面标记为只读。这种情况下,当对非稳定树上的内存页面进行写操作的时候,该内存页面会因为发生写错误而从非稳定树中删除。
本发明还提供一种基于同质内存扫描的合并装置,包括:
内存页面存入模块,用于将内存页面存入动态内存池;
第一查找模块,用于查找动态内存池中的内存页面是否在稳定树中存在同质内存页面;
第二查找模块,用于查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面;
第一添加模块,用于将动态内存池中的内存页面添加到稳定树中;
第二添加模块,用于将动态内存池中的内存页面添加到非稳定树中。
请参考图3,图3为本发明实施例所提供的基于同质内存扫描的合并装置的结构示意图;本实施例中,基于同质内存扫描的合并装置,包括:
内存页面存入模块301,用于将内存页面存入动态内存池;
第一查找模块302,用于查找动态内存池中的内存页面是否在稳定树中存在同质内存页面;
第二查找模块303,用于查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面;
第一添加模块304,用于将动态内存池中的内存页面添加到稳定树中;
第二添加模块305,用于将动态内存池中的内存页面添加到非稳定树中;
动态内存池创建模块306,用于创建动态内存池。
去重标识添加模块307,用于为发生读写操作的内存页面添加去重标识。
哈希计算模块308,用于计算动态内存池中的内存页面的哈希值;
内存页面属性更改模块309,用于将添加到非稳定树中的内存页面标记为只读。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种高密服务器硬盘背板进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于同质内存扫描的合并方法,其特征在于,包括: 将内存页面存入动态内存池; 查找动态内存池中的内存页面是否在稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则进行下一步; 查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面,若是,则将动态内存池中的内存页面添加到稳定树中;若否,则将动态内存池中的内存页面添加到非稳定树中。
2.根据权利要求1所述的基于同质内存扫描的合并方法,其特征在于,将内存页面存入动态内存池之前,还包括: 创建动态内存池。
3.根据权利要求1所述的基于同质内存扫描的合并方法,其特征在于,将内存页面存入动态内存池,包括: 为发生读写操作的内存页面添加去重标识; 将添加了去重标识的内存页面存入动态内存池。
4.根据权利要求3所述的基于同质内存扫描的合并方法,其特征在于,将添加了去重标识的内存页面存入动态内存池,包括: 将添加了去重标识的内存页面存入有限环形栈,有限环形栈最上层放置最新存入的内存页面。
5.根据权利要求1所述的基于同质内存扫描的合并方法,其特征在于,将动态内存池中的内存页面添加到非稳定树中,包括: 计算动态内存池中的内存页面的哈希值; 将动态内存池中的内存页面添加到非稳定树。
6.根据权利要求1所述的基于同质内存扫描的合并方法,其特征在于,将动态内存池中的内存页面添加到非稳定树中之后,还包括: 将添加到非稳定树中的内存页面标记为只读。
7.一种基于同质内存扫描的合并装置,其特征在于,包括: 内存页面存入模块,用于将内存页面存入动态内存池; 第一查找模块,用于查找动态内存池中的内存页面是否在稳定树中存在同质内存页面; 第二查找模块,用于查找动态内存池中的内存页面是否在非稳定树中存在同质内存页面; 第一添加模块,用于将动态内存池中的内存页面添加到稳定树中; 第二添加模块,用于将动态内存池中的内存页面添加到非稳定树中。
8.根据权利要求7所述的基于同质内存扫描的合并装置,其特征在于,还包括: 动态内存池创建模块,用于创建动态内存池。
9.根据权利要求7所述的基于同质内存扫描的合并装置,其特征在于,还包括: 去重标识添加模块,用于为发生读写操作的内存页面添加去重标识。
10.根据权利要求7所述的基于同质内存扫描的合并装置,其特征在于,还包括: 哈希计算模块,用于计算动态内存池中的内存页面的哈希值; 优选地,还包括: 内存页面属性更改模块,用于将添加到非稳定树中的内存页面标记为只读。
CN201710105084.9A 2017-02-25 2017-02-25 基于同质内存扫描的合并方法及装置 Pending CN106874119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710105084.9A CN106874119A (zh) 2017-02-25 2017-02-25 基于同质内存扫描的合并方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710105084.9A CN106874119A (zh) 2017-02-25 2017-02-25 基于同质内存扫描的合并方法及装置

Publications (1)

Publication Number Publication Date
CN106874119A true CN106874119A (zh) 2017-06-20

Family

ID=59167727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710105084.9A Pending CN106874119A (zh) 2017-02-25 2017-02-25 基于同质内存扫描的合并方法及装置

Country Status (1)

Country Link
CN (1) CN106874119A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176958A (zh) * 2021-04-29 2021-07-27 深信服科技股份有限公司 一种内存共享方法、装置、设备及存储介质
CN114756382A (zh) * 2022-06-14 2022-07-15 中孚安全技术有限公司 一种内存页面合并的优化方法、***及服务器
WO2022247821A1 (zh) * 2021-05-26 2022-12-01 华为技术有限公司 一种内存页处理方法及其相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246436A1 (en) * 2011-03-21 2012-09-27 Microsoft Corporation Combining memory pages having identical content
CN103019884A (zh) * 2012-11-21 2013-04-03 北京航空航天大学 基于虚拟机快照的内存页去重方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246436A1 (en) * 2011-03-21 2012-09-27 Microsoft Corporation Combining memory pages having identical content
CN103019884A (zh) * 2012-11-21 2013-04-03 北京航空航天大学 基于虚拟机快照的内存页去重方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邓文洋: ""虚拟化环境下的多机内存优化技术研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176958A (zh) * 2021-04-29 2021-07-27 深信服科技股份有限公司 一种内存共享方法、装置、设备及存储介质
CN113176958B (zh) * 2021-04-29 2024-02-23 深信服科技股份有限公司 一种内存共享方法、装置、设备及存储介质
WO2022247821A1 (zh) * 2021-05-26 2022-12-01 华为技术有限公司 一种内存页处理方法及其相关设备
CN114756382A (zh) * 2022-06-14 2022-07-15 中孚安全技术有限公司 一种内存页面合并的优化方法、***及服务器

Similar Documents

Publication Publication Date Title
JP5996088B2 (ja) 暗号ハッシュ・データベース
US9501421B1 (en) Memory sharing and page deduplication using indirect lines
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
US20170286003A1 (en) Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US9436614B2 (en) Application-directed memory de-duplication
US20150234669A1 (en) Memory resource sharing among multiple compute nodes
CN109697016B (zh) 用于改进容器的存储性能的方法和装置
US20100312955A1 (en) Memory system and method of managing the same
US9069477B1 (en) Reuse of dynamically allocated memory
KR20100081880A (ko) 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
KR20130070501A (ko) 가상 시스템에서 메모리 중복 제거를 위한 기술
CN110888837B (zh) 对象存储小文件归并方法及装置
CN106599091B (zh) 基于键值存储的rdf图结构存储和索引方法
WO2015043376A1 (zh) 一种页的访问方法和页的访问装置、服务器
US10515055B2 (en) Mapping logical identifiers using multiple identifier spaces
US9304946B2 (en) Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN106874119A (zh) 基于同质内存扫描的合并方法及装置
CN102662799B (zh) 数据备份的方法、服务器及热备份***
CN107817945A (zh) 一种混合内存结构的数据读取方法和***
US20190294590A1 (en) Region-integrated data deduplication implementing a multi-lifetime duplicate finder
CN107632786B (zh) 一种数据重删的管理方法及装置
CN104035822A (zh) 一种低开销的高效内存去冗余方法及***
US7562204B1 (en) Identifying and relocating relocatable kernel memory allocations in kernel non-relocatable memory

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170620

RJ01 Rejection of invention patent application after publication