一种内存分配管理方法、系统、设备及存储介质技术方案

技术编号:27203646 阅读:15 留言:0更新日期:2021-01-31 12:20
本发明专利技术公开了一种内存分配管理方法、系统、设备及存储介质。所述方法包括:系统启动,存储控制器申请内存,并将申请到的内存设置为不可回收状态;根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段;根据各个内存池中内存使用情况,动态调节每个内存池的大小。所述系统包括内存申请模块、内存划分模块和内存管理模块。本发明专利技术在根本上杜绝了用于处理IO的内存被操作系统收回,避免了内存回收可能造成的IO响应延迟和IO处理速度下降,也避免了存储故障后,由于监控模块不能及时收集有效信息而导致的故障无法恢复的风险,保证了存储故障时数据恢复信息的收集。据恢复信息的收集。据恢复信息的收集。

【技术实现步骤摘要】
一种内存分配管理方法、系统、设备及存储介质


[0001]本专利技术涉及存储设备内存优化领域,具体涉及一种内存分配管理方法、系统、设备及存储介质。

技术介绍

[0002]存储控制器主要用于存储端的硬盘及其上存储数据的管理,同时对服务器端提供数据访问服务。在对服务器端提供数据访问的过程中,由于短时间内处理的输入/输出(Input/Output,IO)数量巨大,存储控制器中的内存会被大量消耗,而当系统内存压力较大时,操作系统(Operating System,OS)会遍历系统中各进程的使用情况,并回收一部分内存,同时将内存中的数据通过某种算法(如压缩算法)处理后,存入文件、硬盘或其他地方,这会造成两种问题:若处理IO线程的内存被回收,一是会影响存储控制器处理IO的速度及IO本身的响应速度;二是若此时该存储节点发生故障,监控进程无法在较短的时间内抓取内存数据并保存,则后期数据恢复、故障节点替换等功能都会受到影响。处理IO的线程的内存需求无法获得满足和保证,可能存在申请内存因内存不足而无法获取的情况,造成整个IO处理过程的迟滞。

技术实现思路

