GAEは動的にサービスを自動または基本的なスケーリングのためではなく、手動でのスケーリングのために設定されている場合にのみ、自動的に複数のサービスインスタンスを起動します。
Scaling dynamic instancesから:App Engineのスケジューラは、保留中の要求キューに要求を入れ、既存のインスタンス(アイドルであるか 同時要求を受け入れ、1のいずれか)で、それぞれの新しい要求にサービスを提供するかどうかを決定
、その要求の新しいインスタンスを開始してください。決定は、アカウント にあなたのアプリケーションが要求を務めて たどのように迅速に利用できるインスタンスの数、(そのレイテンシー)を取り、そしてどのくらいの時間が 新しいインスタンスをスピンアップするのにかかります。
各インスタンスには、着信要求用の独自のキューがあります。 App Engineは、各インスタンスのキューで待機しているリクエストの数を監視します。 App Engineは、アプリケーションのキューが増加による負荷に 長すぎる取得していることを検出した場合は、自動的にその負荷を処理する アプリケーションの新しいインスタンスを作成します。
実際の動作は、それぞれのスケーリングモードの構成パラメータによって異なります。Change auto scaling performance settingsおよびScaling elementsを参照してください。そして、もちろん、あなたのアプリケーションコードがこれらの要求にどのくらい正確に反応するかについて。正確な数字を得ることは不可能ではないにしても非常に困難です。
しかし、あなたが行うことができます実際にそれを測定しようとすることです:あなたが見ながらテスト・プログラムは、要求の代表的な種類で、徐々に増加し、要求負荷で、あなたのアプリにアクセスしている、2つの別々のブラウザウィンドウで:
- (新しいインスタンスが開始されたことを示す情報メッセージを伴う要求ログを探したり、インスタンスページをチェックして)
- ダッシュボードのサマリーに関連する画面が表示されますインスタンスが開始されたときのアプリケーションの統計情報
アプリのrequest logsにチェックを入れて、処理の程度を確認することもできます。それらの中には、StackDriverでのappstatsのようなトレースを見ることさえできます。 appstatsを有効にして、のすべての数字を取得することもできます。お客様のリクエスト。
これらの図から、「インスタンスが処理できる」という前提に基づいて、今回はインスタンスが要求キューの深さが絶えず増加するのを防ぐために十分に高速に処理できることを前提としていますインスタンスが強制終了されます(これは、新しいインスタンスの動的な起動を引き起こすレベルよりもはるかに高い負荷レベルと思われます)。
たとえば、でのリクエストの1つのタイプを処理する場合、はF1インスタンスでほとんど50ms以下の時間を費やします。 threadsafe: true
が設定されているので、一部のリクエストの処理が重複する可能性があります(どのくらい - 私は全く考えません)。だから私は、F1インスタンスが72000の要求のを1時間あたりの上に処理できると推定できます。しかし、私も平均1秒かかるという要求があります。同じインスタンスでは、1時間に3600件の要求しか確実に処理できません。あなたが参照してください球場値は本当に多くの意味をしません。彼らはあるので、ダッシュボードの数字は、推定よりも優れているIMHOの測定値は、アプリケーションの要求の種類とその実際取り扱いの本当範囲/スプレッド全体で平均理由です
。たとえば、マルチスレッドのゲインが含まれます。
私はあなたにこれについての回答があるとは思わない。それは、あなたが何をしているのか、そして2.あなたがパフォーマンスをどれだけ気にしているのかによって異なります。 – natario
「あなたは別のインスタンスが必要ですか?」と正確に何を意味していますか? –
https://cloud.google.com/appengine/pricing –