約 40 GB のデータベースを持つ Google App Engine プロジェクトがあり、NDB での読み取りパフォーマンスが低下しています。memcache のサイズ (ダッシュボードに表示されている) が約 2 MB しかないことに気付きました。パフォーマンスを向上させるために、NDB が暗示的に memcache をより多く使用することを期待しています。
NDB の memcache の使用をデバッグする方法はありますか?
約 40 GB のデータベースを持つ Google App Engine プロジェクトがあり、NDB での読み取りパフォーマンスが低下しています。memcache のサイズ (ダッシュボードに表示されている) が約 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