为什么不使用memcached使用其可用内存?

我们的memcached.conf有以下指令:

-m 7168 

而服务器有8GB的RAM。 但是,尽pipe使用量很大,但内存使用率永远不会超过2GB:

 # free total used free shared buffers cached Mem: 8178532 2067308 6111224 0 109092 434916 -/+ buffers/cache: 1523300 6655232 Swap: 0 0 0 

我们缺less什么?

通常,memcached只使用尽可能多的内存,即使给出了最大限制。 它不像Linux系统缓冲区那样通过devise可以扩展来填充所有可用内存以提高系统性能。

您可以telnet到您的memcache并发出命令

 stats stats slabs stats malloc 

这应该给你一个关于你的memcache中有多less个对象的大小以及它们占用多less内存的想法。

如果memcached没有足够的内存来存储所有的对象,它将会逐出旧对象,这会增加由slabs返回的“逐出”计数器。 如果“驱逐”为0,那么你的memcache有足够的内存。

您可以在http://lzone.de/cheat-sheet/memcached的 “memcached作弊表”中find许多其他有用的命令和解决scheme