首页 > 文档
为何MC能长期维持高性能读写
- 2024-05-30
- 1214 ℃
内存管理 slab 机制
讲完淘汰策略,我们接下来学习内存管理 slab 机制。
Mc 内存分配采用 slab 机制,slab 机制可以规避内存碎片,是 Mc 能持续高性能进行数据读写的关键。
slabclass
Mc 的 slab 机制是通过 slabclass 来进行运作的,如下图所示。Mc 在启动时,会构建长度为 64 的 slabclass 数组,其中 0 号 slabclass 用于 slab 的重新分配,1~63 号 slabclass 存储数据 Item。存储数据的每个 slabclass,都会记录本 slabclass 的 chunk size,同时不同 slabclass 的 chunk size 会按递增因子增加,最后一个 slabclass(即 63 号 slabclass)的 chunk size 会直接设为最大的 chunk size,默认是 0.5MB。每个 slabclass 在没有空闲的 chunk 时,Mc 就会为其分配一个默认大小为 1MB 的 slab,同时按照本 slabclass 的 chunk size 进行拆分,这些分拆出来的 chunk 会按 Item 结构体进行初始化,然后记录到 slabclass 的 freelist 链表中。当有 key/value 要存储在本 slabclass 时,就从 freelist 分配一个 Item,供其使用。同时,如果 Item 过期了,或被 flush_all 失效了,或在内存不够时被强项剔除了,也会在适当时刻,重新被回收到 freelist,以供后续分配使用。
下一篇:系统稳定,如何监控和保护进程安全
相关内容
原理解析,JS 代码是如...
网络分析技术揭秘 —...
神经系统定位诊断
生产成品管理,检验管理...
ort 排序方法的实现原理
带你一起实现 JSON.Stringify 方法
码出高效 阿里巴巴Java...
嗨翻C语言
-
英语八级视听美文20篇视频
2024-08-20 1122
-
深入理解Android ——卷I
2024-05-24 1498
-
HTTP(Hypertext Transfer Protocol,超文本传输协议1)权威指南
2024-05-24 1450
-
BBC,CNN,VOA英语八级新闻听力300篇PDF及音频
2024-08-19 2253
-
3 大主流系统框架:由浅入深分析 Expre、Koa 和 Egg.j
2024-05-24 1558
-
2018口腔执业医师考试大纲【全】
2024-08-19 1206
-
疯狂XML讲义
2024-05-24 1518
-
院感资料文档汇总
2025-05-20 1542
-
2015-2020年高考真题
2024-08-09 1529
-
中医助理医师考试大纲汇总
2024-08-20 2191
文章评论 (0)
- 这篇文章还没有收到评论,赶紧来抢沙发吧~


下载完整资料
点击分享文章