ジョブの開始前にリソースを設定したり、公開後にリソースを変更したりできます。リソースモードには、基本モード (粗粒度) とエキスパートモード (詳細) の 2 種類があります。このトピックでは、ジョブリソースの設定方法と、両方のモードのパラメーター情報について説明します。
注意事項
リソースを設定した後、変更を有効にするにはジョブを再起動する必要があります。
操作手順
リソース構成ページに移動します。
対象のワークスペースの [操作] 列で、[コンソール] をクリックします。
ページで、対象のジョブの名前をクリックします。
[デプロイメント詳細] タブの [リソース構成] セクションで、右上隅にある [編集] をクリックします。
ジョブリソースの設定を変更します。
リソース構成モードには、基本モード (粗粒度) とエキスパートモード (詳細) の 2 種類があります。
リソースモード
説明
パラメーターの説明
基本モード
基本モードは、静的なリソース割り当て方法です。各 TaskManager の起動に必要な合計リソース (CPU と合計 JVM メモリ) を指定するだけです。システムは、TaskManager ごとのスロット数 (Flink の設定 `taskmanager.numberOfTaskSlots`) に基づいて、すべてのリソースを均等に割り当てます。ほとんどの単純なジョブでは、粗粒度モードで十分です。

エキスパートモード
エキスパートモードは、動的なリソース割り当て方法です。各スロット共有グループ (SSG) に必要なリソースを設定できます。Flink は、各スロットに必要なリソース仕様を計算し、利用可能なリソースプールから完全に一致する TaskManager とスロットを動的に申請します。複雑なジョブの場合、粗粒度モードではリソース使用率が低くなる可能性があります。そのため、各オペレーターのリソースを正確に制御するために詳細モードが必要となり、これによりリソース使用率が向上し、ジョブのスループット要件を満たすことができます。
説明SQL ジョブのみがエキスパートモードをサポートしています。
TaskManager (TM)、JobManager (JM)、Task、Slot などの概念の詳細については、「Apache Flink Architecture」をご参照ください。
[保存] をクリックします。
ジョブを再起動します。
リソース構成の変更を有効にするには、ジョブを再起動する必要があります。
基本モード (粗粒度)
設定項目 | 説明 |
並列度 | ジョブのグローバルな並列度。 |
JobManager CPU | Flink のベストプラクティスによると、ジョブの安定した動作を保証するために、単一の JM には少なくとも 0.5 コアと 2 GiB のメモリが必要です。1 コアと 4 GiB を設定することを推奨します。最大値は 16 コアです。 |
JobManager メモリ | 単位:GiB。最小値は 2 GiB、最大値は 64 GiB です。 |
TaskManager CPU | Flink のベストプラクティスによると、ジョブの安定した動作を保証するために、単一の TM には少なくとも 0.5 コアと 2 GiB のメモリが必要です。1 コアと 4 GiB を設定することを推奨します。最大値は 16 コアです。 |
TaskManager メモリ | 単位:GiB。最小値は 2 GiB、最大値は 64 GiB です。 |
TaskManager ごとのスロット数 | TM のスロット数を入力します。 |
次の数式を使用して計算できます:
ジョブに設定された CU 数 = MAX(JM と TM の合計 CPU、JM と TM の合計メモリ / 4)
実際の TM 数 (設定された TM の CPU またはメモリがデフォルトの最大値以下の場合) = 設定された並列度 / 設定された TaskManager ごとのスロット数
実際の TM 数 (設定された TM の CPU またはメモリがデフォルトの最大値より大きい場合) = MAX(⌈TM の合計 CPU / 16 コア⌉, ⌈TM の合計メモリ / 64 GiB⌉)
TM の合計 CPU = 設定された並列度 / 設定された TaskManager ごとのスロット数 × TM ごとに設定された CPU
TM の合計メモリ = 設定された並列度 / 設定された TaskManager ごとのスロット数 × TM ごとに設定されたメモリ
TM ごとのデフォルトの最大 CPU は 16 コアです。
TM ごとのデフォルトの最大メモリは 64 GiB です。
TM ごとの割り当て可能な実際のスロット数 = ⌈設定された並列度 / 実際の TM 数⌉
計算された比率は、最も近い整数に切り上げられます。
デフォルトでは、最大制限を超える値を設定することはできません。TM のメモリと CPU のデフォルトの最大制限を超える値を設定するには、してください。
また、[デプロイメント詳細] タブの [実行時パラメーター設定] セクションにある [その他の設定] フィールドで、`numberOfTaskSlots` パラメーターを設定することもできます。このパラメーターは、UI 設定の [TaskManager ごとのスロット数] と同等ですが、優先されます。
たとえば、並列度を 12、TaskManager ごとのスロット数を 4 に設定した場合、構成は次の図のようになります。

Flink 開発コンソールでは、実際の TM 数が 3、TaskManager ごとのスロット数が 4 であることがわかります。

実際の TM 数と TaskManager ごとのスロット数の計算プロセスは次のとおりです:
実際の TM 数 = [設定された並列度 / 設定された TaskManager ごとのスロット数] = [12/4] = 3
TM ごとの実際のスロット数 = ⌈並列度 / 実際の TM 数⌉ = ⌈12/3⌉ = 4
エキスパートモード (詳細)
SQL ジョブのみがエキスパートモードをサポートしています。
ジョブがデプロイされた後、SQL コードまたはリソース構成を変更した場合は、ジョブが正常に開始できるようにリソースプランニンググラフを再生成する必要があります。
基本リソースの構成
設定項目 | 説明 |
JobManager CPU | Flink のベストプラクティスによると、ジョブの安定した動作を保証するために、単一の JM には少なくとも 0.25 コアと 1 GiB のメモリが必要です。最大値は 16 コアです。 |
JobManager メモリ | 単位:GiB。例:4 GiB。最小値は 1 GiB、最大値は 64 GiB です。 |
TaskManager ごとのスロット数 | なし。 |
スロットリソースの構成
[エキスパートモード] で、[プランを今すぐ取得] をクリックしてリソースプランニンググラフを表示します。

