2017-07-16 6 views
0

azureで処理されるメッセージ数が600万のキューがあります。私はキュートリガを持つアプリケーションプランで実行している関数のアプリケーションを持っています。 CPUが高過ぎると、アプリケーションサービスプランは追加のインスタンスにスケールアウトされます。私のアプリケーションプランは、約10〜20%のCPU使用率で動作しています。以前は、CPUが急増し、アプリのサービスプランがスケールアウトする原因となった、関数内のネットワークコールによって機能がブロックされていた問題がありました。私は非同期コードを使用してこれを解決したので、今私はこの低いCPU使用量と非常に高速の関数実行時間を持っています。私のazure関数のアプリケーションが、キューのトリガーがアプリケーションサービスプランでスケールアウトされていない

現在、約1kメッセージが1分処理されているのを見ています。時には2kまで少し上がってから戻ってくることもあります。私の機能が拡大しない理由はありますか?

+1

CPU時間ではなくキュー長でスケールするべきではありませんか? – evilSnobu

答えて

2

あなたの質問にも答えを保持している:CPUが高すぎるとき

アプリサービスプランは追加のインスタンスにスケールアウトします。

マイアプリ計画は約10〜20%のCPU使用率を実行しています。

長い話題です:間違った評価基準を設定していると思います。 @ evilSnobuが示唆しているように、キュー内のメッセージ数を増やすことができます。面白いかもしれません消費計画に関するいくつかの追加情報:
Azureの機能をスケーリング

ランタイムは、イベントの発生率を監視し、スケールアウトやスケールダウンするかどうかを判断するために、スケールコントローラと呼ばれるコンポーネントを使用しています。スケールコントローラは、各トリガタイプにヒューリスティックスを使用します。たとえば、Azure Queueストレージトリガーを使用している場合は、キューの長さと最も古いキューメッセージの経過時間に基づいてスケーリングされます。
から取得しましたAzure Functions Consumption and App Service plans

関連する問題