加载中...

slab 分配器是操作系统内核中用于高效分配小块内存对象的机制,最早由 Jeff Bonwick 为 SunOS 5.4 设计,后被 Linux 等系统采纳。
内核频繁分配和释放大小固定的小对象(如 inode、task_struct、网络缓冲区)。slab 分配器为每类对象建立专用缓存,从伙伴系统申请整页后切分成同尺寸的对象槽;对象释放后不归还页面而是留在缓存中供下次复用,避免了反复初始化与内存碎片。
Linux 历史上有三种实现:经典 SLAB、面向大规模多核优化的 SLUB(当前默认)与面向嵌入式精简的 SLOB(已移除)。可通过 /proc/slabinfo 或 slabtop 观察各缓存使用情况。
slab 层构建在页分配器之上,与伙伴系统共同构成内核内存管理的两级体系,对内核性能影响深远。

登录 后参与讨论
暂无讨论,来发表第一条评论吧