メインコンテンツへスキップ
Sync は、ホストマシンのRAM を共有する複数のJava プロセスを実行します。Sync がメモリをどのように割り当てるかを理解すると、サーバーのサイズを適切に設定し、大量のワークロードのパフォーマンスを調整するのに役立ちます。

メモリ割り当てを分け合うSync プロセス

Sync の実行中は、ホスト上で次のJava プロセスが起動します:
  • Sync: メインアプリケーションのJVM。
  • Replicate Agent: データ移動を調整するレプリケーションエンジン。
  • LakeBridge デーモン: Delta Parquet およびApache Iceberg ファイル形式に必要なデーモン。このデーモンは、アクティブなLakeBridge ジョブごとに1つのSpark JVM を生成します。
Sync は、メインアプリケーションのJVM とReplicate Agent のメモリを、合算した予算として管理します。LakeBridge 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 です。