System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种kernel大页内存优化方法技术_技高网

一种kernel大页内存优化方法技术

技术编号:40966476 阅读:2 留言:0更新日期:2024-04-18 20:46
本发明专利技术公开了一种kernel大页内存优化方法,包括第一步,通过buddy内存管理子系统接管空闲内存,并建立struct page元数据对4KB的内存页面进行管理,并设置启动参数与启动后参数,对内存进行预留,第二步,利用建立内存池和二层内存管理架构对大页进行申请与释放进行管理,第三步,利用建立物理内存与虚拟地址联系实现通过内存池进行内存的使用,本发明专利技术通过减少了系统page元数据管理数量,优化内核自带的大页组织管理,在大页管理系统每1GB大页内存上实现16MB内存空间的节省,当服务器配置大页数量越多,可以释放出来的内存也越多,而释放出来的内存可以直接用于云主机,也可以分配给服务器系统来使用,实现内存利用率的提高。

【技术实现步骤摘要】

本专利技术涉及操作系统领域,特别涉及一种kernel大页内存优化方法


技术介绍

1、当前linux kernel的内存管理中,系统使用4kb物理页面组织管理内存,需要为每个物理页面建立一个相关联的struct page数据结构,用于跟踪和记录页面信息,目前在64位机器上,struct page数据结构的大小已经达到了64byte,随着服务器物理内存越来越大,struct page元数据本身占用的内存也越来越大,由于每4kb的页面需要64byte的struct page元数据,所以整机内存的1/64将消耗在struct page数据结构中,在云计算服务中,为了给云主机提供更好的性能,通常情况下会使用大页,通过启用“大页内存”,系统只需要处理较少的页面映射表,从而减少访问/维护它们的开销,但随着服务器内存越来越大,设置的大页内存也会越来越多,而服务器系统运行所需的内存很少且较为固定,故无法满足实际的设置需求,造成运营成本的增加。


技术实现思路

1、本专利技术的目的在于提供一种kernel大页内存优化方法,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种kernel大页内存优化方法,所述优化方法包括以下几个步骤:

3、第一步,进行内存的预留,在linux kernel系统中,由buddy内存管理子系统接管空闲内存,并建立struct page元数据对4kb的内存页面进行管理,同时在linux kernel系统启动时与启动后设置参数对内存进行预留;

4、第二步,进行内存的管理,通过内存池对大页进行申请与释放,并建立二层内存管理架构对内存进行管理控制;

5、第三步,进行内存的使用,通过建立物理内存与虚拟地址联系,利用大页内存池使用预留好的大页内存。

6、优选的,所述第一步中,内存的预留流程包括以下几个步骤;

7、s1,先遍历系统中空闲memblock,跳过已分配区域,将满足要求的memblock分离,注册至专属内存池内,直至满足要求;

8、s2,将分离出的大页内存与buddy内的内存进行隔离,同时不对此部分内存页建立struct page对象;

9、s3,在linux kernel系统启动阶段解析出numa拓扑结构,并且对memblock信息进行更新,更新之后再对大页内存进行预留;

10、s4,对内存对齐大小进行指定。

11、优选的,所述s1中遍历系统中空闲memblock依次按顺序访问集合、数据结构或数据元素,该过程包括确定遍历起始位置、进行迭代、访问元素、移动下一个元素、再次迭代直至触发结束条件完成遍历。

12、优选的,所述s2中struct page对象是用于表示内存页的数据结构,其对应着系统内存中的一个物理页面,在linux系统中,struct page对象包括有关物理页面状态的信息。

13、优选的,所述内存的管理流程包括以下几个步骤:

14、a1,按照numa拓扑来进行组织;

15、a2,在numa内隔离出内存连续的内存区域。

16、优选的,所述a1中的numa拓扑包括定义系统中不同numa节点之间的距离、内存访问延迟以及数据在各个节点之间的分布方式。

17、优选的,所述内存的管理中可以将部分虚拟内存页面存储在物理内存中,同时将其他页面存储在磁盘上,实现页面交换。

18、优选的,所述对于numa内隔离出内存连续的内存区域是通过查询numa节点中本地内存在物理地址上是否连续进行筛分,将符合条件连续的本地内存分离。

19、优选的,所述大页内存池使用预留好的大页内存的操作方法包括以下几个步骤;

