System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于RAID的内存池动态调配方法、装置制造方法及图纸_技高网

一种基于RAID的内存池动态调配方法、装置制造方法及图纸

技术编号:40354106 阅读:9 留言:0更新日期:2024-02-09 14:39
本发明专利技术涉及存储设备内存优化技术领域,公开了一种基于RAID的内存池动态调配方法、装置,该方法通过获取第一内存池的第一空闲值,判断是否需要调入内存资源,并通过获取树状结构中第二内存池的第二空闲值与内存使用情况,确定第一可调出值,从而向第一内存池调入内存资源。这一过程中,由于第二内存池为树状结构中的任一节点,因此通过确定第一空闲值、内存使用情况、第二空闲值、第一可调出值,可以确定整体内存池中各节点的资源使用及调配情况,并在第一内存池需要调入内存资源时,通过确定的第一可调出值,利用调配规则,向第一内存池调入内存资源,从而避免内存池中闲置与等待分配共存的情况产生,减少向系统申请资源的频率,从而提升整体性能。

【技术实现步骤摘要】

本专利技术涉及存储设备内存优化,具体涉及一种基于raid的内存池动态调配方法、装置。


技术介绍

1、在云计算数据中心中,数据存储的性能是用户关心的核心问题。而存储系统的内存使用能够很大程度上影响存储系统的性能。操作系统使用一种叫做堆的线性区来满足进程的动态内存申请。并提供了brk()、mmap()等系统调用来进行堆的操作。同样编程语言提供了封装了系统调用的函数来提供内存动态申请。如c语言使用malloc/free来动态分配释放内存,c++使用new/delete来动态分配释放内存。

2、由于系统的内存分配释放接口非常耗时低效,并且长时间运行后容易造成内存碎片问题。因此应用软件通常使用内存池技术来优化内存的使用管理,内存池可以通过内存分配系统调用预先一次性申请适当大小的内存,此后程序的内存分配和释放直接使用内存池来进行。这大大提高了内存请求的效率。但是内存池的内存资源单位通常是固定的或者按照某种规律分布。不同的内存请求通常需要使用不同的内存池。单一的内存池无法满足复杂软件尤其是存储系统这样的大规模软件的需求。系统中存在各种各样的内存池,这造成了内存池的管理问题。有的内存池资源比规划的多,有的内存池资源不够用。有的内存池只被某个模块使用,有的内存池需要被多个模块使用。在大量内存池使用时,内存资源如何分配,内存资源如何协调,内存池如何管理,那个内存池会成为软件的瓶颈。这些问题成为存储系统的核心问题。

3、在相关技术中,为解决内存池的管理问题,通常在软件启动时,根据软件使用的内存量申请一大块内存建立根内存池,然后建立根据软件的各个模块建立多个模块内存池,并将根内存池的内存分配给各模块内存池,然后模块再根据各个具体的应用场景再建立具体的内存池,并将模块内存池的内存分配给该内存池,从而形成如图1所示的树状结构内存池。但是,由于具体的场景不同各个模块的各个内存池的内存需求量并不相同,这就导致有些内存池内存资源非常紧张,常常因为内存耗尽而等待内存分配导致性能严重下降,而有些内存池则内存过于空闲。对于内存耗尽的内存池,需要频繁的向系统申请内存资源,从而由于频繁的访问造成系统资源竞争,导致性能下降严重。


技术实现思路

1、有鉴于此,本专利技术提供了一种基于raid的内存池动态调配方法、装置,以解决由于内存池管理混乱,导致内存资源闲置与等待分配共存的技术问题。

2、第一方面,本专利技术提供了一种基于raid的内存池动态调配方法,应用于每个内存池,多个内存池之间存在树状结构,方法包括:响应于内存使用请求,获取与内存使用请求对应的第一内存池的第一空闲值;基于第一空闲值,判断是否需要调入内存资源;在需要调入内存资源时,获取树状结构中第二内存池的内存使用情况与第二空闲值;基于内存使用情况,确定第二内存池的内存预留值;基于内存预留值与第二空闲值,确定第二内存池的第一可调出值;基于第一可调出值,通过调配规则,向第一内存池调入内存资源。

3、结合第一方面,在第一方面的一种可能的实现方式中,基于第一空闲值,判断是否需要调入内存资源,包括:基于第一空闲值与内存使用请求的申请资源值,判断是否需要调入内存资源;在第一空闲值不能满足申请资源值时,第一内存需要调入内存资源,并以第一资源数量作为请求调配资源值。

4、结合第一方面,在第一方面的一种可能的实现方式中,基于第一空闲值,判断是否需要调入内存资源,包括:基于第一空闲值与内存使用请求的申请资源值,判断是否需要调入内存资源;在第一空闲值满足申请资源值时,计算第一空闲值与申请资源值的差值;在差值不能满足预设内存比例时,第一内存需要调入内存资源,并以第二资源数量作为请求调配资源值。

5、结合第一方面,在第一方面的一种可能的实现方式中,基于第一空闲值,判断是否需要调入内存资源,包括:基于第一空闲值与内存使用请求的申请资源值,判断是否需要调入内存资源;在第一空闲值满足申请资源值时,计算第一空闲值与申请资源值的差值;在差值满足第一预设内存比例时,第一内存不需要调入内存资源。

6、结合第一方面,在第一方面的一种可能的实现方式中,在需要调入内存资源时,获取树状结构中第二内存池的内存使用情况与第二空闲值,包括:获取第二内存池的第二空闲值;基于第二空闲值,确定第二内存池的内存调配状态;在调配状态为可调配状态时,获取树状结构中第二内存池的内存使用情况。

