内存管理方法和装置以及计算机可读存储介质制造方法及图纸

技术编号:19903148 阅读:22 留言:0更新日期:2018-12-26 02:49
本发明专利技术公开了一种内存管理方法和装置以及计算机可读存储介质,涉及计算机技术领域。内存管理方法包括:分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表的统计信息,其中,内存数据LRU链表用于管理存储文件数据的内存页,内存元数据LRU链表用于管理存储文件系统元数据的内存页;响应于内存回收被触发,根据读取的统计信息确定当前的内存状态;根据当前的内存状态进行内存回收。从而,可以使得内存中的文件数据、文件系统元数据可以清楚地被区分和管理,从而提高了内存命中率,提高了文件系统读取元数据和目录项时的效率,减少了磁盘寻道时间,提高了文件系统的性能。

【技术实现步骤摘要】
内存管理方法和装置以及计算机可读存储介质
本专利技术涉及计算机
,特别涉及一种内存管理方法和装置以及计算机可读存储介质。
技术介绍
操作系统Linux为了提高文件系统的访问速度,利用随机存取存储器(RandomAccessMemory,简称:RAM)实现了页高速缓冲存储器(PageCache)功能,以将文件的元数据和数据存储在内存中。通常,用于存储元数据和目录项的内存为Buffer(缓冲),用于存储数据的内存为Cache(缓存)。PageCache所使用的内存被计入可用内存中,因此在内存不足时可以回收部分PageCache使用的内存。当回收的PageCache被再次访问时,文件系统又需要从磁盘重新加载。
技术实现思路
专利技术人对相关技术进行分析后发现,当前主流的机械硬盘容量已经达到10TB,一台服务器会配置多个机械硬盘。以12盘位服务器为例,基于如此容量的磁盘创建第四代扩展文件系统(Fourthextendedfilesystem,简称:Ext4),预期使用80%的磁盘空间,即文件数据占用的磁盘空间约为100TB,文件的元数据及目录项所占用的磁盘空间约达到百GB。而RAM的空间一般为几十到几百GB。在大规模分布式存储系统中,文件访问的热点不明显,大部分时候呈现随机访问的状态,PageCache的命中率非常不乐观。因此,现有的内存管理方法的内存命中率较低。本专利技术实施例所要解决的一个技术问题是:如何提高内存命中率。根据本专利技术一些实施例的第一个方面,提供一种内存管理方法,包括:分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表的统计信息,其中,内存数据LRU链表用于管理存储文件数据的内存页,内存元数据LRU链表用于管理存储文件系统元数据的内存页;响应于内存回收被触发,根据读取的统计信息确定当前的内存状态;根据当前的内存状态进行内存回收。在一些实施例中,内存数据LRU链表包括不活跃数据链表和活跃数据链表,内存元数据LRU链表包括不活跃元数据链表和活跃元数据链表。在一些实施例中,根据当前的内存状态进行内存回收包括:响应于数据LRU链表中的不活跃数据链表管理的内存页数量不多于活跃数据链表管理的内存页数量,按照预设比例分别回收内存中的文件数据和文件系统元数据。在一些实施例中,根据当前的内存状态进行内存回收包括:响应于数据LRU链表中的不活跃数据链表管理的内存页数量多于活跃数据链表管理的内存页数量,对内存中的文件数据进行回收。在一些实施例中,根据当前的内存状态进行内存回收包括:响应于文件系统元数据所占用的内存超过预设比例,对内存中的文件系统元数据进行回收。在一些实施例中,根据读取的统计信息确定当前的内存状态包括:响应于文件系统元数据所占用的内存不超过预设比例,判断数据LRU链表中的不活跃数据链表管理的内存页数量是否多于活跃数据链表管理的内存页数量。根据本专利技术一些实施例的第二个方面,提供一种内存管理装置,包括:存储信息读取模块,被配置为分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表中的统计信息,其中,内存数据LRU链表用于管理存储文件数据的内存页,内存元数据LRU链表用于管理存储文件系统元数据的内存页;内存状态确定模块,被配置为响应于内存回收被触发,根据读取的统计信息确定当前的内存状态;管理模块,被配置为根据当前的内存状态进行内存回收。在一些实施例中,内存数据LRU链表包括不活跃数据链表和活跃数据链表,内存元数据LRU链表包括不活跃元数据链表和活跃元数据链表。在一些实施例中,管理模块进一步被配置为响应于数据LRU链表中的不活跃数据链表管理的内存页数量不多于活跃数据链表管理的内存页数量,按照预设比例分别回收内存中的文件数据和文件系统元数据。在一些实施例中,管理模块进一步被配置为响应于数据LRU链表中的不活跃数据链表管理的内存页数量多于活跃数据链表管理的内存页数量,对内存中的文件数据进行回收。在一些实施例中,管理模块进一步被配置为响应于文件系统元数据所占用的内存超过预设比例,对内存中的文件系统元数据进行回收。在一些实施例中,内存状态确定模块进一步被配置为响应于文件系统元数据所占用的内存不超过预设比例,判断数据LRU链表中的不活跃数据链表管理的内存页数量是否多于活跃数据链表管理的内存页数量。根据本专利技术一些实施例的第三个方面,提供一种内存管理装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种内存管理方法。根据本专利技术一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意一种内存管理方法。上述专利技术中的一些实施例具有如下优点或有益效果:本专利技术的实施例可以将文件数据和文件系统元数据分别进行缓存和管理,并且在进行内存回收时根据当前的内存状态进行内存管理,从而可以使得内存中的文件数据、文件系统元数据可以清楚地被区分和管理,从而提高了内存命中率,提高了文件系统读取元数据和目录项时的效率,减少了磁盘寻道时间,提高了文件系统的性能。通过以下参照附图对本专利技术的示例性实施例的详细描述,本专利技术的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为根据本专利技术一些实施例的内存管理方法的流程示意图。图2A为根据本专利技术另一些实施例的内存管理方法的流程示意图。图2B为根据本专利技术又一些实施例的内存管理方法的流程示意图。图3为根据本专利技术再一些实施例的内存管理方法的流程示意图。图4为根据本专利技术再一些实施例的内存管理方法的流程示意图。图5为根据本专利技术一些实施例的内存管理装置的结构示意图。图6为根据本专利技术另一些实施例的内存管理装置的结构示意图。图7为根据本专利技术又一些实施例的内存管理装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本专利技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。专利技术人对现有技术进行分析后发现,在现有技术中,本文档来自技高网...

