IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

简单理解Memcached的Slab Allocation

小小子 2013-05-01 17:40:52 累计浏览 5,464 次
本机暂存

slab Allocation

Slab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称为slab。

Memcached的内存分配以Page为单位,Page默认值为1M,可以在启动时通过-I参数来指定。

Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。其结构图如下:

Memcache's slab page and chunk

Growth Factor

memcached在启动时通过-f选项可以指定 Growth Factor因子。该值控制slab之间的差异,chunk大小的差异。默认值为1.25。

通过memcached-tool查看指定memcached实例的不同slab状态,可以看到各Item所占大小(chunk大小)差距为1.25

Memcache Slab Growth Factor

Slab Allocation的缺点

Slab Allocation可以有效的解决内存碎片问题,但是在如下情况下,会导致内存的浪费:

同分类推荐文章

  1. Vibe新开源项目 - Vaala AI Gateway (2026-05-17 02:10:19)
  2. SmartPerfetto 架构文章 Q&A:8 个深度技术问答 (2026-04-10 11:00:00)
  3. 让 AI 把我的 PHP 博客重写成 Go (2026-03-27 18:33:54)

查看更多 后端 文章 →

建议继续学习

  1. 分布式缓存系统 Memcached 入门 (累计阅读 16,141)
  2. 30分钟3300%性能提升――python+memcached网页优化小记 (累计阅读 13,660)
  3. 关于linux内存free的一些事情 (累计阅读 12,741)
  4. 关于memcache分布式一致性hash (累计阅读 11,722)
  5. linux内核研究笔记(一)内存管理 – page介绍 (累计阅读 10,400)
  6. Cacti 添加 Memcached 监控 (累计阅读 9,241)
  7. Redis和Memcached的区别 (累计阅读 8,003)
  8. php缓存与加速分析与汇总 (累计阅读 7,800)
  9. Linux上进程的表示以及入门 (累计阅读 7,680)
  10. Using MySQL as a NoSQL (累计阅读 7,042)