デプロイメントを開始する前に、デプロイメントのリソースを設定できます。デプロイメントのドラフトを公開した後に、デプロイメントのリソース設定を変更することもできます。 Realtime Compute for Apache Flink は、2つのリソース設定モード(基本モード(粗粒度)とエキスパートモード(細粒度))をサポートしています。このトピックでは、デプロイメントリソースの設定方法と、2つのリソース設定モードで設定できるパラメーターについて説明します。
注意事項
デプロイメントのリソースを設定した後、設定を有効にするには、デプロイメントを再起動する必要があります。
手順
デプロイメントのリソースを設定できるページに移動します。
Realtime Compute for Apache Flink の 管理コンソール にログオンします。
管理するワークスペースを見つけ、[アクション] 列の [コンソール] をクリックします。
Realtime Compute for Apache Flink 開発コンソールの左側のナビゲーションペインで、
を選択します。 [デプロイメント] ページで、目的のデプロイメントを見つけ、デプロイメントの名前をクリックします。[設定] タブで、[リソース] セクションの右上隅にある [編集] をクリックします。
リソースパラメーターを変更します。
2つのリソース設定モード(基本モード(粗粒度)とエキスパートモード(細粒度))がサポートされています。次の表に、リソース設定モードを示します。
リソース設定モード
説明
パラメーター設定
基本モード
基本モード(粗粒度)は、静的リソース割り当て方法です。このモードでは、各 TaskManager を起動するために必要なリソースの総量を指定するだけで済みます。リソースには、CPU コアと Java 仮想マシン(JVM)メモリが含まれます。 Realtime Compute for Apache Flink は、各 TaskManager のスロット数に基づいてリソースを均等に割り当てます。スロット数は、flink conf taskmanager.numberOfTaskSlots パラメーターで指定されます。ほとんどの単純なデプロイメントでは、基本モードでビジネス要件を満たすことができます。
エキスパートモード
エキスパートモード(細粒度)は、動的リソース割り当て方法です。このモードでは、各スロット共有グループ(SSG)に必要なリソースを設定できます。このようにして、Realtime Compute for Apache Flink は各スロットに必要なリソース数を計算し、次に使用可能なリソースプールから TaskManager に使用されるスロットのリソースを動的に適用します。複雑なデプロイメントの場合、基本モードではリソース使用率が低くなる可能性があります。したがって、エキスパートモードを使用して、各オペレーターのリソースを設定する必要があります。このようにして、リソース使用率が向上し、ビジネス要件に基づいてデプロイメントスループットを実現できます。
説明SQL デプロイメントのみをエキスパートモードで設定できます。
TaskManager、JobManager、タスク、およびスロットの詳細については、「Apache Flink アーキテクチャ」をご参照ください。
[リソース] セクションの右上隅にある [保存] をクリックします。
デプロイメントを再起動します。
デプロイメントのリソースが設定された後、設定を有効にするには、デプロイメントを再起動する必要があります。
基本モード(粗粒度)
パラメーター | 説明 |
並列度 | デプロイメントのグローバル並列度。 |
JobManager CPU | Realtime Compute for Apache Flink のベストプラクティスでは、デプロイメントの安定した動作を確保するために、JobManager には少なくとも 0.5 CPU コアと 2 GiB のメモリが必要であることが示されています。各 TaskManager に 1 CPU コアと 4 GiB のメモリを設定することをお勧めします。最大 16 CPU コアを設定できます。 |
JobManager メモリ | 単位:GiB。最小値:2 GiB。最大値:64 GiB。 |
TaskManager CPU | Realtime Compute for Apache Flink のベストプラクティスでは、デプロイメントの安定した動作を確保するために、TaskManager には少なくとも 0.5 CPU コアと 2 GiB のメモリが必要であることが示されています。各 TaskManager に 1 CPU コアと 4 GiB のメモリを設定することをお勧めします。最大 16 CPU コアを設定できます。 |
TaskManager メモリ | 単位:GiB。最小値:2 GiB。最大値:64 GiB。 |
TaskManager スロット | 各 TaskManager のスロット数。 |
デプロイメントのリソースを設定するときは、次の式を使用できます。
デプロイメントに設定される CU 数 = MAX(JobManager と TaskManager の CPU コアの合計数、JobManager と TaskManager の合計メモリサイズ/4)。
各デプロイメントに必要な IP アドレスの数 = JobManager の数 + TaskManager の実数。各デプロイメントには JobManager が 1つだけ存在します。
説明2024年 5月 30日以降にワークスペースを購入した場合、この式に注意を払う必要はありません。詳細については、「ネットワークアーキテクチャのアップグレード」をご参照ください。
TaskManager の実数 = 並列度の値/TaskManager スロットの値。この式は、各 TaskManager の CPU コアの合計数が各 TaskManager のデフォルトの最大 CPU コア数以下であるか、合計メモリサイズが各 TaskManager のデフォルトの最大メモリサイズ以下である場合に使用されます。
TaskManager の実数 = MAX(⌈CPU コアの合計数/16⌉、⌈合計メモリサイズ/64⌉)。この式は、各 TaskManager の CPU コアの合計数が各 TaskManager のデフォルトの最大 CPU コア数を超えるか、合計メモリサイズが各 TaskManager のデフォルトの最大メモリサイズを超える場合に使用されます。
各 TaskManager の CPU コアの合計数 = 並列度の値/TaskManager スロットの値 × Task Manager CPU の値。
各 TaskManager の合計メモリサイズ = 並列度の値/TaskManager スロットの値 × Task Manager メモリの値。
各 TaskManager のデフォルトの最大 CPU コア数は 16 です。
各 TaskManager のデフォルトの最大メモリサイズは 64 GiB です。
各 TaskManager に割り当てることができるスロットの実数 = ⌈並列度の値/TaskManager の実数⌉。
計算された比率は、最も近い整数に切り上げられます。
デフォルトでは、[リソース] セクションのパラメーターの最大値を超える値を指定することはできません。各 TaskManager のメモリサイズと CPU コアのデフォルトの最大値を高く設定する場合は、チケットを送信 してください。
[デプロイ] ページの [構成] タブにある [パラメーター] セクションの [その他の構成] フィールドで、numberOfTaskSlots パラメーターを構成することもできます。 このパラメーターは、[リソース] セクションの [taskmanager スロット] パラメーターと同じように機能しますが、優先順位が高くなります。
たとえば、並列度を 12 に、TaskManager スロットを 4 に設定できます。次の図は、この例の構成を示しています。
Realtime Compute for Apache Flink の開発コンソールで、TaskManager の実数は 3 で、各 TaskManager のスロットの実数は 4 であることがわかります。
次の式を使用して、TaskManager の実数と各 TaskManager のスロットの実数を計算します。
TaskManager の実数 = [並列度の値/TaskManager スロットの値] = [12/4] = 3。
各 TaskManager のスロットの実数 = ⌈並列度の値/TaskManager の実数⌉ = ⌈12/3⌉ = 4。
エキスパートモード(細粒度)
SQL デプロイメントのみをエキスパートモードで設定できます。
SQL デプロイメントのデプロイ後に SQL コードまたはリソース設定を変更する場合は、SQL デプロイメントが予期どおりに開始されるように、リソース設定プランを再生成する必要があります。
基本リソースを設定する
パラメーター | 説明 |
JobManager CPU | Realtime Compute for Apache Flink のベストプラクティスでは、デプロイメントの JobManager には、デプロイメントの安定した動作を確保するために、少なくとも 0.25 CPU コアと 1 GiB のメモリが必要であることが示されています。最大 16 CPU コアを設定できます。 |
JobManager メモリ | 単位:GiB。例:4 GiB。最小値:1 GiB。最大値:64 GiB。 |
TaskManager スロット | 該当なし。 |
スロットリソースを設定する
[エキスパートモード] で、[リソース] セクションの [今すぐプランを取得] をクリックして、リソース設定プランを設定します。
SLOT ボックスの右上隅にある
アイコンをクリックします。
スロット設定を変更します。
[SLOT(デフォルト)の変更] ダイアログボックスで設定する並列度パラメーターは、SSG 内のすべてのオペレーターの並列度です。並列度パラメーターを設定すると、システムは自動的に次の操作を実行します。
システムは、SSG 内のすべてのオペレーターに並列度を自動的に適用します。
システムは、デプロイメントの計算ロジックに基づいて、状態バックエンド、Python、およびオペレーターに必要なメモリサイズを自動的に計算します。手動設定は不要です。
剰余なしでデプロイメントの並列度で除算できるように、ソースノードのパーティション数を設定してください。たとえば、Kafka クラスターに 16 個のパーティションがある場合、データの偏りを防ぐために、並列度パラメーターを 16、8、または 4 に設定することをお勧めします。また、ソースノードの並列度パラメーターを過度に小さい値に設定しないことをお勧めします。並列度パラメーターが過度に小さい値に設定されている場合、ソースノードは過剰なデータを読み取る可能性があります。このシナリオでは、データ入力のボトルネックが発生し、デプロイメントのスループットが低下する可能性があります。
ソースノード以外のすべてのノードのデプロイメント並列度は、データ量に基づいて設定することをお勧めします。ノードのデータ量が多い場合は、並列度パラメーターを大きい値に設定することをお勧めします。ノードのデータ量が少ない場合は、並列度パラメーターを小さい値に設定することをお勧めします。
ヒープメモリとオフヒープメモリのサイズは、例外が発生した場合、またはデプロイメントのスループットが低い場合にのみ調整することをお勧めします。たとえば、デプロイメントでメモリ不足(OOM)エラーまたは深刻なガベージコレクションの問題が発生します。デプロイメントが正常に実行されているときにヒープメモリとオフヒープメモリのサイズを調整しても、デプロイメントのスループットを大幅に向上させることはできません。
説明[OK] をクリックします。
オペレーターリソースを設定する
デフォルトでは、すべてのオペレーターは 1 つの SSG に配置されます。各オペレーターのリソース設定を個別に変更することはできません。個々のオペレーターのリソースを設定する場合は、[複数 SSG] モードを有効にして、各オペレーターに独立したスロットがあることを確認する必要があります。このようにして、スロット内の各オペレーターのリソースを設定できます。オペレーターのリソースを設定するには、次の手順を実行します。
[設定] タブの [リソース] セクションの右上隅にある [編集] をクリックし、[モード] を [エキスパート] に設定します。
(オプション)リソースプランがない場合は、[今すぐプランを取得] をクリックします。
[複数 SSG] をオンにして、[再フェッチ] をクリックします。
SSG 内の各オペレーターには、独自のスロットが割り当てられます。
目的のオペレーターの SLOT ボックスにある
アイコンをクリックして、オペレーターのリソース設定を変更します。
[OK] をクリックします。
オペレーターの並列度、連鎖戦略、および TTL を設定する
Ververica Runtime(VVR)8.0.7 以降を使用する Realtime Compute for Apache Flink のみ、オペレーターの Time to Live(TTL)の設定をサポートしています。
単一オペレーターの並列度、連鎖戦略、および TTL を設定できます。
VERTEX ボックスで
アイコンをクリックして、頂点の詳細を表示します。
説明VERTEX ボックスの
アイコンをクリックして、頂点内のすべてのオペレーターの並列度パラメーターを一度に設定できます。
オペレーターの
アイコンをクリックします。
オペレーターリソースを設定します。
次の表に、パラメーターを示します。
パラメーター
説明
並列度
オペレーターの並列度。
連鎖戦略
チェーンは、複数のオペレーターによって形成される論理計算チェーンです。チェーンは、デプロイメントの実行効率とパフォーマンスを向上させ、オペレーター間のデータ送信とシリアル化のオーバーヘッドを削減するのに役立ちます。特定のシナリオでは、チェーンを切断してデプロイメントの実行フローを制御し、デプロイメントのパフォーマンスを効率的に向上させる必要がある場合があります。次の連鎖戦略がサポートされています。
ALWAYS:オペレーターは常にアップストリームおよびダウンストリームオペレーターと連鎖させることができます。これはデフォルト値です。
HEAD:オペレーターはチェーンのヘッドノードとして機能します。アップストリームオペレーターはチェーンから切断されます。ダウンストリームオペレーターは現在のオペレーターと連鎖されます。
NEVER:オペレーターはアップストリームおよびダウンストリームオペレーターと連鎖させることができません。
状態の有効期限設定
Time to Live(TTL)を秒、分、時間、または日で設定できます。このパラメーターのデフォルト値は、デプロイメントの有効期限です。デプロイメントの有効期限を指定しない場合、自動的に 1.5 日が使用されます。デプロイメントの有効期限の指定方法の詳細については、「デプロイメントを設定する」トピックの「パラメーター」セクションをご参照ください。
説明VVR 8.0.7 以降を使用する Realtime Compute for Apache Flink のみ、このパラメーターをサポートしています。
ステートフルオペレーターのみが TTL 設定をサポートしています。
[OK] をクリックします。
参照
リソース設定の最適化方法の詳細については、「Flink SQL を最適化する」をご参照ください。
リソースを手動で再設定したくない場合は、自動調整を有効にして、システムがリソースを自動的に再設定できるようにすることができます。詳細については、「自動調整を設定する」をご参照ください。
[設定] タブの [基本]、[パラメーター]、および [ログ] セクションで、デプロイメント設定を変更できます。詳細については、「デプロイメントを設定する」をご参照ください。
Flink Advisor が提供するインテリジェントデプロイメント診断機能を使用して、デプロイメントのヘルスステータスを監視できます。詳細については、「インテリジェントデプロイメント診断を実行する」をご参照ください。