【技术保护点】
1.一种内存管理方法,包括:分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表的统计信息,其中,所述内存数据LRU链表用于管理存储文件数据的内存页,所述内存元数据LRU链表用于管理存储文件系统元数据的内存页;响应于内存回收被触发,根据读取的统计信息确定当前的内存状态;根据当前的内存状态进行内存回收。

【技术特征摘要】
1.一种内存管理方法,包括:分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表的统计信息,其中,所述内存数据LRU链表用于管理存储文件数据的内存页,所述内存元数据LRU链表用于管理存储文件系统元数据的内存页;响应于内存回收被触发,根据读取的统计信息确定当前的内存状态;根据当前的内存状态进行内存回收。2.根据权利要求1所述的内存管理方法,其中,所述内存数据LRU链表包括不活跃数据链表和活跃数据链表,所述内存元数据LRU链表包括不活跃元数据链表和活跃元数据链表。3.根据权利要求2所述的内存管理方法,其中,所述根据当前的内存状态进行内存回收包括:响应于数据LRU链表中的不活跃数据链表管理的内存页数量不多于活跃数据链表管理的内存页数量,按照预设比例分别回收内存中的文件数据和文件系统元数据。4.根据权利要求2所述的内存管理方法,其中,所述根据当前的内存状态进行内存回收包括:响应于数据LRU链表中的不活跃数据链表管理的内存页数量多于活跃数据链表管理的内存页数量,对内存中的文件数据进行回收。5.根据权利要求1所述的内存管理方法,其中,所述根据当前的内存状态进行内存回收包括:响应于文件系统元数据所占用的内存超过预设比例,对内存中的文件系统元数据进行回收。6.根据权利要求1~5中任一项所述的内存管理方法,其中,所述根据读取的统计信息确定当前的内存状态包括:响应于文件系统元数据所占用的内存不超过所述预设比例,判断数据LRU链表中的不活跃数据链表管理的内存页数量是否多于活跃数据链表管理的内存页数量。7.一种内存管理装置,包括:存储信息读取模块,被配置为分别读取内存数据最近最少使用LRU链表和内存元数据LRU链表的统计信息,其中,所述内存数据LRU链...

【专利技术属性】
技术研发人员:刘洪通吴维伟王志远毛宝龙
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1