DMのコンフィグレーションを最適化する
このドキュメントでは、データ移行タスクの構成を最適化して、データ移行のパフォーマンスを向上させる方法を紹介します。
完全なデータのエクスポート
mydumpersは、フルデータエクスポートに関連する設定項目です。このセクションでは、パフォーマンス関連のオプションの設定方法について説明します。
rows
rowsオプションを設定すると、マルチスレッドを使用して単一テーブルから同時にデータをエクスポートできます。3 rows値は、エクスポートされる各チャンクに含まれる行の最大数です。このオプションを有効にすると、MySQL 単一テーブルのデータを同時にエクスポートする際に、DM は分割ベンチマークとして列を選択します。この列は、主キー列、一意のインデックス列、通常のインデックス列(優先度の高いものからBIGINTものの順)のいずれかになります。この列MEDIUMINT整数型(例: INT )であることを確認してください。
rowsの値は 10000 まで設定できます。この値は、テーブルの総行数とデータベースのパフォーマンスに応じて変更できます。また、同時実行スレッド数を制御するにはthreads設定する必要があります。デフォルトではthreadsの値は 4 です。この値は必要に応じて調整できます。
chunk-filesize
フルバックアップ中、DMは各テーブルのデータをchunk-filesizeオプションの値に応じて複数のチャンクに分割します。各チャンクは約chunk-filesizeのサイズのファイルに保存されます。このようにしてデータは複数のファイルに分割され、DM Loadユニットの並列処理を利用してインポート速度を向上させることができます。このオプションのデフォルト値は64(MB)です。通常、このオプションを設定する必要はありません。設定する場合は、フルデータのサイズに応じてこのオプションの値を調整してください。
注記:
- 移行タスクの作成後は、値
mydumpersを更新できません。タスクを作成する前に、各オプションの値を確認してください。値を更新する必要がある場合は、dmctl を使用してタスクを停止し、設定ファイルを更新してから、タスクを再作成してください。mydumpers.threads、簡単にするためにmydumper-thread構成項目に置き換えることができます。rows設定されている場合、DM はchunk-filesizeの値を無視します。
完全なデータインポート
loadersはフルデータインポートに関連する設定項目です。このセクションでは、パフォーマンス関連のオプションの設定方法について説明します。
pool-size
pool-sizeオプションは、DM Load ユニット内のスレッド数を決定します。デフォルト値は 16 です。通常、このオプションを設定する必要はありません。設定する場合は、フルデータのサイズとデータベースのパフォーマンスに応じて、このオプションの値を調整してください。
注記:
- 移行タスクの作成後は、値
loadersを更新できません。タスクを作成する前に、各オプションの値を確認してください。値を更新する必要がある場合は、dmctl を使用してタスクを停止し、設定ファイルを更新してから、タスクを再作成してください。loaders.pool-size、簡単にするためにloader-thread構成項目に置き換えることができます。
増分データレプリケーション
syncersは増分データレプリケーションに関連する設定項目です。このセクションでは、パフォーマンス関連のオプションの設定方法について説明します。
worker-count
worker-count 、DM SyncユニットにおけるDMLの同時レプリケーションのスレッド数を指定します。デフォルト値は16です。データレプリケーションを高速化するには、このオプションの値を適切に増やしてください。
batch
batch 、DM Sync ユニット中にデータが下流データベースにレプリケートされる際に、各トランザクションに含まれる DML の数を決定します。デフォルト値は 100 です。通常、このオプションの値を変更する必要はありません。
注記:
- レプリケーションタスクの作成後は、値
syncersを更新できません。タスクを作成する前に、各オプションの値を確認してください。値を更新する必要がある場合は、dmctl を使用してタスクを停止し、設定ファイルを更新してから、タスクを再作成してください。syncers.worker-count、簡単にするためにsyncer-thread構成項目に置き換えることができます。worker-countとbatchの値は実際のシナリオに応じて変更できます。例えば、DMと下流データベース間のネットワーク遅延が大きい場合は、worker-countの値を増やし、batchの値を適切に減らすことができます。