memcached内存分配

Posted suffergtf

tags:

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

Memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存,最大单个存储对象大小为1M。

page:分配给slab的最小内存空间,默认为1M,可以在启动时通过-l参数修改

chunk:真正用于存储的空间,由page分割而成,chunk大小,从小到大按默认1.25比例增长,最大为1m可通过-f指定。

slab:相同chunk的集合

技术分享图片

memcache启动后,按照预先规定的大小,将分配的内存以page为单位,默认一个page为1M,分割成各种尺寸的chunk,然后将相同的块分成组slab;当数据存储时,首先查找适合的slab,然后查看该slab是否有空闲的chunk,如果有,直接存储,如果没有,则要进行申请,slab申请内存是以page为单位,无论大小为多少,申请到page后,slab会按照chunk的大小进行切分;

 

以上是关于memcached内存分配的主要内容,如果未能解决你的问题,请参考以下文章

简单理解memcached的内存分配

memcached学习——memcached的内存分配机制Slab Allocation内存使用机制LRU常用监控记录

memcached源码分析-----slab内存分配器

memcached注意事项

memcached的内存分配器是如何工作的?为何要使用slabs?

Memcache 内存分配策略和性能(使用)状态检查