SWAP ファイルとは何ですか? また、AWS DMS インスタンスの容量を消費しているのはなぜですか?

所要時間1分
0

AWS Database Migration Service (AWS DMS) DB インスタンスのストレージ容量が、インスタンスで生成されたスワップファイルによって消費されています。SWAP ファイルとは何ですか? また、スワップファイルの生成を減らすにはどうすればよいですか?

簡単な説明

AWS DMS では、SORTER コンポーネントはソースからの進行中の変更をキャッシュします。コンポーネントは、トランザクションのマージ、フィルタリング、データ変換などのアクションをターゲットへの適用前に管理するためにこれを行います。

ソース処理がターゲット適用を過剰に実行している場合、ターゲットは受信する変更に対応できません。または、長いトランザクションが最大メモリ割り当て (MemoryLimitTotal) および時間 (MemoryKeepTime) を超えると、メモリ内のトランザクションは、スワップファイルまたはソーターファイルと呼ばれるレプリケーションインスタンスディスクにスピルオーバーされます。

このようなスワップファイルは、サーバーのメモリが処理に十分でない場合に作成される OS スワップファイルとは異なります。そのため、このデータは Amazon CloudWatch の SwapUsage メトリクスには含まれていません。

解決方法

タスクログで次のようなメッセージが表示される場合があります。

「[SORTER ]I: Reading from source is paused.Total storage used by swap files exceeded the limit 1048576000 bytes (sorter_transaction.c:110) 00000849: 2021-04-28T07:19:20:987696 [SORTER ]I: Reading from source is resumed (sorter_transaction.c:116)]」([SORTER] I: ソースからの読み取りが一時停止しています。スワップファイルによって使用されているストレージの合計が上限である 1048576000 バイトを超えました (sorter_transaction.c:110) 00000849: 2021-04-28T07:19:20:987696 [SORTER ]I: ソースからの読み取りが再開されました (sorter_transaction.c:116)])

これは情報メッセージであり、エラーではありません。このメッセージは、AWS DMS SORTER コンポーネントによって使用されるスワップファイルのサイズ制限が 1 GB (ハードコードされた制限) に達したときに表示されます。AWS DMS バージョン 3.4.2 以降には、レプリケーションインスタンスのストレージボリュームに格納できるスワップファイルの最大量を制限することにより、ストレージがいっぱいになるシナリオを防ぐ機能が含まれています。そのため、DMS SORTER コンポーネントによって使用されるスワップファイルが 1 GB の制限に達すると、このメッセージが表示されます。

この 1 GB の制限に達すると、SORTER コンポーネントは SOURCE CAPTURE を一時停止します。その後、AWS DMS は、スワップファイルの変更をターゲットデータベースに適用します。ディスクからスワップされた変更が適用された後、またはスワップファイルが 1 GB を下回ると、AWS DMS はソースのキャプチャを再開します。

: これが発生しても、タスクは引き続き実行されます。SOURCE CAPTURE のみが一時停止されます。

スワップファイルの生成を減らす

次のベストプラクティスを使用して、AWS DMS インスタンスでのスワップファイルの生成を削減または回避します。

  • ターゲットにプライマリキーまたはインデックスがない
  • ターゲットにリソースのボトルネックがある
  • レプリケーションインスタンスにリソースのボトルネックがある
  • レプリケーションインスタンスとターゲットの間にネットワークの問題がある
  • バッチ適用モードParallelApplyThreads を使用して、エンジンタイプに基づいてターゲット適用を改善します。
  • ソースで長時間実行されるトランザクションが発生している場合は、ソースデータベースで頻繁にコミットを実行して問題を緩和します。
  • レプリケーションインスタンスでメモリが使用可能な場合は、MemoryLimitTotalMemoryKeepTime を引き上げて、変更がディスクにスワップされる前にメモリにより長く残るようにします。制限に達すると、AWS DMS はディスクへの変更をスワップするため、必ずこれらの両方のパラメータを引き上げてください。

関連情報

Change processing tuning settings (処理チューニング設定の変更)

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