三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux 内核参数:vmstat

Linux 内核参数:vmstat

源码基于:Linux 5.15

针对节点:

/proc/vmstat

0. 前言

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。

本文要分析的节点vmstat是内存管理数据统计的大集合,其中包括了空闲页面、不活跃页面、活跃页面、不可回收页面、cma管理页面、slab管理页面、工作集使用情况、脏页、共享页、回收操作情况、规整情况等等。

1. 调用流程

start_kernel() |----arch_call_rest_init() |----rest_init() |----kernel_init() |----kernel_init_freeable() |----init_mm_internals() mm/vmstat.c void __init init_mm_internals(void) { ... #ifdef CONFIG_PROC_FS proc_create_seq("buddyinfo", 0444, NULL, &fragmentation_op); proc_c
← 返回列表