7、结合第一方面,在第一方面的一种可能的实现方式中,基于第二空闲值,确定第二内存池的内存调配状态,包括计算第二空闲值与第二内存池的池总资源值的比例值;基于比例值与第二预设内存比例的对应关系,确定第二内存池的内存调配状态,其中,内存调配状态包括:可调配状态、需调入状态与无需调配状态。

8、结合第一方面,在第一方面的一种可能的实现方式中,在调配状态为可调配状态时,获取树状结构中第二内存池的内存使用情况,包括:在调配状态为可调配状态时,获取第二内存池在预设时间内的内存使用值;基于内存使用值,确定第二内存池的内存使用最大值与历史内存使用最大值;比较内存使用最大值与历史内存使用最大值,确定第二内存池的内存使用情况,其中,内存使用情况包括:内存使用增长状态与内存使用降低状态。

9、结合第一方面,在第一方面的一种可能的实现方式中,基于内存使用情况,确定第二内存池的内存预留值,包括:在内存使用情况为内存使用增长状态时,基于内存使用最大值与历史内存使用最大值的差值与预留系数,确定第二内存池的内存预留值; 在内存使用情况为内存使用降低状态时,清空第二内存池的内存预留值。

10、结合第一方面,在第一方面的一种可能的实现方式中,基于内存预留值与第二空闲值,确定第二内存池的第一可调出值,包括:基于第二空闲值与内存预留值的差值,确定第二内存池的第一可调出值。

11、结合第一方面,在第一方面的一种可能的实现方式中,基于第一可调出值,通过调配规则,向第一内存池调入内存资源,包括:在第二内存池为第一内存池的同级节点,且第一可调出值满足第一内存的请求调配资源值时,以第一可调出值响应请求调配资源值;在第一可调出值不满足请求调配资源值时,计算树状结构中第一内存池的同级节点的可调出值的总和,确定第二可调出值;基于第二可调出值响应请求调配资源值。

12、结合第一方面,在第一方面的一种可能的实现方式中,基于可调出值,通过调配规则,向第一内存池调入内存资源,包括:在第二可调出值不满足请求调配资源值时,获取树状结构中第一内存池的父节点的第三可调出值;基于第三可调出值响应请求调配资源值;在第三可调出值不满足请求调配资源值时,计算父节点的同级节点的可调出值的总和,确定第四可调出值;基于第四可调出值响应请求调配资源值。

13、结合第一方面,在第一方面的一种可能的实现方式中,在第四可调出值不满足请求调配资源值时,获取树状结构中的根节点的第五可调出值;基于第五可调出值响应请求调配资源值;在第五可调出值不满足请求调配资源值时,由根节点申请额外资源值;基于额外资源值响应请求调配资源值。本文档来自技高网...

【技术保护点】

1.一种基于RAID的内存池动态调配方法,其特征在于,应用于每个内存池,多个所述内存池之间存在树状结构,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

3.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

4.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

5.根据权利要求1所述的方法,其特征在于,所述在需要调入内存资源时,获取所述树状结构中第二内存池的内存使用情况与第二空闲值,包括:

6.根据权利要求5所述的方法,其特征在于,所述基于所述第二空闲值,确定所述第二内存池的内存调配状态,包括

7.根据权利要求5所述的方法,其特征在于,所述在所述调配状态为可调配状态时,获取所述树状结构中第二内存池的内存使用情况,包括:

8.根据权利要求7所述的方法,其特征在于,所述基于所述内存使用情况,确定第二内存池的内存预留值,包括:

9.根据权利要求1所述的方法,其特征在于,所述基于所述内存预留值与所述第二空闲值,确定所述第二内存池的第一可调出值,包括:基于所述第二空闲值与所述内存预留值的差值,确定第二内存池的第一可调出值。

10.根据权利要求1所述的方法,其特征在于,所述基于所述第一可调出值,通过调配规则,向所述第一内存池调入内存资源,包括:

11.根据权利要求10所述的方法,其特征在于,所述基于所述可调出值,通过调配规则,向所述第一内存池调入内存资源,包括:

12.根据权利要求11所述的方法,其特征在于,所述基于所述可调出值,通过调配规则,向所述第一内存池调入内存资源,包括:

13.一种基于RAID的内存池动态调配装置,其特征在于,应用于每个内存池,多个所述内存池之间存在树状结构,所述装置包括:

14.一种计算机设备,其特征在于,包括:

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至12中任一项所述的基于RAID的内存池动态调配方法。

...

【技术特征摘要】

1.一种基于raid的内存池动态调配方法,其特征在于,应用于每个内存池,多个所述内存池之间存在树状结构,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

3.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

4.根据权利要求1所述的方法,其特征在于,所述基于所述第一空闲值,判断是否需要调入内存资源,包括:

5.根据权利要求1所述的方法,其特征在于,所述在需要调入内存资源时,获取所述树状结构中第二内存池的内存使用情况与第二空闲值,包括:

6.根据权利要求5所述的方法,其特征在于,所述基于所述第二空闲值,确定所述第二内存池的内存调配状态,包括

7.根据权利要求5所述的方法,其特征在于,所述在所述调配状态为可调配状态时,获取所述树状结构中第二内存池的内存使用情况,包括:

8.根据权利要求7所述的方法,其特征在于,所述基于所述内存使用情况,确定第二内存池的内存预留值,包括:

...

【专利技术属性】
技术研发人员:邸忠辉梁欣玲孙昊
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

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

1