这货一般不满的时候完全OK,过载满了就有坑等你去跳了,以下内容摘录自:
memcache的内存管理与删除机制
Memcache中LRU删除机制
在操作系统系统中,常用的删除机制有fifo、lru删除
lru:least recently used 最近最少使用
fifo:first in,first out 最先插入,最先离开
原理: 当某个单元被请求时,维护一个计数器,通过计数器来判断最近谁最少被使用。
注: 即使某个key 是设置的永久有效期,也一样会被踢出来!
即–永久数据被踢现象。
以下内容摘录自:
Memcache 内存分配策略和性能(使用)状态检查
因为memcached的内存分配策略导致一旦memcached的总内存达到了设置的最大内存,表示所有的slab能够使用的page都已经固定,这时如果还有数据放入,将导致memcached使用LRU策略剔除数据。而LRU策略不是针对所有的slabs,而是只针对新数据应该被放入的slab,例如有一个新的数据要被放入slab 3,则LRU只对slab 3进行,通过stats items就可以观察到这些剔除的情况。
注意evicted_time:并不是发生了LRU就代表memcached负载过载了,因为有些时候在使用cache时会设置过期时间为0,这样缓存将被存放30天,如果内存满了还持续放入数据,而这些为过期的数据很久没有被使用,则可能被剔除。把evicted_time换算成标准时间看下是否已经达到了你可以接受的时间,例如:你认为数据被缓存了2天是你可以接受的,而最后被剔除的数据已经存放了3天以上,则可以认为这个slab的压力其实可以接受的;但是如果最后被剔除的数据只被缓存了20秒,不用考虑,这个slab已经负载过重了。
未经允许不得转载:阿藏博客 » memcache的内存管理与删除机制-摘录