本发明专利技术公开了一种内存空间去冗余方法及系统,本发明专利技术涉及计算机内存管理,属于操作系统领域,特别涉及一种内存去冗余方法及系统。该方法包括对该内存空间中的页面进行采样,其中设定采样系数,通过该采样系数确定采样范围,并根据该采样范围获取采样页面;查找该内存空间中页面内容与该采样页面的内容相同的页面,作为冗余页面,并将该冗余页面与该采样页面合并,同时记录该冗余页面的信息;删除该冗余页面中的内容,以完成该内存空间去冗余。本发明专利技术可以动态选择扫描区域,不但适用于大量重复页面场景,而且还适用于少量内存冗余场景,同时能够减少系统开销。
【技术实现步骤摘要】
一种低开销的高效内存去冗余方法及系统
本专利技术涉及计算机内存管理,属于操作系统领域,特别涉及一种低开销的高效内存去冗余方法及系统。
技术介绍
内存是计算机最为重要的资源之一。为了高效地利用有限的内存资源,现代操作系统使用了很多技术以节省内存的使用。近年来,Linux操作系统中出现了一种新的节省内存使用的技术,即内存去冗余技术,即KSM(Kernel Samepage Merging,内存合并)技术。KSM技术通过扫描虚拟内存区域,找到相同的物理内存页面,并把它们合并,该技术使得运行虚拟机的主机操作系统中使用中的内存明显下降,内存使用效率明显提高,从而让同等物理配置的Linux主机在使用KSM技术后能运行更多的虚拟机。在KSM中,页面通过两个“红-黑”树管理,其中一个“红-黑”树是临时的,第一个树称为不稳定树,用于存储还不稳定的新页面。换句话说,作为合并候选对象的页面(在一段时间内页面内容没有变化)存储在这个不稳定树中,不稳定树中的页面不是写保护的。第二个树称为稳定树,存储那些已经发现是稳定的且通过KSM合并的页面,为确定一个页面是否是稳定页面,KSM使用一个32位校验和,即当一个页面被扫描时,它的校验和被计算且与该页面存储在一起,在一次后续扫描中,如果新计算的校验和等于此前计算的校验和,则该页面为稳定页面。使用KSM进程处理一个单一的候选页面时,第一步检查是否能够在稳定树中发现与该候选页面内容相同的页面,搜索该稳定树,一个memcmp (内存比较)操作将在该候选页面和稳定树中相关节点的页面上执行,如果memcmp返回0,则页面内容相同,发现一个匹配值,反之,如果memcmp返回-1,则表示候选页面小于当前节点的页面,如果返回I,则表示候选页面大于当前节点的页面。如果与该候选页面内容相同的页面位于稳定树中,则该候选页面被合并,该候选页面被释放,如果在稳定树中没有发现与该候选页面内容相同的页面,则搜索不稳定树。当搜索不稳定树时,重新计算该候选页面上的校验和,如果该值与原始校验和不同,则本次扫描的后续搜索将抛弃该候选页面,如果校验和没有更改,则会搜索不稳定树以寻找与该候选页面内容相同的页面,如果没有在不稳定树中发现与该候选页面内容相同的页面,则在不稳定树中为该候选页面添加一个新节点,但是如果在不稳定树中发现了与该候选页面内容相同的页面,则合并该候选页面,然后将该节点迁移到稳定树中,保存稳定树,但不稳定树则被删除并在下一次扫描时重新构建。近年来研究较多的是基于合并相同内存页面的内存去冗余技术,即通过查找系统中的相同内存页面,把这些页面合并从而节省系统内存空间,但Linux并不是使用页面共享来改进内存效率的惟一系统管理程序,但是它的独特之处在于将其实现为一个操作系统特性。VMware ESX(在通用环境下分区和整合系统的虚拟主机软件)服务器系统管理程序将这个特性命名为Transparent Page Sharing (TPS,透明页共享),而XEN(开放源代码虚拟机监视器)将其称为Memory CoW(内存写时复制,Copy on Write)。不管采用哪种名称和实现方式,这个特性都提供了更好的内存利用率,从而允许操作系统(KVM(开源的系统虚拟化模块)的系统管理程序)过量使用内存,支持更多的应用程序或VM(虚拟机)。VMware公司较早进行了虚拟机内存去冗余技术的研究工作,VMware公司(威睿公司)的Hypervisor (虚拟机管理器)使用的基于合并相同内容内存页面的去冗余技术,以减少虚拟机之间的内存冗余。此方案仅适用于VMware虚拟化场景,在多台虚拟机上存在大量相同内存时才有显著去冗余的效果,否则收效甚微。XEN是一个非常流行的虚拟机软件,广泛应用在云计算、VPS(Virtual PrivateServer,虚拟专用服务器)等领域,与KVM类似,XEN也是面向内存的重复数据删除技术的一个极好的应用场景,XEN Dedup (—个去冗余系统)能够很好的消除XEN上的冗余内存,但是XEN Dedup并不是基于页面内容冗余检查,同时XEN Dedup的扫描范围不能由用户指定,一些活跃页面完全没有合并的意义,其运用场景只是局限于XEN的虚拟化场景。KSM也存在自身的问题与不足,大量文献和实验数据表明其在合并虚拟机之间冗余内存的性能强大,而在非虚拟化场景下,一般应用程序内部或多个应用程序间并没有大量的冗余内存,在冗余内存非常少的场景下,对这些程序应用KSM技术非但不能降低内存使用,反而因为运行KSM本身所需要内存而增加了内存开销。专利技术专利“一种内存冗余消除方法”该专利技术涉及一种内存冗余消除方法,包括:步骤1,将计算机内存划分成不同的区域块并选择;步骤2,计算当前选择区域块的哈希值;步骤3,查找是否有其他区域块的哈希值与步骤2中区域块的哈希值相同;步骤4,如果是,判定两个区域块为高概率相同,转至步骤6 ;步骤5,将此区域块以及哈希值加入查找数据结构,转至步骤10;步骤6,如果步骤2中采用加密哈希函数,并且哈希函数计算的是区域块的全部内容,则转至步骤8 ;步骤7,比较这两个区域块的内容是否完全相同;步骤8,将其中一个区域块的索引替换成另一个区域块的索引;步骤9,释放被替换索引的区域块;步骤10,从剩余区域块中选择一区域块,并返回步骤2。但是该专利技术与本专利技术的实现方式不同,其中“一种内存冗余消除方法”通过哈希值匹配的方式确定冗余页面,对于内容相同的页面仅保留一份副本,该专利技术扫面全部选择区域页面,且不考虑页面的稳定性,只要页面内容相同即进行冗余消除,对于频繁写入的页面,容易造成消除后需要立刻恢复的不足,而本专利技术“一种低开销的高效内存去冗余方法及系统”设计新的页面扫描算法,多次扫描全部或部分选定内存页面以发现页面内容完全相同的冗余页面;根据每次扫描的校验和,利用采样扫描实现对发现的冗余页面的合并;用两棵红黑树管理合并后具有不同稳定度的页面,从而在消除冗余内存页面达到节省内存的同时,提高内存使用效率的目标。专利技术专利“一种面向内存冗余的虚拟机迁移装置及其方法”,该专利技术公开一种面向内存冗余的虚拟机迁移装置和方法,包括:利用数据中心整合带有内存数据冗余虚拟机的特性,在虚拟机进行正式迁移前,扫描获得需迁移虚拟机内存描述信息;将内存描述信息与目标节点内存页面进行对比,得到需要迁移的部分内存页面列表;根据得到的内存页面列表取消冗余内存的传输,同时利用数据压缩技术减少迁移是的数据传输量。因而,能够在以节省数据中心内存资源为目的的虚拟机迁移过程中尽量降低网络的负载,提高数据中心整体的资源利用率,但是该专利技术与本专利技术实现方式不同,其中“一种面向内存冗余的虚拟机迁移装置及其方法”是在虚拟机迁移场景下通过扫描需迁移虚拟机内存描述信息判断与目标节点内存是否存在冗余,从而在虚拟机迁移过程中减少冗余内存页面的传输,而本专利技术是通过扫描服务器内存,找出相同页面,对于冗余页面仅保存一个副本,从而减少系统内存占用,可应用于非虚拟化或虚拟化场景,与虚拟机迁移无关。
技术实现思路
针对现有技术不足,本专利技术提出了一种低开销的高效内存去冗余方法及系统,以解决以上技术问题。本专利技术提供一种内存空间去冗余方法,其特征在于,包括:步骤SI,对该内存空间中的页面本文档来自技高网...
【技术保护点】
一种内存空间去冗余方法,其特征在于,包括:步骤S1,对该内存空间中的页面进行采样,其中设定采样系数,通过该采样系数确定采样范围,并根据该采样范围获取采样页面;步骤S2,查找该内存空间中页面内容与该采样页面的内容相同的页面,作为冗余页面,并将该冗余页面与该采样页面合并,同时记录该冗余页面的信息;步骤S3,删除该冗余页面中的内容,以完成该内存空间去冗余。
【技术特征摘要】
1.一种内存空间去冗余方法,其特征在于,包括: 步骤SI,对该内存空间中的页面进行采样,其中设定采样系数,通过该采样系数确定采样范围,并根据该采样范围获取采样页面; 步骤S2,查找该内存空间中页面内容与该采样页面的内容相同的页面,作为冗余页面,并将该冗余页面与该采样页面合并,同时记录该冗余页面的信息; 步骤S3,删除该冗余页面中的内容,以完成该内存空间去冗余。2.如权利要求1所述的低开销的高效内存空间去冗余方法,其特征在于,步骤SI的具体步骤包括: 步骤Sll,根据该采样系数获取采样的页面数m ; 步骤S12,将该内存空间平均分成m个区间; 步骤S13,在每个该区间中随机抽取多个页面组成该采样页面。3.如权利要求1所述的低开销的高效内存空间去冗余方法,其特征在于,该步骤S2还包括:根据该冗余页面的标识符查找稳定树,若该冗余页面的标识符在该稳定树内,则将该冗余页面与该采样页面合并,并将该冗余页面的标识符加入到该稳定树,该稳定树用于存储该内存空间中具有写保护的页面的标识符。4.如权利要求1所述的低开销的高效内存空间去冗余方法,其特征在于,还包括:将该冗余页面的该信息反馈给用户。5.如权利要求1或2所述的低开销的高效内存空间去冗余方法,其特征在于,若该采样系数减小,则该页面...
【专利技术属性】
技术研发人员:宋莹,高俊杰,孙毓忠,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。