1周前
[linux内存管理] 第 047 篇 Linux 内存回收(Memory Reclaim)总体架构
Memory Reclaim 是 Linux 内存管理的重要组成部分,也是理解内核内存管理的关键。本文以 Linux 5.15 为主线,从整体架构的角度梳理 Memory Reclaim 的工作流程、核心模块及源码结构,为后续深入分析页面回收机制做好铺垫。
2025-03-24
[linux内存管理] 第023篇 watermark详解
本文探讨了 Linux 内存管理中的水位机制,特别是 `zoned page frame allocator` 如何使用水位来控制内存分配和回收。文章首先介绍了 `struct zone` 结构体和三种水位 `WMARK_MIN`、`WMARK_LOW` 和 `WMARK_HIGH` 的概念及其作用。随后,文章详细分析了水位的初始化过程,包括计算 `min_free_kbytes`、更新内存区水位、刷新内存区统计阈值和初始化低内存保留等步骤。接着,文章讨论了快速分配和慢速分配中的水位检测机制,以及 `kswapd` 和内存规整过程中的水位检测。最后,文章强调了调整内存水位的重要性,以及如何根据不同业务场景进行优化。
2025-02-18
[linux内存管理] 第021篇 buddy内存管理之快速分配
深入解析Linux buddy分配器的alloc_pages核心算法,详述内存分配的“快速分配”与“慢速分配”流程。通过源码剖析,呈现alloc_pages如何高效处理内存请求,包括gfp标志、NUMA节点选择、碎片优化及分配策略,突出快速分配优先从zone链表获取空闲页,未命中时转入慢速路径处理.