2

是否有人在以下方面遇到过 memcached 限制:

  • 缓存存储中的对象数量 - 是否存在性能下降的点?

  • 分配的内存量 - 使用的基本数字是什么?
4

2 回答 2

3

我可以给你一些关于我们环境的指标。我们在 12 个机器上运行用于 Win32 的 memcached(作为数据库非常重的 ASP.NET 网站的缓存)。这些盒子每个都有自己的其他职责;我们只是将 memcached 节点分布在所有有空闲内存的机器上。每个节点最多有 512MB 由 memcached 分配。

我们的节点平均有 500 - 1000 个连接打开。一个典型的节点在缓存中有 60.000 个项目,每秒处理 1000 个请求(!)。所有这些运行都相当稳定,几乎不需要维护。

我们遇到了两种限制: 1. 客户端机器上的 CPU 使用。我们使用 .NET 序列化在 memcached 中存储和检索对象。无缝运行,但 CPU 使用率会随着我们的负载而变得非常高。我们发现有些对象最好先转换为字符串(或 HTML 片段)然后缓存。2. 我们遇到了一些问题,memcached box 的 TCP/IP 连接用完。分布在更多的盒子上有所帮助。

我们运行 memcached 1.2.6 并使用来自http://www.codeplex.com/EnyimMemcached/的 .NET 客户端

于 2009-02-10T17:15:12.207 回答
1

我不能保证这种说法的准确性,但在几个月前的一次 linux/开发者聚会上,一位工程师谈到了他的公司如何将 memcache 缩减为使用 2GB 块,每个 memcache 盒 3-4 个。他们发现吞吐量很好,但是对于非常大的 memcache 守护进程,他们的未命中率增加了 4%。他说他们无法弄清楚为什么会有差异,但决定只使用有效的方法。

于 2008-12-11T02:19:44.397 回答