【发布时间】:2012-07-19 21:05:24
【问题描述】:
我有一个具有约 40 GB 数据库的 Google App Engine 项目,但使用 NDB 的读取性能很差。我注意到我的内存缓存大小(在仪表板上列出)只有大约 2 MB。我希望 NDB 隐含地更多地使用 memcache 来提高性能。
有没有办法调试 NDB 的 memcache 使用情况?
【问题讨论】:
标签: google-app-engine memcached app-engine-ndb
我有一个具有约 40 GB 数据库的 Google App Engine 项目,但使用 NDB 的读取性能很差。我注意到我的内存缓存大小(在仪表板上列出)只有大约 2 MB。我希望 NDB 隐含地更多地使用 memcache 来提高性能。
有没有办法调试 NDB 的 memcache 使用情况?
【问题讨论】:
标签: google-app-engine memcached app-engine-ndb
这个页面很好地解释了 NDB 缓存的工作原理: https://developers.google.com/appengine/docs/python/ndb/cache
我要检查的第一个地方是策略设置,以确保您实际上是在告诉 NDB 缓存您想要缓存的内容:https://developers.google.com/appengine/docs/python/ndb/cache#policy_functions
【讨论】:
这个问题的表述相当糟糕——读取性能差的原因有很多,其中大多数是由于应用程序编写不佳,但您没有告诉我们有关该应用程序的任何信息。
唯一可以回答的问题是最后一个问题:“有没有办法调试 NDB 的 memcache 使用情况?”除了 Sologoub 的指针之外,我还建议使用 Appstats 来查明是否确实进行了预期的 memcache 调用。阅读 NDB 源代码,尤其是 context.py 中的 get() 和 put(),可能也会有所帮助。
【讨论】: