ストリーミング ユニット (SU) は、Stream Analytics ジョブを実行するコンピューティング リソースを表します。 SU の数を増やすと、より多くの CPU リソースとメモリ リソースがジョブに割り当てられます。 Stream Analytics には、ジョブの負荷を処理するために適切な数の ストリーミング ユニット (SU) を実行するために使用できる 2 種類のスケーリングが用意されています。
この記事では、Azure portal で、Stream Analytics ジョブのこれらの異なるスケーリング方法を使用する方法について説明します。
Stream Analytics でサポートされている 2 種類のスケーリングは、"手動でのスケーリング" と "カスタム自動スケーリング" です。
手動スケールを使用すると、ジョブのストリーミングユニットを固定された数で維持し、調整することができます。
"カスタム自動スケーリング" を使用すると、ジョブのストリーミング ユニットの最大数と最小数を指定し、ルール定義に基づいて動的に調整することができます。 カスタム自動スケーリングでは、構成済みのルール セットが調べられます。 その後、負荷の増加に対処するために SU を増加することを決定するか、コンピューティング リソースがアイドル状態の場合は SU の数を減らすことを決定します。 Azure Monitor での自動スケーリングの詳細については、「Microsoft Azure の自動スケールの概要」を参照してください。
Note
ジョブの状態に関係なく手動スケールを使用できますが、カスタム自動スケールを有効にできるのは、ジョブが running 状態の場合のみです。
カスタム自動スケーリングの例としては次のような場合があります。
- 過去 2 分間、ジョブの平均 SU% 使用率が 75% を超えている場合、ストリーミング ユニットを増加する。
- 過去 15 分間、ジョブの平均 SU% 使用率が 30% を下回っている場合、ストリーミング ユニットを削減する。
- 営業時間中はストリーミング ユニット数を増やし、営業時間外は削減する。
自動スケーリングの制限
すべての Stream Analytics ジョブは、1/3、2/3、および 1 SU V2 の間で自動スケーリングできます。 1 個を超える SU V2 に自動スケーリングするには、ジョブに並列または驚異的並列トポロジが必要です。 1 以下のストリーミング ユニットで作成された並列ジョブは、パーティションの数に基づいて、そのジョブの最大 SU 値に自動スケーリングできます。
Stream Analytics ジョブのスケーリング
まず、次の手順に従って、Azure Stream Analytics ジョブの Scale ページに移動します。
- Azure ポータルにサインインします。
- リソースの一覧で、スケールする Stream Analytics ジョブを見つけて開きます。
- ジョブ ページの [構成] 見出しで、 [スケーリング] を選択します。
- [ 構成] には、スケーリングの 2 つのオプションが表示されます。 手動スケール と カスタム自動スケールです。
手動でのスケーリング
この設定を使用すると、ジョブのストリーミング ユニット数を一定数に設定できます。 ジョブの作成時の SU の既定の数は 1 です。
ジョブを手動でスケーリングするには、次の手順を行います。
- [手動でのスケーリング] をまだ選択していない場合は、選択します。
-
スライダーを使用して、ジョブの SU 数を設定するか、ボックスに直接入力します。 ジョブの実行中は、特定の SU 設定に制限されます。 制限は、ジョブの構成によって異なります。
- ツール バーの [保存] を選択して設定を保存します。
カスタム自動スケーリング - 既定の条件
ストリーミング ユニットの自動スケーリングは、条件を使用して構成できます。
既定のスケール条件は、他のスケール条件が一致しない場合に実行されます。 そのため、ジョブの [既定] の条件を選択する必要があります。 既定の条件の名前を選択するか、事前設定されている Auto created scale conditionのままにすることができます。
次のスケール モードのいずれかを選択して、[既定] の条件を設定します。
- [メトリックに基づいてスケーリングする] (CPU やメモリ使用量などのメトリック)
- [特定のストリーミング ユニット数にスケーリングする]
Note
[既定] の条件では、[スケジュール] を設定することはできません。 既定の条件は、他のスケジュール条件が満たされていない場合にのみ実行されます。
メトリックに基づいてスケーリングする
次の手順は、SU (メモリ) 使用率が 75% を超えた場合にストリーミング ユニットを自動的に増やす (スケールアウトする) という条件を追加し、 SU 使用率が 25% を下回った場合にストリーミング ユニットを減らす (スケールインする) という条件を追加する方法を示しています。 増分は、1/3および2/3の分数単位から完全なストリーミング単位(1 SU V2)に至るまで行われます。 同様に、減分は、1 から 2/3、そして 1/3 への段階で行われます。
- [ スケール] で、[ カスタム自動スケール] を選択します。
- ページの [Default](既定) セクションで、既定の条件として [名前] を指定します。 鉛筆記号を選択してテキストを編集します。
- [スケール モード] には、 [メトリックに基づいてスケーリングする] を選択します。
-
[+ ルールの追加] を選択します。
- [スケール ルール] ページで、次の手順を行います。
-
[+ Add a rule]\(+ ルールの追加\) を再度選択し、[スケール ルール] ページで次の手順を実行します。
- [メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[SU % 使用率] が選択されています。
- 演算子としきい値を選択します。 この例では、これらは [より小さい] および [Metric threshold to trigger scale action](スケール操作をトリガーするメトリックのしきい値) の [25] です。
- [アクション] セクションで操作を選択します。 この例では、 [Decrease](減少) に設定されています。
- その後、 [追加] を選択します。
- この例では、全体的な SU 使用率が 25% を下回った場合、自動スケーリング機能によって名前空間のストリーミング ユニット数が削減されます。
- ストリーミング ユニットの 最小、 最大、および 既定 の数を設定します。 最小と最大のストリーミング ユニット数は、ジョブに対するスケーリング制限を表します。 [既定] の値は、スケーリングが失敗するまれな場合に使用されます。 既定値を、ジョブが現在実行されている SU の数に設定します。
-
[保存] を選択します。
Note
フラッピングとは、対立するスケール イベントが連続して発生するループ条件を指します。 フラッピングは、スケール イベントが反対のスケール イベントをトリガーしたときに発生します。 詳細については、この記事を参照してください。 この 記事では、自動スケールでのフラッピングとその回避方法について説明します。
特定のストリーミング ユニット数にスケーリングする
特定の数のストリーミング ユニットを使用するようにジョブをスケーリングするようにルールを構成するには、次の手順に従います。 既定の条件は、他のスケール条件が一致しない場合に適用されます。
- [ スケール] で、[ カスタム自動スケール] を選択します。
- [ 既定 ] セクションで、既定の条件の 名前 を入力します。
- [スケール モード] で、[特定のストリーミング ユニット数にスケーリングする] を選択します。
- [ストリーミング ユニット] で、ストリーミング ユニットの数を選択します。
カスタム自動スケーリング - スケーリング条件を追加する
前のセクションでは、自動スケール設定の既定の条件を追加する方法を示します。 このセクションでは、自動スケール設定に条件を追加する方法について説明します。 これらの既定以外の条件では、特定の曜日または日付範囲に基づいてスケジュールを設定できます。
メトリックに基づいてスケーリングする
- [スケール] で、[リソースのスケーリング方法の選択] オプションで [カスタム自動スケーリング] を選択します。
-
[Default](既定) ブロックの下で [Add a scale condition](スケーリング条件を追加する) を選択します。
- 条件の 名前 を入力します。
- [メトリックに基づいてスケーリングする] オプションが選択されていることを確認します。
- 全体的な SU % 使用率が 75% を超えたときにストリーミング ユニットを増やすルールを追加するには、[+ ルールの追加] を選択します。 前述の既定の条件に関するセクションの手順に従います。
- ストリーミング ユニットの 最小、 最大、および 既定 の数を設定します。
- (既定の条件ではなく) カスタム条件で、[スケジュール]、[タイムゾーン]、[開始日]、[終了日] を設定します。 条件の開始日と終了日を指定するか、1 週間の特定の日 (月曜日、火曜日など) を 繰り返す を選択できます。
- [開始日/終了日の指定] を選択した場合、条件が有効になる [タイムゾーン]、[開始日時]、[終了日時]を選択します。
- [Repeat specific days](特定の曜日に繰り返す) を選択した場合、条件を適用する曜日、タイムゾーン、開始時刻、終了時刻を選択します。
特定のストリーミング ユニット数にスケーリングする
- [スケール] で、[リソースのスケーリング方法の選択] オプションで [カスタム自動スケーリング] を選択します。
- [Default](既定) ブロックの下で [Add a scale condition](スケーリング条件を追加する) を選択します。
- 条件の 名前 を入力します。
- [スケール モード] で、[特定のストリーミング ユニット数にスケーリングする] オプションを選択します。
- ストリーミング ユニットの数を入力します。
-
[スケジュール] には、条件の開始日と終了日を指定するか、週と時刻の特定の日 (月曜日、火曜日など) を選択します。
- [開始日/終了日の指定] を選択した場合、条件が有効になる [タイムゾーン]、[開始日時]、[終了日時]を選択します。
- [Repeat specific days](特定の曜日に繰り返す) を選択した場合、条件を適用する曜日、タイムゾーン、開始時刻、終了時刻を選択します。
自動スケーリング設定がどのように機能するか、特にプロファイルまたは条件を選択して複数のルールを評価する方法の詳細については、「自動スケーリング設定について」を参照してください。