memcache内存管理机制
来源:互联网 发布:ai平面设计软件下载 编辑:程序博客网 时间:2024/05/01 11:39
memcache内存管理机制
memcache内存32位系统下最大设置为2g
预先将内存划分为数个slab class 小块 各仓库切割成不同大小的小块。
需要内存时,判断内容大小时,为其选取合适大小的小仓库。
当memcache收到数据后会根据数据的大小选取最合适的slab class 组
memcache中保存着slab class 空闲列表的信息
如果接收到一个100k的数据时 122k的slab class 没有空闲,memcache 不会去查找144k的slab class 而回根据一定的规则踢掉122k的旧数据
slab allocator机制会造成内存的浪费,对于内存的浪费无法解决只能缓解,使用者可以根据实际情况,
定义slab class 大小的增长因子来调节slab class 的大小 ,避免过多的浪费内存
增长因子默认为1.25 , 在memcache 启动时可以通过memcached -f 来指定
memcache的惰性删除
当memcache中的数据过期时并没有直接从内存中删除,使用stats 统计时curr_itme 还有其值
当某个数据去占用它的位置时,当做空的占用
当使用get获取它的值得时候先判断是否过期,如果过期返回null,并将其清空,curr_item就会减少
所以memcache的过期并不是立即删除只是让用户看不到这个数据,这样做的节省了cpu的时间和检测成本
memcache的数据踢出机制lru
当122k的slab class 都满了,现有一个120k的数据要存储会挤掉谁?
lru:最近最少使用原则
当某个单元被请求时,维护一个计数器,通过计数器判断,谁最近最少被使用 ,就把谁踢出去
即使设置为永久有效也会被踢出来
0 0
- memcache 内存管理机制
- memcache内存管理机制
- memcache学习——内存管理机制slab allocator
- 内存管理机制
- 内存管理机制
- 内存管理机制
- 内存管理机制
- 内存管理机制
- 内存管理机制
- 内存管理机制
- 内存优化:内存管理机制
- java内存管理机制
- 第一章:内存管理机制
- .Net内存管理机制详解
- Linux内存管理机制研究
- Java内存管理机制
- .net内存管理机制
- 浅析C++内存管理机制
- Android Battery 开发(三) BatteryService
- ios runtime 动态属性objc_setAssociatedObject和objc_getAssociatedObject
- AFNetworking请求服务器数据,有空指针导致请求数据报错。
- 2016一级建造师水利水电考点讲解:测量仪器的使用
- Java学习-2天
- memcache内存管理机制
- Ant的运用
- java队列和栈的使用
- Java学习-3天
- JavaBean mvc 三层架构
- mysql中datetime比较大小问题
- char与wchar_t的区别 ANSI Unicode
- CQOI2016 路由表Route - Trie
- 自定义imageview使头像变圆