【发布时间】:2012-03-27 02:18:24
【问题描述】:
我们正在运行一个执行财务建模的网站,memcache 需要一段时间来构建它的缓存。例如,1 周后,命中数仅为48%,使用的缓存为2GB(已分配5GB)。由于我们不想在服务器崩溃或需要重新启动时丢失该缓存,因此我们希望将其保存在某个地方。
问:将memcache 缓存的内容永久存储(并恢复该内容)的最佳选择是什么?
到目前为止,我们还没有看到 memcache 达到% 的命中率没有提高的程度。我们知道我们很快就可以通过300MB 的数据获得30% 命中,这对应于共享内容的缓存。之后,对象变得更大并且创建频率降低。通过查看我们的 munin 图,我想说我们可以在 2 到 3 个月内达到我们最好的% 命中。我真的认为我们有理由保存我们的 memcache 数据。
仅供参考,我没有添加显示命中/未命中的% 的图表,因为它的发展速度太慢以至于无法真正阅读。
【问题讨论】:
-
您为 memcached 分配了多少 RAM?是你提到的完整的2GB吗?如果缓存已满且命中率较低,则可能是缓存空间不足,memcached 正在清除最旧的条目(可能仍然有效)。
-
文件系统或 Berlkey-DB 会更好。您也可以使用
Redis,它类似于memcache,但也会自动处理持久存储。 -
@galador:我们已将
5GB分配给内存缓存,现在它在48%命中,使用2GB。 -
您应该衡量达到 48% 所需的时间,以及它所达到的最大时间是多少?如果需要 10 分钟才能达到 45% 并且只达到 50%,那么您将浪费时间来增加持久性。
-
@DampeS8N:查看带有 munin 数据的已编辑问题。
标签: php database file memcached