我刚开始使用memcached。我们通过Pajamas Proxy服务器使用spymemcached java客户端(所有服务器都默认设置并分配1024 MB内存)。设置程序以访问memcached非常简单明了,但我有一个观察结果:
当缓存的值大小下降到某一点时(在我的情况下:大约1450字节),性能急剧下降(每次检索从4毫秒到200毫秒)。
这是否意味着我想要缓存的值必须超过特定大小?我怎样才能确定这样的尺寸? 提前谢谢!
大卫
答案 0 :(得分:1)
Nagle的算法(TCP推迟发送小数据包一段时间)会成为问题吗?
答案 1 :(得分:0)
虽然我对memcached内部结构知之甚少,但在我看来它与内存分配管理有关。 Memcached维护不同块大小的内存池。 http://www.mikeperham.com/2009/06/22/slabs-pages-chunks-and-memcached/。因此,大多数情况下,您面临内部碎片,而memcached必须查看两个块来查找您的数据。