为何MC能长期维持高性能读写
内存管理 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,以供后续分配使用。
-
仿微信app微信页面html
496 0 21-06-04 -
辞职与退休表 - 企业管理表格
第一节 员工辞职申请书.DOC第七节 员工离职单.DOC第三节 作业员辞职申请书.DOC第九节 员工离职证明书.DOC第二节 从业人员辞职申请书.D... 1298 0 24-07-30 -
生产管理表 - 企业管理表格
产品制造过程及使用设备分析.doc产品包装记录卡.doc产品包装进度记录卡.doc产品设备记录表.doc产品详细制造过程.doc产量平衡及半成品存量表... 932 0 24-07-28 -
酒店防偷拍指南(专业版)
教大家如何排查针孔摄像头进门关灯拉窗帘,尽量让室内全黑仔细观察:插座孔/路由器/床头灯/烟感器/空调口/挂衣钩/窗帘顶部等地方,是否有红... 1007 0 24-11-18 -
AI:人工智能的本质与未来
人工智能(Artificial Intellegence,AI)就是让计算机完成人类心智(mind)能做的各种事情。通常,我们会说有些行为(如推理)是“智能的... 1234 0 24-05-28 -
JS 的数据类型你了解多少?
作为 JavaScript 的入门级知识点,JS 数据类型在整个 JavaScript 的学习过程中其实尤为重要。因为在 JavaScript 编程中,我们经常会... 1018 0 24-05-24 -
移动端下拉刷新,滑动加载更多
338 0 21-06-02 -
常用ps作图图标
414 0 21-07-12
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~