【问题标题】:Memcached performance drops with to-be-cached value sizes being smallMemcached 性能下降,待缓存值大小较小
【发布时间】:2012-08-15 01:17:02
【问题描述】:

我刚开始使用 memcached。我们通过睡衣代理服务器使用 spymemcached java 客户端(全部使用默认设置并分配 1024 mb 内存)。将程序设置为访问 memcached 非常简单明了,但我有一个观察结果:

当缓存值大小下降到某个点(在我的情况下:大约 1450 字节)时,性能会急剧下降(每次检索从 4 毫秒到 200 毫秒)。

这是否意味着我要缓存的值必须高于特定大小?我怎么能确定这样的尺寸? 提前致谢!

大卫

【问题讨论】:

  • 你从哪里测量这些延迟?

标签: java memcached spymemcached


【解决方案1】:

Nagle 的算法(TCP 延迟发送小数据包一段时间)会不会是问题所在?

【讨论】:

    【解决方案2】:

    虽然我不太了解 memcached 的内部结构,但在我看来它与内存分配管理有关。 Memcached 维护不同块大小的内存池。 http://www.mikeperham.com/2009/06/22/slabs-pages-chunks-and-memcached/ 。因此,大多数情况下您都面临着内部碎片,而 memcached 必须查看两个块来查找您的数据。

    【讨论】:

    • 我明白,但如果是这样的话,当缓存值大小增加时,性能应该会下降而不是提高,对吧?
    猜你喜欢
    • 2011-03-05
    • 2017-06-07
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多