如何修复高memcached浪费的空间?

时间:2012-07-09 21:04:19

标签: caching memcached sysadmin

我们使用相当大(20GB),非常活跃(> 92%命中率)的Memcache群集,并且看到超过10%的浪费空间。

驱逐率极低(0.1 /秒),回收率持平--0。

这是值得关注的问题,是否有任何可以做的事情 - 甚至是定期的 - 以确保不会占用现有的可用空间?

1 个答案:

答案 0 :(得分:2)

我最近对memcached群集的空间使用情况进行了分析,大约是这个大小的两倍。

我们发现memcached通常具有“浪费”的空间,因为它在各种尺寸的板坯中都是空的夹头,而这些板块根本没有填充。

这似乎是memcached<中的slab分配这一事实的副作用。 1.4.11是静态的,某个板坯尺寸的内存仅从相同尺寸的板坯中逐出(一旦分配)。

http://code.google.com/p/memcached/wiki/ReleaseNotes1411

从1.4.11开始,引入了一个slab重新分配的功能,这个功能被认为是允许LRU从其他slab类中驱逐对象以在需要的slab类上使用。

如果驱逐率不断被驱逐并重新分配到不同的平板类别中,我不确定将会发生什么。

鉴于驱逐率较低,除非您遇到性能问题,否则我不会过分关注。

希望这有帮助。