[发明专利]集群内存自适应管理方法、服务器集群系统有效
申请号: | 201310113105.3 | 申请日: | 2013-04-02 |
公开(公告)号: | CN103226520A | 公开(公告)日: | 2013-07-31 |
发明(设计)人: | 王勇;王树鹏;张永铮;吴广君;李斌斌;安丰春;王曦 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 集群 内存 自适应 管理 方法 服务器 系统 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种集群内存自适应管理方法和服务器集群。
背景技术
随着信息化程度的不断提高,特别是Web2.0等交互式、个性化应用的出现,充斥于互联网中的数据量呈爆炸式增长,在此形势之下,有关海量数据存储的研究随之发展迅猛。应用系统业务访问量与日俱增,众多频繁的数据访问,对应用服务器和数据库要求越来越高,如何合理提高数据访问效率且对服务器不产生过多压力,成为提升系统性能的关键。在各类数据库产品和缓存系统中,内存的高效利用和内存管理无疑是备受关注的焦点。内存的合理利用能够大幅减少硬盘I/O,从而提升系统性能。当前市面上有多种比较流行的基于内存的数据库或缓存系统,如国外开源的Memcached、Redis,也有国内的诸如Tair等的非持久化存储层。这类产品在开发时均在内存的利用和优化上下了不少的功夫,但是也仍然存在一些不足之处,如内存利用率不高、内存删除策略不是很优化,内存管理自治度不高等。
如人们所知,频繁地使用malloc和free来进行内存操作,将产生大量的内存碎片,从而会加重系统内存管理的负担,也影响程序运行速度,这对于缓存系统等对内存性能要求极高的应用场景来说几乎是不能容忍的。因此,当下的一些数据库和缓存系统产品提供了预先分配内存的方案。其基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块儿,尺寸相同的块儿分成组,且各个组的尺寸大小按照一个可以设置其值的增长因子,形成等比关系,这样就会有不同长度的块儿组。在数据进行缓存时,系统会根据收到的数据大小,从空闲的块儿列表中选择尺寸最接近的组中的块儿来存。由于使用的是预分配方式,因此系统不会释放已分配的内存,而是根据LRU(Least Recently Used,最近最少使用)算法进行过期淘汰和重复利用。一些系统将增长因子设置成为2,即后一个组的块大小是前面一个组的两倍。但这样的后果是,块大小增长会很快,后面的块间差距会很大,在数据缓存时,会因无法有限利用分配的内存而造成极大的字节浪费。也有的增长因子可以设置其值,如设为1.25。更改后上面提到的问题有很大改善。
现在的多数采用内存预分配策略的数据产品中,关于内存的管理,多采用的是LRU,这个从缓存角度看十分理想的模型,实际上在很多应用场景会造成内存利用率低和数据丢失等比较大的麻烦。如根据Memcached的预分配策略,新的数据(value)过来存放的地址是由值的大小决定的,即放到块儿大小与其最接近的一个组中。若某个组中的可用块儿为0时,系统就会根据LRU的规则清掉该组中的部分块儿来保存新到了的大小最接近的数据,而不会放到其他的组中,因为其他组中块儿的大小远大于value的大小。也就是说,这种LRU是局部的,而不是全局的,这样就会导致内存利用率低。可以通过预估数据大小和适当调整内存页大小和增长因子来缓解这种情况,但这种方法并不普适。因此像这类产品,它缺少一种内存自适应调整的机制来缓解这种情况。现在有部分其他产品,在此基础上做了一些改进。如Memcached-tool,它允许手动的执行命令来把块儿大小较大的组中的一个内存页移动到较小的组中,来进行内存的调整。但其仍存在很大的弊端,首先是每次移动只能移动一个内存页,并且由于组之间是以增长因子为乘性递增关系的,只有当增长因子为整数时可以达到不产生碎片的拆分,但又会导致组级别增长过快。因此存在诸多限制,且内存管理的自治性较差。
发明内容
本发明所要解决的技术问题是提供一种集群内存自适应管理方法、服务器集群系统,减少内存碎片产生,提高内存利用率。
为解决上述技术问题,本发明提出了一种集群内存自适应管理方法,包括:
对于数据服务器集群中的每个数据服务器,在使用前对该数据服务器按照变步长加性增长方式进行内存预分配,将内存分割为设定数目的片组,每个片组的总容量相等,每个片组包含容量相等的多个分片。
进一步地,上述集群内存自适应管理方法还可具有以下特点,还包括:
设置元数据管理服务器,监管数据服务器集群中各个数据服务器的内存状况,并根据所述内存状态对所述数据服务器集群中的内存资源进行统一调度。
进一步地,上述集群内存自适应管理方法还可具有以下特点,还包括:
当片组内的可用分片比例下降至设定阈值时,对该片组的关系片组的分片进行拆分或拼接,将拆分或拼接后的分片作为所述片组的分片。
进一步地,上述集群内存自适应管理方法还可具有以下特点,所述片组的级别随片组内分片的容量递增而递增,每个片组中分片的容量与该片组的低一级片组中分片的容量为变步长递增关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310113105.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种固态硬盘缓冲区的数据块置换方法及装置
- 下一篇:固态硬盘的驱动方法及装置