Realtime Compute V1.0 および V2.0 は、ジョブパフォーマンスを向上させる AutoConf を提供しています。 ただし、AutoConf では、ジョブを頻繁に再起動する必要があります。 この問題を解決するために、AutoScale 機能が Realtime Compute V3.0 以降で提供されています。 ジョブを開始すると、Realtime Compute は事前設定されたパフォーマンス目標を達成するために、リソース設定ルールに基づいてジョブ設定を調整します。 このプロセスでは、手動操作は必要ありません。

  • AutoScale は、Realtime Compute V3.0 以降にのみ適用されます。
  • Realtime Compute を V3.0 にアップグレードする前に、V3.0 より前の Realtime Compute で生成されたすべての PlanJSON ファイルを削除し、設定ファイルを再取得してください。

AutoScale の有効化

ジョブを公開するときに AutoScale を有効にすることができます。

  1. Realtime Compute 開発プラットフォームのジョブ編集ページに移動します。
    1. Realtime Compute コンソール にログインします。
    2. 上部のナビゲーションバーで、 [開発] をクリックします。
    3. [ジョブ] セクションで、[開発] フィールドのターゲットジョブ名またはフォルダをダブルクリックします。
  2. 上部のナビゲーションバーで [公開] をクリックして、新しいバージョンの公開ページに移動します。
  3. [初期リソース] ステップで、リソースタイプを選択し、[次へ] をクリックします。
    • 前回の自動スケーリングを使用:最新の自動スケーリングに PlanJSON ファイルを使用してジョブを開始します。 次の条件が満たされた場合は、[前回の自動スケーリングを使用] を選択することができます。
      • ジョブは AutoScale を有効にして公開され、最新の設定変更を採用していること。
      • ジョブは [一時停止] の状態であること。
      • AutoScale 設定を取得していること。 AutoScale 設定を取得するには、右側のナビゲーションペインで [リソース設定] をクリックし、[操作] 列の [自動スケーリング設定の取得] を選択します。
    • デフォルト:最新の自動スケーリング用に生成されたリソース設定を使用してジョブを開始します。 このオプションを選択して、ジョブロジックが変更されていない新しいジョブまたは既存のジョブを公開することができます。
    • 手動で設定されたリソース:手動で設定されたリソースを使用してジョブを開始します。 リソースを手動で設定するか、AutoScale 設定を変更するには、このオプションを選択します。
  4. [チェック] ステップで、ジョブをチェックして [次へ] をクリックします。
  5. [リソース設定] ステップで、AutoScale パラメーターを設定し、[次へ] をクリックします。
    パラメーター 説明
    AutoScale AutoScale を有効にするかどうかを指定します。 この機能を有効にするには、[有効化] をクリックします。
    PlanJSON 最大 CU 数 ジョブで使用可能な最大の CU 数。 1 つの CU は、1 つのコアと 4 GB の RAM (Random Access Memory) で構成されます。 このパラメーターの値は、プロジェクトで使用可能な CU の数より小さくなければなりません。
    最適化ポリシー ジョブ設定を最適化するためのポリシー。 有効な値:データ滞留時間。 Realtime Compute は、[最適化ポリシー][目標値] に基づいてジョブ設定を最適化します。
    目標値 データ滞留時間のしきい値。 アップストリームデータストレージからのデータがしきい値を超える期間滞留すると、Realtime Compute は AutoScale をトリガーして、ジョブの並列処理タスク数を調整します。
    たとえば、データ滞留時間の目標値を 5 秒に設定します。 アップストリームデータストレージからのデータが Realtime Compute ジョブに入る前に 5 秒以上滞留している場合、Realtime Compute は滞留時間が 5 秒未満に短縮されるまで、ジョブの並列処理タスク数を減らし続けます。
  6. [ファイルの公開] ステップで、[公開] をクリックします。
  7. ジョブを開始します。 詳細については、「ジョブの開始」をご参照ください。

