Memcached 内存管理机制原理

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Memcached 内存管理机制原理相关的知识,希望对你有一定的参考价值。

早期的Memcached 内存管理方式是通过malloc 的分配的内存,使用完后通过free 来回收内存, 这种方式容易产生内存碎片,并降低操作系统对内存的管理效率。加重操作系统内存管理器的负担,最坏的情况下, 会导致操作系统比memcached 进程本身还慢,为了解决这个问题, Slab Allocation 内存分配机制
就延生了。

现在Memcached 利用Slab Allocation 机制来分配和管理内存。

Slab
Allocation 机制原理是按照预先规定的大小,将分配给memcached 的内存分割成特定长度的内存块( chunk),再把尺寸相同的内存块, 分成组(chunks slab class),这些内存块不会释放, 可以重复利用。
而且,slab allocator 还有重复使用已分配的内存的目的。也就是说,分配到的内存不会释放,而是重复利用。

Slab Allocation 的主要术语

Page
分配给Slab 的内存空间,默认是1MB。分配给Slab 之后根据slab 的大小切分成chunk。
Chunk
用于缓存记录的内存空间。
SlabClass
特定大小的chunk 的组。

以上是关于Memcached 内存管理机制原理的主要内容,如果未能解决你的问题,请参考以下文章

memcached 的内存管理与删除机制

分布式memcached学习——memcached内存管理机制

memcached内存管理机制分析

memcached 内存管理 分析(转)

Memcached源码分析之内存管理

技术分析memcached分布式缓存数据库部署