2017-02-22 1 views
0

私は、着信(REST)リクエストでクラウドインスタンスを起動させ、処理を行ってから結果を取得したいというデータ処理アプリケーションを構築しています。リクエストごとに新しいインスタンスを起動するようにGAEを設定できますか?

  1. 送信要求
  2. インスタンスへのインスタンスのプロセス(すべてのインスタンスのCPU上〜100%負荷)
  3. 投票サービスを実行要求
  4. 開始インスタンスを受信します。一般的に、それはこのようなものになるだろうステータスのインスタンスで
  5. インスタンスからの結果を取得
  6. シャットダウンインスタンス

私はjcloudsのようなものを使って手動でインスタンス管理を行うことを計画していましたが、GAEがこのようなことを行うように設定できるかどうか疑問に思っています。

処理サービスをGAEに設定している場合は、すべての着信要求(または現在のインスタンスがCPU使用率が100%の場合)ごとに新しいインスタンスが起動されるようにすることはできますか?

答えて

0

Scaling dynamic instancesから...のみ(すなわち1-4及び7)インスタンス管理を参照:

App Engineのスケジューラは、(既存のインスタンスで、それぞれの新しい要求 にサービスを提供するかどうかを決定しますアイドル状態であるか、 同時要求を受け入れるかのいずれか)、要求を保留中の要求キューに入れるか、または その要求の新しいインスタンスを開始します。この決定には、利用可能なインスタンスの数が であり、アプリケーションにはどれくらいの速さで要求が処理されたか(待ち時間)、新しいインスタンスが スピンアップするのにかかる時間が考慮されます。

各インスタンスには、着信要求用の独自のキューがあります。 App Engine は、各インスタンスのキューで待機しているリクエストの数を監視します。 アプリケーションエンジンが、負荷の増加によりアプリケーションのキューが長すぎると検出した場合は、その負荷を処理するアプリケーションの新しいインスタンスを自動的に作成します( )。

また、リクエストのボリュームが になると、App Engineはインスタンスを逆に拡大します。このスケーリングは、アプリケーションの のすべてのインスタンスが効率を最大限に引き出し、有効なコストとして の有効性を確保するのに役立ちます。

のでscaling configurationに私は(デフォルト)automatic_scalingを維持したいと一緒にプレイ:App Engineはべきであるとの時間の最大量を

  • max_pending_latency が、新しいインスタンスを開始して を処理する前に、保留中のキューで待機するように要求します。デフォルト値は "30ms"です。

    • 最大値が低いということは、App Engineが保留中のリクエストに対して新しいインスタンスを早期に開始し、パフォーマンスは向上しますが、ランニングコストが上昇することを意味します。
    • 最大値が高いということは、要求が処理されるまでにユーザーが待機する可能性が高いことを意味します(保留中の要求があり、アイドル状態のインスタンスには が存在しない場合)。

App Engineは、それを処理するための新しいインスタンスを起動する前に、保留キューで待機 に要求を許可する必要があることを時間の最小量。

  • 最小値が低いということは、すべての既存インスタンスがアクティブな場合に、要求が保留キューに費やす時間が少なくなければならないことを意味します。これにより、パフォーマンスは向上しますが、アプリケーションの実行コストが増加します。
  • 最小値が高いということは、既存のインスタンスがすべてアクティブな場合に要求が保留されたままになることを意味します。これにより、ランニングコストは削減されますが、ユーザーが要求を処理するまで待つ必要がある時間は、 に増加します。
  • Change auto scaling performance settingsでも

参照:

  • 分保留の待ち時間からMin Pending Latencyを上げることは要求 がより多くのために保留されていない限り、新しいインスタンスを起動しないようにApp Engineのスケジューラに指示指定時刻。すべてのインスタンス がビジー状態の場合、このしきい値に達するまで、保留中のキュー でユーザーが要求する要求を待機する必要があります。この設定に高い値を設定すると、起動するインスタンスが少なくて済みますが、負荷が増えている間にユーザーが表示できるレイテンシーが高くなる可能性があります。

あなたが開始される新しいインスタンスを引き起こす要求のための待ち時間を短縮したい場合にはまた、Warmup requestsを見てみたいことがあります。

関連する問題