AutoScale の無効化

AutoScale を有効にしてジョブを公開した後でのみ、ジョブの AutoScale を無効にすることがきます。
実行中のジョブの AutoScale を無効にすることができます。
  1. Realtime Compute 開発プラットフォームのジョブ編集ページに移動します。
    1. Realtime Compute コンソールにログインします。
    2. 上部のナビゲーションバーで、[開発] をクリックします。
    3. [ジョブ] セクションで、[開発] フィールドのターゲットジョブ名またはフォルダーをダブルクリックします。
  2. 右上隅にある [自動設定の停止] をクリックします。
  3. [OK] をクリックします。
ジョブ管理ページの [自動設定] 列のアクションは、ジョブの公開中に AutoScale が有効になっている場合にのみ使用することができます。

AutoScale に関する情報の表示

AutoScale に関する情報は、管理 ページで確認することができます。
  • AutoScale メトリック
    [曲線グラフ] > [概要] を選択して、AutoScale に関する情報を表示することができます。
    メトリック 説明
    成功/失敗数 AutoScale の成功と失敗の数。
    CPU 使用率 自動スケーリングに使用される CPU リソース。
    メモリ使用量 自動スケーリングに使用されるメモリリソース。
  • 自動スケーリング用に生成された PlanJSON ファイルに関する情報
    Realtime Compute 開発プラットフォームで、[プロパティとパラメーター] タブをクリックし、[リソース設定] > [プラン] を選択し、ターゲットバージョンを選択して、対応する自動スケーリング用に生成された PlanJSON ファイルに関する情報を表示します。

AutoScale の潜在的な問題

  • ジョブは自動的に再開される可能性があります。

    AutoScale を有効にすると、Realtime Compute はデータストリームの実際のボリュームに基づいて並列処理数とリソースを調整します。 その結果、Realtime Compute は、データストリームのボリュームが増減したときに、ジョブを自動的に再起動してリソースを調整する場合があります。

  • データ転送が短時間遅れる可能性があります。

    データストリームのボリュームが最低値に達したときに、Realtime Compute は AutoScale をトリガーして、並列処理数とリソースを削減します。 その結果、データストリームのボリュームが増加すると、リソースがスループットとデータ転送に不十分になる可能性があります。

  • ジョブの再開に失敗する可能性があります。

    AutoScale がジョブに対して適切に機能しない場合、ジョブが遅延し、Realtime Compute がジョブ設定を調整し続ける場合があります。 この場合、ジョブは再開できません。

  • 並列処理数は減らされ、それから増やされる可能性があります。

    ウィンドウ関数または集計関数を使用するジョブの場合、状態データが増加すると、状態データへのアクセスのパフォーマンスが低下し、ジョブの開始時に並列処理数が減らされます。 ジョブの実行中は、状態データの量が安定するまで、状態データの蓄積とともに並列処理数が増やされます。

よくある質問

  • Q:AutoScale をトリガーできない場合はどうすればよいですか。

    A:問題をトラブルシューティングするには、次の手順に従います。
    • ジョブが頻繁に失敗するかどうかを確認します。 AutoScale を有効にするには、ジョブロジックが正しく、ジョブが安定して実行できることを確認する必要があります。
    • [JobManager] ログを表示して、システム例外が存在するかどうかを確認します。
  • Q:AutoScale が有効にならない場合はどうすればよいですか。

    A:問題をトラブルシューティングするには、次の手順に従います。
    1. ジョブが消費するリソース量が指定した上限に達していないか確認します。
    2. ソースノードのロジックを調べて、ソースノードに接続されているオペレーターが多すぎるかどうかを確認します。 ソースノードに接続されている演算子が多すぎる場合は、PlanJSON ファイルを編集して一部のオペレーターを削除してください。 詳細については、「マニュアル設定によるパフォーマンスの最適化」をご参照ください。
    3. JobManager ログを表示して、システム例外が存在するかどうかを確認します。