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