AWS DMS の「前回のエラーはレプリケーションタスクでメモリ不足により発生しました。」というエラーをトラブルシューティングするにはどうすればよいですか?

所要時間1分
0

AWS Database Migration Service (AWS DMS) を使用しているときに、「Last Error Replication task out of memory. Stop Reason FATAL_ERROR Error Level FATA」というエラーが表示されます。

簡単な説明

AWS DMS の使用時に次のエラーが表示されます。 「Last Error Replication task out of memory.Stop Reason FATAL_ERROR Error Level FATAL」エラーの根本原因を見つけるには、AWS DMS タスクログを確認します。前述のエラーについては、ログに次のような情報が記載されます。 「'XXXXXXX' のタスク処理は、メモリ不足のために失敗しました」。

このエラーを解決するには、次の 1 つまたは複数の手順を実行します。

  • タスク設定またはメモリ関連のパラメータを変更します。
  • FreeMemorySwapUsage など、レプリケーションインスタンスの Amazon CloudWatch メトリクスの変動に基づき、レプリケーションインスタンスクラスをスケールアップします。
  • 移行するデータのサイズとタスクに必要なメモリ量に基づき、1 つのタスクを複数のタスクに分割します。

解決策

注: 変更を加える前にタスクを停止する必要があります。変更を加えたら、タスクを再開する必要があります。フルロードフェーズ中にタスクが停止すると、実行中のテーブルは最初から再ロードされます。

タスク設定またはメモリ関連のパラメータを変更する

より多くのメモリ容量を必要とするタスク設定またはメモリ関連のパラメータをスケールできるかどうかを確認します。確認すべき最も一般的なタスク設定とパラメータの例をいくつか以下に示します。

  • LOB 設定
  • ThreadCountPartitionSize などの検証パラメータ
  • ParallelLoadThreadsParallelLoadBufferSizeParallelLoadQueuesPerThreadParallelApplyThreadsParallelApplyBufferSize、および ParallelApplyQueuesPerThread などのパラレルスレッドパラメータ。
  • BatchApplyTimeoutMinBatchApplyTimeoutMaxBatchApplyMemoryLimit、および BatchSplitSize などのバッチ適用パラメータ。
  • MinTransactionSizeMemoryLimitTotalMemoryKeepTime、および StatementCacheSize などの他のメモリ関連のタスクの設定。

前述のタスク設定とパラメータの詳細については、「AWS DMS は移行のためにメモリをどのように使用しますか?」を参照してください。

Amazon CloudWatch メトリクスの変動に基づいてレプリケーションインスタンスクラスをスケールアップする

レプリケーションインスタンスの FreeMemory メトリクスと SwapUsage メトリクスを確認します。FreeMemory が減少するか、SwapUsage が増加または変動する場合は、より大きなレプリケーションインスタンスへの移行を検討してください。

また、メモリ最適化インスタンスの使用も検討対象となります。メモリ最適化インスタンスは、継続的な移行や高スループットトランザクションのレプリケーションなど、メモリを大量に消費するワークロードに適しています。レプリケーションインスタンスのサイズとタイプの詳細については、「Choosing the right AWS DMS replication instance for your migration」を参照してください。

移行するデータのサイズとタスクに必要なメモリ量に基づいて 1 つのタスクを複数のタスクに分割する

レプリケーションインスタンスに複数のタスクがある場合は、DMS MemoryUsage メトリクスを使用して、タスクが消費するメモリの量を観察できます。タスクが CDC フェーズでメモリを保持している理由を確認するには、CDCChangesMemorySourceCDCChangesMemoryTarget を比較し、それぞれのエンドポイントをトラブルシューティングします。

レプリケーションインスタンスで複数のタスクが実行されている場合は、次の 1 つ以上のアクションを実行します。

  • レプリケーションインスタンスで実行中のタスクの数と種類を減らします。
  • 失敗したタスクを別のレプリケーションインスタンスに移動してから再試行します。
  • インスタンスキャパシティを増やします。

複数のテーブルを並行してロードするタスクや、多数のテーブルおよびスキーマを移行するタスクでは、次のアクションを 1 つ以上実行します。

  • 並行してロードするテーブルの数を減らします。
  • 移行するテーブルとスキーマの総数を減らします。
  • 別のレプリケーションインスタンスで別のタスクを使用して、一部のテーブルとスキーマの移行をオフロードします。
  • インスタンスキャパシティを増やします。

関連情報

Target metadata task settings

Change processing tuning settings

AWS Database Migration Service メトリクス

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