[发明专利]一种内存池资源使用方法及相关装置有效
申请号: | 202111438827.7 | 申请日: | 2021-11-29 |
公开(公告)号: | CN113849317B | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 邸忠辉;刘丹 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王晓芬 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 资源 使用方法 相关 装置 | ||
本申请公开了一种内存池资源使用方法,包括:接收磁盘阵列对应的IO任务;基于磁盘阵列对应的无锁内存池的内存资源链表对IO任务分配无锁内存池的内存节点;其中,无锁内存池与磁盘阵列一一对应;采用内存节点对IO任务进行处理。通过该磁盘阵列对应的无锁内存池分类对应的内存节点,而不需要进行内存资源的是否有锁的判断,实现免锁操作,大大降低了内存池的使用的复杂性,减少了内存泄漏等容易产生的错误,提高了系统的健壮性,保持了内存资源使用的稳定性,同时避免了进行锁判断,提高了对内存池进行操作的效率。本申请还公开了一种内存池资源使用装置、服务器以及计算机可读存储介质,具有以上有益效果。
技术领域
本申请涉及计算机技术领域,特别涉及一种内存池资源使用方法、内存池资源使用装置、服务器以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,出现了越来越多的数据存储技术。其中,独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间,储存冗余数据也增加了容错。
相关技术中,存储系统的磁盘阵列会按照条带进行划分,对磁盘阵列条带再按照各磁盘分块条带划分。磁盘阵列的IO(Input/Output,输入输出)流程的相关内存分配都跟条带相关。为了优化磁盘阵列IO的性能,磁盘阵列IO采用了大量优化设计。但是对于内存池访问仍然会需要锁来保证内存池内存分配、释放、回收等操作有序进行。由于锁的存在导致在进行内存分配时,如果其他任务持有锁,当前IO任务想要进行内存池操作就必须获取锁而进行等待,会导致IO性能下降。从而使内存池的操作更加复杂化。复杂和低效率的内存操作,既影响存储系统的性能,也很容易造成内存泄漏等问题,影响了存储系统的稳定性。
因此,如何提高对内存池进行操作的效率是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种内存池资源使用方法、内存池资源使用装置、服务器以及计算机可读存储介质,以提高内存池进行操作的效率。
为解决上述技术问题,本申请提供一种内存池资源使用方法,包括:
接收磁盘阵列对应的IO任务;
基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点;其中,所述无锁内存池与所述磁盘阵列一一对应;
采用所述内存节点对所述IO任务进行处理。
可选的,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:
当所述内存资源链表的空闲链表存在内存节点时,从所述空闲链表的头部取出第一个内存节点;
将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。
可选的,基于所述磁盘阵列对应的无锁内存池的内存资源链表对所述IO任务分配所述无锁内存池的内存节点,包括:
当所述内存资源链表的空闲链表不存在内存节点时,从所述内存资源链表的后备链表中取出所有内存节点,并将所述所有内存节点放入所述空闲链表中;
从所述空闲链表的头部取出第一个内存节点;
将所述IO任务的条带号和IO请求指针写入所述内存节点,并放入缓存链表中,以实现对所述IO任务分配所述内存节点。
可选的,还包括:
当所述内存资源链表包括多个缓存链表时,从第一个缓存链表取出所有内存节点,并将所述所有内存节点放入所述后备链表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111438827.7/2.html,转载请声明来源钻瓜专利网。