当memcached只有40%满时,我看到了驱逐。怎么可能?
答案 0 :(得分:13)
通过运行memcached统计数据来检查板坯尺寸。看起来您的slab不是均匀填充的,即使缓存未满,也会导致驱逐。
答案 1 :(得分:3)
我向this question写了一个很长的解释,这也适用于此。
答案 2 :(得分:1)
Memcached根据不同内存块的slab存储数据。如果已经分配了不同的内存块,那么即使其他内存块中没有数据,最近使用的最小算法也会在平板上运行并逐出数据。
因此,数据大小的大量分布可能导致此问题。 通过让多个memcached实例运行并将其用作分布式系统,可以减少问题。