在C中,使用malloc分配内存时会产生内存碎片,即空闲零碎的空间无法利用。
Memcached中的Slab Allocator机制缓解这一问题。
基本原理:
按照预先规定的大小,将内存分成数个slab仓库,然后将各仓库分割成特定长度的块(chunk),并把尺寸相同的块分成组,以完全解决内存碎片问题
Memcached根据收到的数据的大小,选择最适合数据大小的slab。Memcached保存slab内空闲chunk的列表,根据该列表选择chunk,然后将数据缓存于其中。
根据缓存数据大小的变化规律,设置块之间的增长因子(Grow Factor):
默认为1.25
时间: 2024-10-05 04:07:54