メモリ割り当てを分け合うSync プロセス
Sync の実行中は、ホスト上で次のJava プロセスが起動します:- Sync: メインアプリケーションのJVM。
- Replicate Agent: データ移動を調整するレプリケーションエンジン。
- LakeBridge デーモン: Delta Parquet およびApache Iceberg ファイル形式に必要なデーモン。このデーモンは、アクティブなLakeBridge ジョブごとに1つのSpark JVM を生成します。
デフォルトのメモリ割り当て
デフォルトでは、Sync は次のようにメモリを割り当てます:
Sync JVM とReplicate Agent の合算予算は、デフォルトではシステムRAM 全体の60% です。残りの40% は、オペレーティングシステム、ヒープ以外のメモリ、およびLakeBridge Spark JVM のために確保されます。
各LakeBridge ジョブは、それぞれ専用のSpark JVM で実行されます。これらのJVM のRAM は残りの40% から割り当てられるため、同時に実行されるLakeBridge ジョブの数は、基本の割り当てに加えてサーバーが必要とするRAM の量に直接影響します。特定のコネクタのSpark JVM のヒープサイズを変更するには、コネクタの高度な設定タブでLakeBridge JVM Max Heap フィールドを設定します。
メモリのオーバーライド設定
次のオプションをシステム設定 > 高度な設定 > 追加設定 > その他の設定で指定することで、デフォルトのメモリ割り当てをオーバーライドできます。変更を有効にするには、Sync の再起動が必要です。MemoryBudgetPercentage: Sync JVM とReplicate Agent の合算ヒープ予算として割り当てる、システムRAM 全体に対する割合を設定します。デフォルト値は60 です。ReplicateAgentMaxHeap: Replicate Agent の最大ヒープサイズを、2g や4g などのJVM のサイズ値で明示的に設定します。受け入れられる最小値は1g です。このオプションが設定されていない場合、エージェントには、Sync が自分の分を確保した後のMemoryBudgetPercentage の予算の残りが割り当てられます。MaxConcurrentLakeBridgeJobs: 同時に実行できるLakeBridge ジョブの数を制限します。各LakeBridge ジョブは、メモリ割合の予算の外で個別のSpark JVM を割り当てるため、この値に上限を設定すると、多数のジョブが同時にスケジュールされたときのメモリの過剰コミットを防止できます。デフォルト値は3 です。