【问题标题】:Shared memcache vs. dedicated memcache & quota calculation共享内存缓存与专用内存缓存和配额计算
【发布时间】:2018-04-24 14:38:03
【问题描述】:

我有一个在内存缓存中存储约 20000 个条目的应用程序。每个条目都是一个带有一个字符串和两个整数的可序列化。我将过期时间设置为 6 小时。

所以我使用的是共享/免费内存缓存。它似乎只存储了 ~5000 个条目-> ~7mb。最旧的条目总是只有几分钟的历史。这是为什么呢?

然后我想:让我们切换到专用的内存缓存。然后缓存运行良好,它存储了所有条目,最早的条目是 6 小时,一切都如预期的那样。配额除外。几个小时后,它说我已经使用了 18 个“GB 小时”。

我的总缓存大小约为 11mb。所以我猜成本会是 ($0.12 / Gbyte / hr) -> $0.12*~0.01Gb*24hrs per day,也就是~$0.03。

我做错了什么?我的计算错了吗?我是否误解了“Gbyte hours”的含义?

【问题讨论】:

    标签: google-app-engine caching quota


    【解决方案1】:

    AppEngine 专用内存缓存按 1GB 块定价,而不是根据您在专用分配的 1GB 存储中使用的内容定价。看这里https://developers.google.com/appengine/docs/adminconsole/memcache

    您的专用内存缓存每天将花费您 2.88 美元。

    “专用”为您提供空间,但每秒操作数(每秒 10,000 次操作)。

    关于您在共享(和免费)memcache 上的体验,您在这里看到的并不是您通常所期望的。不幸的是,您很可能在 AppEngine 集群上,其中一些其他应用正在滥用共享内存缓存。

    【讨论】:

    • 知道了!对于集群的事情:我可以切换我的实例正在运行的集群吗?或者做点别的什么?
    • 不,你随心所欲地想知道还有谁在和你一起使用共享内存缓存。而且由于它是免费的,你可以打赌其他人也在尽可能多地使用它。有很多报告说共享内存缓存有点糟糕。我希望如果你有大量的流量,它会更好地为你工作,如果你的流量很少,它会不断地被清除,因为这正是 memcache 应该工作的方式。
    • 我将我的应用程序切换到了专用的 memcache,所以我只能告诉你我们之前为提高 memcache 内容的粘性做了什么:我注意到的是先做一个 put 然后再做一个 get on the同样的关键是使这把钥匙更粘。如果你做了一个 put,但不久之后没有得到数据,你会降低你的缓存命中率。
    【解决方案2】:

    专用内存缓存按千兆字节计费。所以任何小于 1GB 的东西都按 1GB 计费,你可能让它运行了 18 小时。是的,有点烂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 2011-06-10
      • 2020-06-29
      • 2010-12-21
      • 1970-01-01
      相关资源
      最近更新 更多