Linux 内核 内存管理分区伙伴分配器 ④ ( 备用内存区域列表排序方式 | 节点优先顺序 | 区域优先顺序 | 排序方式优缺点 | 默认排序方式 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核 内存管理分区伙伴分配器 ④ ( 备用内存区域列表排序方式 | 节点优先顺序 | 区域优先顺序 | 排序方式优缺点 | 默认排序方式 )相关的知识,希望对你有一定的参考价值。
文章目录
在上一篇博客 【Linux 内核 内存管理】分区伙伴分配器 ③ ( 备用内存区域列表 | ZONELIST_FALLBACK 枚举 | zoneref 结构体 | 备用内存区域借用物理页规则 ) 中 , 介绍了 UMA 系统的 备用内存区域列表 :
UMA 系统的 每个 内存节点 中 , 都有 2 2 2 个 备用内存区域列表 ,
① 一个包含了 所有内存节点 的 备用内存区域列表 ,
② 另外一个 包含了 当前内存节点 的 备用区域列表 ;
一、备用内存区域列表排序方式 ( 节点优先顺序 | 区域优先顺序 )
包含了 所有内存节点 的 备用内存区域列表 , 有 2 2 2 种排序方式 :
① 节点优先顺序 : 先 根据 " 节点距离 “ 由远到近 进行排序 , 然后根据 ” 区域类型 " 由高到低 进行排序 ;
② 区域优先顺序 : 先 根据 " 区域类型 " 由高到低 进行排序 , 然后 根据 " 节点距离 " 由远到近 进行排序 ;
二、备用内存区域列表排序方式优缺点 ( 节点优先顺序 | 区域优先顺序 )
理想的情况应该是 既选择 距离较近的内存 , 又能减少 低区域类型内存 耗尽的概率 ;
① 节点优先顺序 : 该排序可以 优先 选择 距离较近 的内存 , 但是可能会在 高区域类型内存 耗尽前 使用 低区域类型内存 ;
② 区域优先顺序 : 该排序 减少 低区域类型内存 耗尽的概率 , 但是不能保证选择的内存距离最近 ;
三、备用内存区域列表默认排序方式
默认排序方法 : 系统会自动选择 最优 排序策略 ;
64 64 64 位系统 需要用到的 DMA 和 DMA32 类型区域较少 , 选择 " 节点优先顺序 " ;
32 32 32 位系统 选择 " 区域优先顺序 " ;
阅读世界,共赴山海 423全民读书节,邀你共读以上是关于Linux 内核 内存管理分区伙伴分配器 ④ ( 备用内存区域列表排序方式 | 节点优先顺序 | 区域优先顺序 | 排序方式优缺点 | 默认排序方式 )的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核 内存管理分区伙伴分配器 ⑥ ( zone 结构体中水线控制相关成员 | 在 Ubuntu 中查看内存区域水位线 )
Linux 内核 内存管理分区伙伴分配器 ⑥ ( zone 结构体中水线控制相关成员 | 在 Ubuntu 中查看内存区域水位线 )
Linux 内核 内存管理分区伙伴分配器 ③ ( 备用内存区域列表 | ZONELIST_FALLBACK 枚举 | zoneref 结构体 | 备用内存区域借用物理页规则 )
Linux 内核 内存管理分区伙伴分配器 ③ ( 备用内存区域列表 | ZONELIST_FALLBACK 枚举 | zoneref 结构体 | 备用内存区域借用物理页规则 )
Linux 内核 内存管理分区伙伴分配器 ② ( free_area 空闲区域结构体源码 | 分配标志位 | GFP_ZONE_TABLE 标志位区域类型映射表 |分配标志位对应的内存区域类型 )
Linux 内核 内存管理物理分配页 ① ( 分区伙伴分配器物理分配页核心函数 __alloc_pages_nodemask | __alloc_pages_nodemask 函数完整源码 )