简单理解Memcached的Slab Allocation
来源:互联网 发布:nba乔丹职业生涯数据 编辑:程序博客网 时间:2024/05/22 12:32
Slab Allocation
Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称为slab。
Memcached的内存分配以Page为单位,Page默认值为1M,可以在启动时通过-I参数来指定。
Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。其结构图如下:
Growth Factor
memcached在启动时通过-f选项可以指定 Growth Factor因子。该值控制slab之间的差异,chunk大小的差异。默认值为1.25。
通过memcached-tool查看指定memcached实例的不同slab状态,可以看到各Item所占大小(chunk大小)差距为1.25
Slab Allocation的缺点
Slab Allocation可以有效的解决内存碎片问题,但是在如下情况下,会导致内存的浪费:
- 每个slab的chunk大小是固定的,当item的占用空间实际小于chunk大小时,会出现内存浪费
- 每个slab的大小是固定的(因为page是固定的),当slab不能被他所拥有的chunk整除时,会出现内存浪费
- 按照Growth Factor因子生成指定大小的slab,而某slab id根本未被使用时,会出现内存浪费
参考资料
memcached全面剖析–2.理解memcached的内存存储
Memcache内存分配策略
Memcached二三事儿
- 简单理解Memcached的Slab Allocation
- 简单理解Memcached的Slab Allocation
- 简单理解Memcached的Slab Allocation
- 简单理解Memcached的Slab Allocation
- Memcached的item和slab
- slab 着色的理解
- slab 着色的理解
- MEMCACHED(3) SLAB内存池
- memcached-内存管理机制slab allocator
- slab着色理解
- memcached之理解memcached的内存存储
- memcached之理解memcached的内存存储
- [Memcached]理解 Memcached 的内存存储
- Memcached(3)-------Memcached的内存存储理解
- memcached-2-理解memcached的内存存储
- Memcached的简单使用
- memcached源码分析-----slab automove和slab rebalance
- 分布式缓存系统Memcached(六)——slab和item的主要操作
- tab bar 与 toolbar使用的区别
- 从VC6迁移到VS2005 - ATL
- Android SD卡读写操作
- 几种实用型Ruby Web开发框架介绍
- InputStreamReader & OutputStreamWriter
- 简单理解Memcached的Slab Allocation
- 可用的代码片段
- Verilog HDL模块的结构
- io的输入与输出
- modelsim使用命令
- Spring core
- poj.1753dfs
- 闪回数据库(Flashback Database)
- makefile双冒号规则