ストリーミング ユニットの自動スケーリング

ストリーミング ユニット (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 ページに移動します。

  1. Azure ポータルにサインインします。
  2. リソースの一覧で、スケールする Stream Analytics ジョブを見つけて開きます。
  3. ジョブ ページの [構成] 見出しで、 [スケーリング] を選択します。
    [スケール] へのナビゲーションを示すスクリーンショット。
  4. [ 構成] には、スケーリングの 2 つのオプションが表示されます。 手動スケールカスタム自動スケールです。
    [手動スケール] または [カスタム自動スケーリング] を選ぶ [構成] 領域を示すスクリーンショット。

手動でのスケーリング

この設定を使用すると、ジョブのストリーミング ユニット数を一定数に設定できます。 ジョブの作成時の SU の既定の数は 1 です。

ジョブを手動でスケーリングするには、次の手順を行います。

  1. [手動でのスケーリング] をまだ選択していない場合は、選択します。
  2. スライダーを使用して、ジョブの SU 数を設定するか、ボックスに直接入力します。 ジョブの実行中は、特定の SU 設定に制限されます。 制限は、ジョブの構成によって異なります。
    ストリーミング ユニット数をスライダーで選ぶ [手動スケール] を示すスクリーンショット。
  3. ツール バーの [保存] を選択して設定を保存します。
    [構成] 領域の [保存] オプションを示すスクリーンショット。

カスタム自動スケーリング - 既定の条件

ストリーミング ユニットの自動スケーリングは、条件を使用して構成できます。 既定のスケール条件は、他のスケール条件が一致しない場合に実行されます。 そのため、ジョブの [既定] の条件を選択する必要があります。 既定の条件の名前を選択するか、事前設定されている Auto created scale conditionのままにすることができます。

編集する [カスタム自動スケーリング] の既定の条件を示すスクリーンショット。

次のスケール モードのいずれかを選択して、[既定] の条件を設定します。

  • [メトリックに基づいてスケーリングする] (CPU やメモリ使用量などのメトリック)
  • [特定のストリーミング ユニット数にスケーリングする]

Note

[既定] の条件では、[スケジュール] を設定することはできません。 既定の条件は、他のスケジュール条件が満たされていない場合にのみ実行されます。

メトリックに基づいてスケーリングする

次の手順は、SU (メモリ) 使用率が 75% を超えた場合にストリーミング ユニットを自動的に増やす (スケールアウトする) という条件を追加し、 SU 使用率が 25% を下回った場合にストリーミング ユニットを減らす (スケールインする) という条件を追加する方法を示しています。 増分は、1/3および2/3の分数単位から完全なストリーミング単位(1 SU V2)に至るまで行われます。 同様に、減分は、1 から 2/3、そして 1/3 への段階で行われます。

  1. [ スケール] で、[ カスタム自動スケール] を選択します。
  2. ページの [Default](既定) セクションで、既定の条件として [名前] を指定します。 鉛筆記号を選択してテキストを編集します。
  3. [スケール モード] には、 [メトリックに基づいてスケーリングする] を選択します。
  4. [+ ルールの追加] を選択します。
    スケール ルールの追加オプションを示すスクリーンショット。
  5. [スケール ルール] ページで、次の手順を行います。
    1. [メトリック名前空間] で、[メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[SU % 使用率] が選択されています。
    2. 演算子としきい値を選択します。 この例では、より大きい および 75 が、スケール操作をトリガーするメトリックのしきい値 です。
    3. [アクション] セクションで操作を選択します。 この例では、 [Increase](増加) に設定されています。
    4. その後、 [追加] を選択します。
      ルール メトリック オプションの追加を示すスクリーンショット。
  6. [+ Add a rule]\(+ ルールの追加\) を再度選択し、[スケール ルール] ページで次の手順を実行します。
    1. [メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[SU % 使用率] が選択されています。
    2. 演算子としきい値を選択します。 この例では、これらは [より小さい] および [Metric threshold to trigger scale action](スケール操作をトリガーするメトリックのしきい値)[25] です。
    3. [アクション] セクションで操作を選択します。 この例では、 [Decrease](減少) に設定されています。
    4. その後、 [追加] を選択します。
  7. この例では、全体的な SU 使用率が 25% を下回った場合、自動スケーリング機能によって名前空間のストリーミング ユニット数が削減されます。
  8. ストリーミング ユニットの 最小最大、および 既定 の数を設定します。 最小と最大のストリーミング ユニット数は、ジョブに対するスケーリング制限を表します。 [既定] の値は、スケーリングが失敗するまれな場合に使用されます。 既定値を、ジョブが現在実行されている SU の数に設定します。
  9. [保存] を選択します。
    ルールの [保存] オプションを示すスクリーンショット。

Note

フラッピングとは、対立するスケール イベントが連続して発生するループ条件を指します。 フラッピングは、スケール イベントが反対のスケール イベントをトリガーしたときに発生します。 詳細については、この記事を参照してください。 この 記事では、自動スケールでのフラッピングとその回避方法について説明します。

特定のストリーミング ユニット数にスケーリングする

特定の数のストリーミング ユニットを使用するようにジョブをスケーリングするようにルールを構成するには、次の手順に従います。 既定の条件は、他のスケール条件が一致しない場合に適用されます。

  1. [ スケール] で、[ カスタム自動スケール] を選択します。
  2. [ 既定 ] セクションで、既定の条件の 名前 を入力します。
  3. [スケール モード] で、[特定のストリーミング ユニット数にスケーリングする] を選択します。
  4. [ストリーミング ユニット] で、ストリーミング ユニットの数を選択します。

カスタム自動スケーリング - スケーリング条件を追加する

前のセクションでは、自動スケール設定の既定の条件を追加する方法を示します。 このセクションでは、自動スケール設定に条件を追加する方法について説明します。 これらの既定以外の条件では、特定の曜日または日付範囲に基づいてスケジュールを設定できます。

メトリックに基づいてスケーリングする

  1. [スケール] で、[リソースのスケーリング方法の選択] オプションで [カスタム自動スケーリング] を選択します。
  2. [Default](既定) ブロックの下で [Add a scale condition](スケーリング条件を追加する) を選択します。
    [カスタム自動スケーリング] の条件を示すスクリーンショット。
  3. 条件の 名前 を入力します。
  4. [メトリックに基づいてスケーリングする] オプションが選択されていることを確認します。
  5. 全体的な SU % 使用率が 75% を超えたときにストリーミング ユニットを増やすルールを追加するには、[+ ルールの追加] を選択します。 前述の既定の条件に関するセクションの手順に従います。
  6. ストリーミング ユニットの 最小最大、および 既定 の数を設定します。
  7. (既定の条件ではなく) カスタム条件で、[スケジュール][タイムゾーン][開始日][終了日] を設定します。 条件の開始日と終了日を指定するか、1 週間の特定の日 (月曜日、火曜日など) を 繰り返す を選択できます。
    • [開始日/終了日の指定] を選択した場合、条件が有効になる [タイムゾーン][開始日時][終了日時]を選択します。
    • [Repeat specific days](特定の曜日に繰り返す) を選択した場合、条件を適用する曜日、タイムゾーン、開始時刻、終了時刻を選択します。

特定のストリーミング ユニット数にスケーリングする

  1. [スケール] で、[リソースのスケーリング方法の選択] オプションで [カスタム自動スケーリング] を選択します。
  2. [Default](既定) ブロックの下で [Add a scale condition](スケーリング条件を追加する) を選択します。
  3. 条件の 名前 を入力します。
  4. [スケール モード] で、[特定のストリーミング ユニット数にスケーリングする] オプションを選択します。
  5. ストリーミング ユニットの数を入力します。
  6. [スケジュール] には、条件の開始日と終了日を指定するか、週と時刻の特定の日 (月曜日、火曜日など) を選択します。
    1. [開始日/終了日の指定] を選択した場合、条件が有効になる [タイムゾーン][開始日時][終了日時]を選択します。
    2. [Repeat specific days](特定の曜日に繰り返す) を選択した場合、条件を適用する曜日、タイムゾーン、開始時刻、終了時刻を選択します。

自動スケーリング設定がどのように機能するか、特にプロファイルまたは条件を選択して複数のルールを評価する方法の詳細については、「自動スケーリング設定について」を参照してください。

次のステップ