2016-09-10 3 views
1

我々の自動スケーリングパラメータは、いくつか他のものが利用可能なときに、自動拡張されたGoogle App Engineインスタンスに大きな遅延が発生するのはなぜですか?次のようにapp.yamlを内

automatic_scaling: min_idle_instances: 3 max_idle_instances: automatic max_pending_latency: 30ms max_concurrent_requests: 20

結果は3つの常駐インスタンスと、典型的に2-6動的インスタンス(トラフィックに依存する)であるが、インスタンス間の負荷分布が非効率的と思われます。下のスクリーンショットでは、大部分のリクエストを含む1つのインスタンスと、大規模な21秒のレイテンシ(最後の1分間)があります。

これは、これらの高い待ち時間を説明するために私たちの設定に何か間違いがなければならないことを示しています。

GCPやApp Engineでこのような問題が発生したことがありますか?

enter image description here

+0

インスタンス間のトラフィックの負荷分散は期待できません。http://stackoverflow.com/questions/37188781/in-google-app-engine-only-one-instance-handling-most-of-requestsを参照してください。 –

答えて

3

アイドルインスタンスが現在の負荷のバランスをとるために使用されません。新しいダイナミックインスタンスがスピンアップしている間、それらはギャップを埋める。あなたの設定では、1つまたは2つのアイドル状態のインスタンスと、最小および最大の保留待ち時間で試してみる価値があります。

待機待ち時間は、要求がインスタンスによって処理される前にキューに保持されている時間によって測定されます。スクリーンショットに表示される待ち時間は、リクエストとレスポンスの間の時間です。 1回のリクエストで21秒かかる場合は、このようになります。保留中の待ち時間はまだ30ミリ秒以下になる可能性があります。

あなたのログをチェックして、どのリクエストに時間がかかり、おそらくそれを小さな仕事の塊に分割するのかを確認する必要があります。多くの小規模な仕事は、巨大な仕事よりもはるかに優れています保留中のレイテンシも小さなジョブがたくさんあるため、アプリが適切に拡大縮小されます。

関連する問題