时间:2021-07-01 10:21:17 帮助过:49人阅读
简单理解Memcached的Slab Allocation包含如下内容: Slab Allocation Growth Factor Slab Allocation的缺点 slab Allocation Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被
简单理解Memcached的Slab Allocation包含如下内容:
- Slab Allocation
- Growth Factor
- Slab Allocation的缺点
Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称为slab。
Memcached的内存分配以Page为单位,Page默认值为1M,可以在启动时通过-I参数来指定。
Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。其结构图如下:
memcached在启动时通过-f选项可以指定 Growth Factor因子。该值控制slab之间的差异,chunk大小的差异。默认值为1.25。
通过memcached-tool查看指定memcached实例的不同slab状态,可以看到各Item所占大小(chunk大小)差距为1.25
Slab Allocation可以有效的解决内存碎片问题,但是在如下情况下,会导致内存的浪费:
memcached全面剖析–2.理解memcached的内存存储
Memcache内存分配策略
Memcached二三事儿
原文地址:简单理解Memcached的Slab Allocation, 感谢原作者分享。