0

そこで、この Django アプリケーション (具体的には Django Rest Framework) を Google のアプリ エンジンに搭載しました。ほとんどの場合、正常に動作しますが、たまに奇妙な遅延 (4 ~ 5 秒から 10 ~ 20 秒まで...) が発生する場合を除いて、この遅延は、ユーザーの認証中に発生し、ビュー自体にアクセスする前に発生します。私はすでに2つの理論を取り消しました:

  • 新しいインスタンスの開始と設定による遅延: Python インスタンスのウォームアップ オプションを既に使用しています ( https://cloud.google.com/appengine/docs/python/config/appconfig#Python_Warmup_requests )
  • Cloud SQL 関連の遅延。アプリケーションは Cloud SQL と通信してユーザーを認証しますが、すべての SQL クエリをログに記録しましたが、クエリが実行される前に遅延が発生します。

それが GAE のアーキテクチャに関係なく、RPC によって制限されていない場合、何が起こっているのでしょうか? 私はcProfileをプラグインしました。これが私たちに伝えることができるものです(私はwsgiハンドラーの周りにcProfileをラップしました):GAE のコンソール バックエンド内の cProfile サンプル

真ん中の行に注意してください: 約 10000 回の "len" 呼び出し。この同じプロファイリング レポートには、通常、このような行がありません。このばかげた遅延を伴うこれらの要求だけに、これらの 10000 の「len」呼び出しが含まれます。

これは、Cloud SQL への非常に長いクエリを示している可能性がありますが、前に述べたように、ログに記録されたクエリ. または、SQL ロギングに問題がある可能性があります... たぶん。

4

0 に答える 0