7

当 memcached 只有 40% 满时,我看到了驱逐。这怎么可能?

4

3 回答 3

14

通过运行 memcached stats 检查slab 大小。看起来您的平板没有均匀填充,即使缓存未满,也会导致驱逐。

于 2012-10-26T18:58:33.573 回答
3

我对这个问题写了一个很长的解释,这同样适用于这个问题。

于 2013-03-12T21:45:26.830 回答
1

Memcached根据不同内存块的slab存储数据。如果已经分配了不同的内存块,那么最近最少使用的算法在slab上运行并将数据逐出,即使其他内存slab中没有数据。

因此,数据大小的大分布可能是造成此问题的原因。通过运行多个 memcached 实例并将其用作分布式系统,可以减少问题。

于 2012-06-20T11:49:35.027 回答