[0003]为了解决上述技术问题,本专利技术提出了一种内存分配管理方法、系统、设备及存储介质,优化了IO读写速率,能够合理利用内存,保证存储控制器稳定运行。
[0004]为实现上述目的,本专利技术采用以下技术方案:
[0005]一种内存分配管理方法,包括:
[0006]系统启动,存储控制器申请内存,并将申请到的内存设置为不可回收状态;
[0007]根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段;
[0008]根据各个内存池中内存使用情况,动态调节每个内存池的大小。
[0009]进一步地,所述根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段,包括:
[0010]根据各个数据处理阶段对内存需求量的经验值,分配每个内存池的初始容量。
[0011]进一步地,所述方法还包括:
[0012]写入数据时,当前数据处理阶段处理完成,若后一数据处理阶段运行空闲,则开放后一数据处理阶段对当前数据处理阶段对应内存池的访问权限;
[0013]若后一数据处理阶段繁忙,则将数据由当前数据处理阶段对应内存池转存入后一数据处理阶段对应内存池,释放当前数据处理阶段对应内存池。
[0014]进一步地,所述方法还包括:
[0015]读取数据时,当前数据处理阶段处理完成,若后一数据处理阶段运行空闲,则开放后一数据处理阶段对当前数据处理阶段对应内存池的访问权限;
[0016]若后一数据处理阶段繁忙,则将数据由当前数据处理阶段对应内存池转存入后一数据处理阶段对应内存池,释放当前数据处理阶段对应内存池。
[0017]进一步地,所述内存池以内存页的方式管理。
[0018]进一步地,所述根据各个内存池中内存使用情况,动态调节每个内存池的大小,包括:
[0019]定期评估各数据处理阶段内存池中内存的使用情况,根据各内存池中已使用与未使用的内存比例,增减调节内存池的容量。
[0020]进一步地,所述数据处理的阶段包括:前端接口层阶段、缓存阶段、存储池阶段、磁盘阵列阶段和后端接口层阶段。
[0021]本专利技术还提出了一种内存分配管理系统,包括:
[0022]内存申请模块,用于在系统启动时,存储控制器申请内存,并将申请到的内存设置为不可回收状态;
[0023]内存划分模块,用于根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段;
[0024]内存管理模块,用于根据各个内存池中内存使用情况,动态调节每个内存池的大小。
[0025]本专利技术还提出了一种内存分配管理的设备,包括:
[0026]存储器,用于存储计算机程序;
[0027]处理器,用于执行所述计算机程序时实现如上所述内存分配管理方法的步骤。
[0028]本专利技术还提出了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述内存分配管理方法的步骤。
[0029]本专利技术的有益效果是:
[0030]本专利技术通过提出一种内存分配管理方法、系统、设备及存储介质,将分配的内存置为不可回收状态,从而在根本上杜绝了用于处理IO的内存被操作系统收回,避免了内存回收可能造成的IO响应延迟和IO处理速度下降,也避免了存储故障后,由于监控模块不能及时收集有效信息而导致的故障无法恢复的风险,保证了存储故障时数据恢复信息的收集。
[0031]同时,本专利技术还实现了内存隔离,保障各数据处理阶段对内存的需求,又选择性实现内存互访,加快IO处理流程,通过合理高效地使用有限的内存,提高了存储控制器的性能,保证了存储控制器的稳定性。
附图说明
[0032]图1是本专利技术实施例内存分配管理方法流程示意图;
[0033]图2是本专利技术实施例内存分配管理方法的内存分配流向示意图;
[0034]图3是本专利技术实施例内存分配管理系统结构示意图;
[0035]图4是本专利技术实施例内存分配管理的设备的结构示意图。
具体实施方式
[0036]为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结
构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。
[0037]如图1所示,本专利技术实施例公开了一种内存分配管理方法,包括:
[0038]系统启动,存储控制器申请内存,并将申请到的内存设置为不可回收状态;
[0039]根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段;
[0040]根据各个内存池中内存使用情况,动态调节每个内存池的大小。
[0041]具体地,本专利技术实施例所述存储控制器对外向服务器端提供数据访问服务,对内管理及组织后端存储介质上的数据,因此需要大量的内存。在系统启动初期,存储控制器向操作系统申请大量的内存,并且将申请到的内存设置为不可回收状态,从而在根本上杜绝用于处理IO的内存被OS收回,避免造成IO响应延迟,避免故障无法恢复的风险。
[0042]如图2所示,所述申请到的内存以内存页的方式管理,对应数据IO从服务器端到达存储后需要经过的各个数据处理阶段分别建立相应的内存池1-5,并且根据各个数据处理阶段对内存需求量的经验值,分配每个内存池的初始容量。图2中列出了数据处理的部分阶段,包括:前端接口层本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配管理方法,其特征在于,包括:系统启动,存储控制器申请内存,并将申请到的内存设置为不可回收状态;根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段;根据各个内存池中内存使用情况,动态调节每个内存池的大小。2.根据权利要求1所述的内存分配管理方法,其特征在于,所述根据存储控制器数据处理的阶段将申请到的内存划分为多个内存池,每个内存池对应数据处理的一个阶段,包括:根据各个数据处理阶段对内存需求量的经验值,分配每个内存池的初始容量。3.根据权利要求1所述的内存分配管理方法,其特征在于,所述方法还包括:写入数据时,当前数据处理阶段处理完成,若后一数据处理阶段运行空闲,则开放后一数据处理阶段对当前数据处理阶段内存池的访问权限;若后一数据处理阶段繁忙,则将数据由当前数据处理阶段内存池转存入后一数据处理阶段内存池,释放当前数据处理阶段内存池。4.根据权利要求1所述的内存分配管理方法,其特征在于,所述方法还包括:读取数据时,当前数据处理阶段处理完成,若后一数据处理阶段运行空闲,则开放后一数据处理阶段对当前数据处理阶段内存池的访问权限;若后一数据处理阶段繁忙,则将数据由当前数据处理阶段内存池转存入后一数据处理阶段内存池,释放当前数据处理阶段内存...

【专利技术属性】
技术研发人员:吴庆凯
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1