嵌入式系统arm高级系统调试技能-24./proc/slabinfo 文件解读与内存异常分析
/proc/slabinfo 文件解读与内存异常分析
/proc/slabinfo 是 Linux 内核提供的核心文件,用于展示 slab 分配器 的运行状态。slab 分配器是内核管理小内存块(如 inode、dentry、进程描述符等)的核心机制,通过“缓存复用”减少内存碎片,其状态直接反映内核内存的健康度。
一、文件内容核心解读
文件每行对应一个 slab 缓存(slab cache),每行包含多个字段,不同内核版本字段数量略有差异(以 5.4 内核为例,共 12 个核心字段)。以下是字段含义及关键缓存类型说明:
- 核心字段含义(按顺序)
字段位置 字段名 含义解读
1 name slab 缓存名称(核心标识,对应内核对象类型)
2 active_objs 活跃对象数:已分配且正在使用的内核对象数量
3 num_objs 总对象数:该 slab 缓存中所有对象(活跃 + 空闲)的总数
4 objsize 单个对象大小(单位:字节):每个内核对象占用的内存大小
5 objperslab 每 slab 页数:一个 slab 页(通常为 4KB)可容纳的对象数量
6 pagesperslab 每 slab 页数:一个 slab 块包含的物理页数(通常为 1,即 4KB)
7 slabs slab 块总数:该缓存当前分配的 slab 块数量(slab 块 = 物理页集合)
8 active_slabs