【问题标题】:Memcached eviction when cache is 40% full缓存 40% 满时 Memcached 驱逐
【发布时间】:2012-06-18 19:42:11
【问题描述】:

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

【问题讨论】:

  • 嗯,你在什么系统上使用 memcached? memcached 是否有直接映射的内存实现?我不明白为什么会……但谁知道呢。
  • 我们有一个运行在 Redhat linux 上的 4 个节点的集群。不确定您所说的直接映射内存实现是什么意思。但是我们使用的是 membase,它将 memcached 作为一个包提供。

标签: memcached


【解决方案1】:

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

【讨论】:

  • 这正是我们遇到的情况。默认存储桶中的一块板已满并导致驱逐。我们为那些几乎相同大小的对象创建了一个新的存储桶,我们不再有这个问题了。谢谢大家的回答。
【解决方案2】:

我给this question写了一个很长的解释,这同样适用于这个。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2017-06-17
      • 2018-03-23
      • 2015-11-07
      • 2019-03-17
      相关资源
      最近更新 更多