Memcached的内存分配机制

一、基本概念

  • Slab Class:由相同大小的Chunk组成,不同的Slab Class中的Chunk大小不同;

  • Page:分配给单个Slab的内存大小,默认为1MB,分配给Slab之后依据Slab的大小拆分为Chunk;

  • Chunk:将每一个Slab按照不同大小进行拆分,得到了不同大小的Chunk(每个Slab中的Chunk大小一致),Chunk的初始大小可以指定,并且可以根据不同的业务场景通过调整增长因子(factor:默认为1.25)进行调优;

Slab Alloction 构造图

二、存储过程

Memcached根据收到数据的大小,选择最合适数据大小的Slab Class,根据Memcached中保存的该Slab Class中空闲的Chunk列表,将将数据存储于其中。

三、相关链接

  • [The Slab Allocator: An Object-Caching Kernel Memory Allocator](
Author: bugwz
Link: https://bugwz.com/2016/10/02/memcached-memory-layout/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.