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