低/散発的な負荷のアプリケーションがあり、新しいインスタンスの開始によって発生する遅延(約10秒)は、要求の処理に必要な時間をはるかに超えています。通常、500ミリ秒未満で完了します。
そのため、新しいインスタンスの生成(「リクエストの読み込み」)によって引き起こされるレイテンシの急上昇を回避するために、次の2つの設定を行いました。
- 最小アイドルインスタンス=最大アイドルインスタンス=1に設定して、常に1つのインスタンスが実行されていることを確認します(1つのインスタンスでトラフィックを処理できます)。と
- 保留中のレイテンシを15秒に設定します。これにより、GAEは、新しいインスタンスを開始するのではなく、1つの常駐インスタンスが解放されるまで最大15秒待機します。
請求が有効になります。ただし、GAEは引き続き新しいインスタンスを開始するため、許容できない遅延が発生します。何故ですか?
ログでは、リクエストが常に500ミリ秒未満で返されることがわかります。リクエストが最大15秒キューに入れられる方法はありません。
これについて私は何ができますか?どんな助けでも大歓迎です。
更新:私の解決策は、5分ごとにリクエストを発行するcronジョブを設定して、常に動的インスタンスを実行することでした。結局のところ(以下の回答を参照)、アイドル状態のインスタンスは、99%の時間で発生する低負荷のシナリオではなく、クレイジーな負荷の急増のために予約されています。