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

ストリーミング ユニット (SU) は、Stream Analytics ジョブを実行するために割り当てられているコンピューティング リソースを表しています。 SU 数が大きいほど、ジョブに割り当てられる CPU とメモリのリソースが多くなります。 Stream Analytics には、2 種類のスケーリングが用意されています。これにより、ジョブの負荷を処理するために実行されるストリーミング ユニット (SU) の数を適切に調整することができます。

この記事では、Azure portal で、Stream Analytics ジョブのこれらの異なるスケーリング方法を使用する方法について説明します。

Stream Analytics でサポートされている 2 種類のスケーリングは、"手動でのスケーリング" と "カスタム自動スケーリング" です。

"手動でのスケーリング" を使用すると、ジョブのストリーミング ユニットを一定数で維持し、調整することができます。

"カスタム自動スケーリング" を使用すると、ジョブのストリーミング ユニットの最大数と最小数を指定し、ルール定義に基づいて動的に調整することができます。 カスタム自動スケーリングでは、構成済みのルール セットが調べられます。 その後、負荷の増加に対処するために SU を増加することを決定するか、コンピューティング リソースがアイドル状態の場合は SU の数を減らすことを決定します。 Azure Monitor での自動スケーリングの詳細については、「Microsoft Azure の自動スケールの概要」を参照してください。

注意

手動でのスケーリングはジョブの状態に関係なく使用できますが、カスタム自動スケーリングは、ジョブが 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 ジョブの [スケーリング] ページに移動します。

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

手動でのスケーリング

この設定を使用すると、ジョブのストリーミング ユニット数を一定数に設定できます。 ジョブの作成時に既定で設定される SU 数は 1 であることに注意してください。

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

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

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

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

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

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

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

注意

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

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

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

  1. [スケーリング] で、[カスタム自動スケーリング] を選択します。
  2. ページの [Default](既定) セクションで、既定の条件として [名前] を指定します。 鉛筆記号を選択してテキストを編集します。
  3. [スケール モード] には、 [メトリックに基づいてスケーリングする] を選択します。
  4. [+ ルールの追加] を選択します。
    スケール ルールの追加オプションを示すスクリーンショット。
  5. [スケール ルール] ページで、次の手順を行います。
    1. [メトリック名前空間] で、[メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[SU % 使用率] が選択されています。
    2. [演算子] と [しきい値] を選択します。 この例では、これらは [より大きい] および [Metric threshold to trigger scale action](スケール操作をトリガーするメトリックのしきい値)[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. [保存] を選択します。
    ルールの [保存] オプションを示すスクリーンショット。

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

特定のストリーミング ユニット数を使用してジョブをスケーリングするようにルールを構成するには、以下の手順に従います。 ここでも、既定の条件は、その他のスケーリング条件のいずれも一致しないときに適用されます。

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

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

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

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

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

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

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

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

次のステップ