Site icon 时鹏亮的Blog

memcache的内存管理与删除机制-摘录

请知悉:本文最近一次更新为 7年 前,文中内容可能已经过时。

这货一般不满的时候完全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的内存管理与删除机制-摘录》相关的博文:

Exit mobile version