20、b1,先进入大页文件系统挂载的目录中,打开一个文件,通过虚拟地址空间中找到一块连续的虚拟地址段;

21、b2,在大页内存池中找到的一块物理内存,建立其与虚拟地址之间的关系;

22、b3,在物理内存与虚拟地址之间的关系建立完成后,对预留好的大页内存进行使用;

23、b4,释放占用的大页内存,并将其回收,存放至大页管理的空闲仓库中。

24、优选的,所述内存的使用中s2中物理内存与虚拟地址之间的关系建立是通过页表或页映射来实现,利用页表和地址转换,实现虚拟地址空间的抽象,使应用程序能够在不直接访问物理内存的情况下执行。

25、本专利技术的技术效果和优点:

26、本专利技术通过减少了系统page元数据管理数量,优化内核自带的大页组织管理,在大页管理系统每1gb大页内存上实现16mb内存空间的节省,当服务器配置大页数量越多,可以释放出来的内存也越多,而释放出来的内存可以直接用于云主机,也可以分配给服务器系统来使用,实现内存利用率的提高。

本文档来自技高网...

【技术保护点】

1.一种kernel大页内存优化方法,其特征在于,所述优化方法包括以下几个步骤:

2.根据权利要求1所述的一种kernel大页内存优化方法,其特征在于,所述第一步中,内存的预留流程包括以下几个步骤;

3.根据权利要求2所述的一种kernel大页内存优化方法,其特征在于,所述S1中遍历系统中空闲memblock依次按顺序访问集合、数据结构或数据元素,该过程包括确定遍历起始位置、进行迭代、访问元素、移动下一个元素、再次迭代直至触发结束条件完成遍历。

4.根据权利要求2所述的一种kernel大页内存优化方法,其特征在于,所述S2中structpage对象是用于表示内存页的数据结构,其对应着系统内存中的一个物理页面,在Linux系统中,struct page对象包括有关物理页面状态的信息。

5.根据权利要求1所述的一种kernel大页内存优化方法,其特征在于,所述内存的管理流程包括以下几个步骤:

6.根据权利要求5所述的一种kernel大页内存优化方法,其特征在于,A1中的numa拓扑包括定义系统中不同numa节点之间的距离、内存访问延迟以及数据在各个节点之间的分布方式。

7.根据权利要求5所述的一种kernel大页内存优化方法,其特征在于,所述内存的管理中可以将部分虚拟内存页面存储在物理内存中,同时将其他页面存储在磁盘上,实现页面交换。

8.根据权利要求5所述的一种kernel大页内存优化方法,其特征在于,所述对于numa内隔离出内存连续的内存区域是通过查询numa节点中本地内存在物理地址上是否连续进行筛分,将符合条件连续的本地内存分离。

9.根据权利要求1所述的一种kernel大页内存优化方法,其特征在于,所述大页内存池使用预留好的大页内存的操作方法包括以下几个步骤;

10.根据权利要求9所述的一种kernel大页内存优化方法,其特征在于,所述内存的使用中S2中物理内存与虚拟地址之间的关系建立是通过页表或页映射来实现,利用页表和地址转换,实现虚拟地址空间的抽象,使应用程序能够在不直接访问物理内存的情况下执行。

...

【技术特征摘要】

1.一种kernel大页内存优化方法,其特征在于,所述优化方法包括以下几个步骤:

2.根据权利要求1所述的一种kernel大页内存优化方法,其特征在于,所述第一步中,内存的预留流程包括以下几个步骤;

3.根据权利要求2所述的一种kernel大页内存优化方法,其特征在于,所述s1中遍历系统中空闲memblock依次按顺序访问集合、数据结构或数据元素,该过程包括确定遍历起始位置、进行迭代、访问元素、移动下一个元素、再次迭代直至触发结束条件完成遍历。

4.根据权利要求2所述的一种kernel大页内存优化方法,其特征在于,所述s2中structpage对象是用于表示内存页的数据结构,其对应着系统内存中的一个物理页面,在linux系统中,struct page对象包括有关物理页面状态的信息。

5.根据权利要求1所述的一种kernel大页内存优化方法,其特征在于,所述内存的管理流程包括以下几个步骤:

6.根据权利要求5所述的一种kernel大页内存优化方法,其特...

【专利技术属性】
技术研发人员:王雷郑文明谭龙孙政张端张猛
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1