SLOT ボックスの
アイコンをクリックします。
スロット構成情報を変更します。

ここで設定された並列度は、このスロット共有グループ内のすべてのオペレーターに対する統一された並列度です。設定を完了すると、システムは自動的に次の操作を実行します:
システムは、このスロット共有グループ内のすべてのオペレーターに同じ並列度を自動的に設定します。
システムは、ジョブの計算ロジックに基づいて、ステートバックエンド、Python、およびオペレーターに必要なメモリを自動的に生成します。これを手動で設定する必要はありません。
Source ノードの並列度は、パーティション数に比例させることを推奨します。つまり、パーティション数は並列度で割り切れるようにする必要があります。たとえば、Kafka トピックに 16 個のパーティションがある場合、データスキューを避けるために並列度を 16、8、または 4 に設定することを推奨します。また、Source ノードの並列度を低く設定しすぎないでください。並列度が低いと、単一の Source が過剰な量のデータを読み取ることになり、入力のボトルネックを引き起こし、ジョブのスループットに影響を与える可能性があります。
Source ノード以外のノードについては、必要に応じて並列度を設定することを推奨します。トラフィックの多いノードには高い並列度を設定し、トラフィックの少ないノードには低い並列度を設定します。
ヒープメモリとオフヒープメモリのサイズは、メモリ不足 (OOM) エラーや深刻なガベージコレクション (GC) など、明確な例外や要件がある場合にのみ調整することを推奨します。これは、これらのメモリサイズを調整しても、通常の操作中にジョブのスループットが大幅に変化しないためです。
説明[OK] をクリックします。
オペレーターリソースの構成
デフォルトでは、すべてのオペレーターは単一のスロット共有グループに配置されるため、個々のオペレーターのリソース構成を変更することはできません。個々のオペレーターのリソースを設定するには、[複数 SSG モード] を有効にします。このモードでは、各オペレーターに専用のスロットが割り当てられ、リソースを個別に設定できます。オペレーターリソースを設定する手順は次のとおりです:
ジョブの [デプロイメント詳細] タブの [リソース構成] セクションで、[編集] をクリックし、[リソースモード] を [エキスパートモード] に設定します。
(オプション) リソースプランが利用できない場合は、[プランを今すぐ取得] をクリックします。

[複数 SSG モード] スイッチをオンにします。次に、[再生成] をクリックします。
共有グループ内のオペレーターは、個別のスロットに分割されます。

対象のオペレーターに対応する SLOT ボックスの
アイコンをクリックし、オペレーターのリソースを変更します。
[OK] をクリックします。
オペレーターの並列度、チェイニング戦略、TTL の構成
リアルタイムコンピューティングエンジン Ververica Runtime (VVR) 8.0.7 以降のバージョンのみが、オペレーターの TTL の設定をサポートしています。
単一のオペレーターに対して、並列度、チェイニング戦略、および状態の生存時間 (TTL) を設定できます。
対象の VERTEX ボックスの
アイコンをクリックして、頂点を展開します。
説明対象の VERTEX の
アイコンをクリックすると、その頂点の下にあるすべてのオペレーターの並列度を一度に設定できます。オペレーターの
アイコンをクリックします。
オペレーターのリソースを設定します。

パラメーターの説明は次のとおりです:
パラメーター
説明
同時実行性
対応するオペレーターの並列度。
チェイニング戦略
チェーンは、複数のオペレーターを接続して形成される論理的な計算チェーンです。ジョブの実行効率とパフォーマンスを向上させ、オペレーター間のデータ転送とシリアル化のオーバーヘッドを削減できます。ただし、ジョブの実行フローとパフォーマンスをより適切に制御するために、チェーンを中断する必要がある場合もあります。次の戦略がサポートされています:
ALWAYS (デフォルト):オペレーターは常に上流および下流のオペレーターとチェーンできます。
HEAD:現在のオペレーターがチェーンの先頭として機能します。上流のオペレーターとのみチェーンを中断します。下流のノードは現在のオペレーターとチェーンされたままです。
NEVER:現在のオペレーターは、上流または下流のどのオペレーターともチェーンされません。
オペレーターの状態生存時間 (TTL) 設定
有効期限を秒、分、時間、または日で設定できます。デフォルトはジョブの有効期限です。有効期限が設定されていないジョブの場合、デフォルトは 1.5 日です。ジョブの有効期限の設定の詳細については、「実行時パラメーター設定」をご参照ください。
説明リアルタイムコンピューティングエンジン VVR 8.0.7 以降のバージョンでのみサポートされています。
ステートフルなオペレーターのみが TTL 設定をサポートしています。
[OK] をクリックします。
関連ドキュメント
リソース最適化技術については、「高性能 Flink SQL 最適化技術」をご参照ください。
手動でリソースを調整したくない場合は、自動チューニングを使用できます。システムが自動的にリソースを調整します。詳細については、「自動チューニングの設定」をご参照ください。
ジョブの基本設定、実行時パラメーター設定、ログ設定の詳細については、「ジョブデプロイメント情報の設定」をご参照ください。
Flink Advisor ジョブインテリジェント診断サービスを使用して、ジョブの健全性を監視できます。詳細については、「ジョブインテリジェント診断」をご参照ください。