一种内存池资源使用方法及相关装置制造方法及图纸

技术编号:31638585 阅读:17 留言:0更新日期:2021-12-29 19:19
本申请公开了一种内存池资源使用方法,包括:接收磁盘阵列对应的IO任务;基于磁盘阵列对应的无锁内存池的内存资源链表对IO任务分配无锁内存池的内存节点;其中,无锁内存池与磁盘阵列一一对应;采用内存节点对IO任务进行处理。通过该磁盘阵列对应的无锁内存池分类对应的内存节点,而不需要进行内存资源的是否有锁的判断,实现免锁操作,大大降低了内存池的使用的复杂性,减少了内存泄漏等容易产生的错误,提高了系统的健壮性,保持了内存资源使用的稳定性,同时避免了进行锁判断,提高了对内存池进行操作的效率。本申请还公开了一种内存池资源使用装置、服务器以及计算机可读存储介质,具有以上有益效果。具有以上有益效果。具有以上有益效果。

【技术实现步骤摘要】
一种内存池资源使用方法及相关装置


[0001]本申请涉及计算机
,特别涉及一种内存池资源使用方法、内存池资源使用装置、服务器以及计算机可读存储介质。

技术介绍

[0002]随着信息技术的不断发展,出现了越来越多的数据存储技术。其中,独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间,储存冗余数据也增加了容错。
[0003]相关技术中,存储系统的磁盘阵列会按照条带进行划分,对磁盘阵列条带再按照各磁盘分块条带划分。磁盘阵列的IO(Input/Output,输入输出)流程的相关内存分配都跟条带相关。为了优化磁盘阵列IO的性能,磁盘阵列IO采用了大量优化设计。但是对于内存池访问仍然会需要锁来保证内存池内存分配、释放、回收等操作有序进行。由于锁的存在导致在进行内存分配时,如果其他任务持有锁,当前IO任务想要进行内存池操作就必须获取锁而进行等待,会导致IO性能下降。从而使内存池的操作更加复杂化。复杂和低效率的内存操作,既影响存储系统的性能,也很容易造成内存泄漏等问题,影响了存储系统的稳定性。
[0004]因此,如何提高对内存池进行操作的效率是本领域技术人员关注的重点问题。

技术实现思路

[0005]本申请的目的是提供一种内存池资源使用方法、内存池资源使用装置、服务器以及计算机可读存储介质,以提高内存池进行操作的效率。
[0006]为解决上述技术问题,本申请提供一种内存池资源使用方法,包括:接收磁盘阵列对应的IO任务;基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点;其中,所述无锁内存池与所述磁盘阵列一一对应;采用所述内存节点对所述IO任务进行处理。
[0007]可选的,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:当所述内存资源链表的空闲链表存在内存节点时,从所述空闲链表的头部取出第一个内存节点;将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。
[0008]可选的,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:当所述内存资源链表的空闲链表不存在内存节点时,从所述内存资源链表的后备链表中取出所有内存节点,并将所述所有内存节点放入所述空闲链表中;
从所述空闲链表的头部取出第一个内存节点;将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。
[0009]可选的,还包括:当所述内存资源链表包括多个缓存链表时,从第一个缓存链表取出所有内存节点,并将所述所有内存节点放入所述后备链表中。
[0010]可选的,从所述空闲链表的头部取出第一个内存节点,包括:从所述空闲链表的头部取出第一个内存节点;判断所述第一个内存节点是否存在正在处理的IO任务;若是,则将所述内存节点放入缓存链表中,并取出并检查下一个内存节点是否存在正在处理的IO任务,直至取出空闲的内存节点。
[0011]可选的,还包括:在接收IO任务之前,基于所述磁盘阵列或磁盘阵列区域的数量将内存池资源划分为包括多个内存池的内存池组;对每个所述磁盘阵列或每个所述磁盘阵列区域分配一个所述内存池。
[0012]可选的,采用所述内存节点对所述IO任务进行处理,包括:采用所述磁盘阵列对应的线程和所述内存节点对所述IO任务进行处理。
[0013]可选的,所述内存资源链表还包括hash表;相应的,当接收磁盘阵列对应的IO任务时,还包括:基于所述hash表确定并使用所述IO任务对应的缓存数据。
[0014]本申请还提供一种内存池资源使用装置,包括:IO任务接收模块,用于接收磁盘阵列对应的IO任务;内存资源分配模块,用于基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点;其中,所述无锁内存池与所述磁盘阵列一一对应;IO任务处理模块,用于采用所述内存节点对所述IO任务进行处理。
[0015]本申请还提供一种服务器,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的内存池资源使用方法的步骤。
[0016]本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的内存池资源使用方法的步骤。
[0017]本申请所提供的一种内存池资源使用方法,包括:接收磁盘阵列对应的IO任务;基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点;其中,所述无锁内存池与所述磁盘阵列一一对应;采用所述内存节点对所述IO任务进行处理。
[0018]通过接收磁盘阵列对应的IO任务,然后基于该磁盘阵列对应的无锁内存池分类对应的内存节点,而不需要进行内存资源的是否有锁的判断,实现免锁操作,并且由于该内存池是与该磁盘阵列一一对应的,由于一个条带一次分配,且去掉了内存的释放和回收等操
作,大大降低了内存池的使用的复杂性,减少了内存泄漏等容易产生的错误,提高了系统的健壮性,保持了内存资源使用的稳定性,同时避免了进行锁判断,提高了对内存池进行操作的效率。
[0019]本申请还提供一种内存池资源使用装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
[0020]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0021]图1为本申请实施例所提供的一种内存池资源使用方法的流程图;图2为本申请实施例所提供的一种内存池资源使用方法的内存资源结构示意图;图3为本申请实施例所提供的一种内存池资源使用方法的内存资源链表结构示意图;图4为本申请实施例所提供的一种内存池资源使用装置的结构示意图。
具体实施方式
[0022]本申请的核心是提供一种内存池资源使用方法、内存池资源使用装置、服务器以及计算机可读存储介质,以提高内存池进行操作的效率。
[0023]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024]相关技术中,存储系统的磁盘阵列会按照条带进行划分,对磁盘阵列条带再按照各磁本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存池资源使用方法,其特征在于,包括:接收磁盘阵列对应的IO任务;基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点;其中,所述无锁内存池与所述磁盘阵列一一对应;采用所述内存节点对所述IO任务进行处理。2.根据权利要求1所述的内存池资源使用方法,其特征在于,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:当所述内存资源链表的空闲链表存在内存节点时,从所述空闲链表的头部取出第一个内存节点;将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。3.根据权利要求1所述的内存池资源使用方法,其特征在于,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:当所述内存资源链表的空闲链表不存在内存节点时,从所述内存资源链表的后备链表中取出所有内存节点,并将所述所有内存节点放入所述空闲链表中;从所述空闲链表的头部取出第一个内存节点;将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。4.根据权利要求3所述的内存池资源使用方法,其特征在于,还包括:当所述内存资源链表包括多个缓存链表时,从第一个缓存链表取出所有内存节点,并将所述所有内存节点放入所述后备链表中。5.根据权利要求3所述的内存池资源使用方法,其特征在于,从所述空闲链表的头部取出第一个内存节点,包括:从所述空闲链表的头部取出第一个内存节点;判断所述第一个内存节点是否存在正在...

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

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

1