memcache内存分配机制
c语言中我们分配内存需要使用分配,和释放,做严格的限制,来避免内存浪费,然而,在内存的使用过程中必不可少会造成内存的碎片化,这是操作系统中不可避免的,memcache如何克服内存的碎片化呢?memcache用slab allocator机制,即把内存分成不同尺寸的块,需要存放内容时,会根据内容的大小来选择合适的块。
memcache把内存分为不同仓库slab,slab中又分了许多个chunk小块,每个slab中的chunk大小不同,是通过,memcache -f 指定的增长因子来确定他的大小的。因此为了缓解固定的大小的chunk浪费存储空间,对于特定的网站,我们可以统计网站内缓存数据,按照自己网站的特点,指定合理的增长因子,。
警示:如果有100byte的内容要存,但是122大小的仓库中的chunk满了,并不会去寻找更大的仓库来存放,而是把122仓库中的旧数据踢掉,来存放新的数据,