[发明专利]一种内存分配方法和装置有效
申请号: | 201710422776.6 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107247673B | 公开(公告)日: | 2020-05-26 |
发明(设计)人: | 刘斌 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 方法 装置 | ||
本发明公开了一种内存分配方法和装置,其中该方法包括:获取预先基于存储系统中每个系统成员的软件架构为其设置的第一内存数量,其中每个所述系统成员的软件架构相同;采集每个所述系统成员的硬件信息,并基于所述硬件信息计算出每个所述系统成员的第二内存数量;将每个所述系统成员的第一内存数量和该系统成员的第二内存数量相加,得到需要分别分配给每个所述系统成员的内存总数量。本发明公开的内存分配方法使得存储系统为每个系统成员分配的内存总数量基本等于其实际需要的内存总数量,解决了存储系统如何为每个系统成员分配合理的内存数量的技术问题。
技术领域
本发明涉及内存分配领域,特别涉及一种内存分配方法和装置。
背景技术
在存储系统启动过程中,各个系统成员需要初始化,在这个过程中,存储系统会为系统成员分配内存,以便于后期系统对其进行访问操作。如果有多种存储硬件平台,那么存储系统需要为每个硬件平台分配内存,而每个硬件平台所需要的内存可能各不相同,例如不同的存储硬件平台能够插入不同的HBA卡数量,从而导致在HBA卡初始化过程中所需要的内存会因硬件平台的不同而不同。
而在存储系统初始化过程之前,需要为每一个系统成员预留一定的内存用于此成员初始化过程,一旦预留成功,那么这个成员的初始化所需内存必须在预留内存范围内,这样可以保证避免某一个成员无限制的预留内存的情况。
现有技术中的内存分配方法是,在一套软件架构中,预留一个公共的memreq(memory require)配置值用于配置所有系统成员在初始化的时候需要的内存数量。由于所有的硬件平台都会分享这一公共的memreq的值,那么这个memreq的值必须以系统成员所需要的最大内存的数量作为memreq的值。比如存储系统有三个硬件平台共享这个memreq的值,第一个硬件平台需要memreq的值为10,第二个硬件平台需要的memreq的值为20,第三个硬件平台需要的memreq的值为30,那么这个存储系统的公共的memreq的值需要取三个平台中的最大值30。
然而,在用上述方法为系统成员初始化分配内存时,会出现为所需memreq值较小的硬件平台预留了较多内存的情况,相应的,会有较少的内存用于系统cache,这导致系统存储性能差。
综上所述,存储系统如何为每个系统成员分配合理的内存数量是本领域技术人员目前需要解决的技术问题。
发明内容
本发明所要解决的技术问题是提供一种内存分配方法,其能够为每个系统成员分配合理的内存数量。本发明还提供了一种内存分配装置。
为解决上述技术问题,本发明提供一种内存分配方法,包括:
获取预先基于存储系统中每个系统成员的软件架构为其设置的第一内存数量,其中每个所述系统成员的软件架构相同;
采集每个所述系统成员的硬件信息,并基于所述硬件信息计算出每个所述系统成员的第二内存数量;
将每个所述系统成员的第一内存数量和该系统成员的第二内存数量相加,得到需要分别分配给每个所述系统成员的内存总数量。
优选的,所述采集每个所述系统成员的硬件信息,包括:
采集每个所述系统成员自身的硬件信息和外接设备的硬件信息。
优选的,所述基于所述硬件信息计算出每个所述系统成员的第二内存数量,包括:
基于每个所述系统成员自身RAM的大小计算自身硬件信息对应的第一内存值;基于每个系统成员外接设备的类型和数量计算外接设备硬件信息对应的第二内存值;将每个所述系统成员的第一内存值和该系统成员的第二内存值相加,得到每个所述系统成员的第二内存数量。
优选的,在得到需要分别分配给每个所述系统成员的内存总数量之后还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710422776.6/2.html,转载请声明来源钻瓜专利网。