【发布时间】:2010-09-26 08:05:41
【问题描述】:
有没有人在以下方面遇到过 memcached 限制:
缓存存储中的对象 - 是否存在性能下降的点?
- 分配的内存量 - 可以使用的基本数字是什么?
【问题讨论】:
-
在相当小的规模上使用它,所以我真的不能说,但考虑到它应该相当大规模地扩展,你担心什么规模? (可能在已知的可用性范围内)
标签: caching memcached distributed-caching
有没有人在以下方面遇到过 memcached 限制:
【问题讨论】:
标签: caching memcached distributed-caching
我可以为您提供一些关于我们环境的指标。我们在 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 客户端
【讨论】:
我不能保证这种说法的准确性,但在几个月前的一次 linux/开发者聚会上,一位工程师谈到了他的公司如何将 memcache 缩减为使用 2GB 块,每个 memcache 盒 3-4 个。他们发现吞吐量很好,但是对于非常大的 memcache 守护进程,他们的未命中率增加了 4%。他说他们无法弄清楚为什么会有差异,但决定只使用有效的方法。
【讨论】: