AWS Database Migration Service (AWS DMS) がスワップファイルを生成しており、そのファイルが DB インスタンスのストレージ容量を使用しています。スワップファイルとは何かを把握し、スワップファイルの生成量を減らしたいです。
簡単な説明
SOURCE_CAPTURE プロセスの生成が TARGET_APPLY コンポーネントよりも速い場合、SORTER コンポーネントにより、バックログ化されたイベントはディスクまたはスワップファイルにキャッシュされます。または、ロングトランザクションが最大メモリ割り当て制限 (MemoryLimitTotal) と時間 (MemoryKeepTime) を超えた場合、メモリ内のトランザクションやスワップファイルがレプリケーションインスタンスのディスクに移動します。
注: このスワップファイルは、サーバーの処理に必要なメモリが不足している場合に OS が作成するオペレーティングシステム (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)] (ソースからの読み取りが再開されました)
AWS DMS バージョン 3.4.2 以降には、ストレージフルが発生するシナリオを防ぐ機能が含まれています。この機能は、レプリケーションインスタンスのストレージボリュームに保存できるスワップファイルの最大数を設定します。SORTER コンポーネントが使用するスワップファイルが最大サイズである 1 GB に達すると、上記のメッセージが表示されます。
クォータに達すると、SORTER コンポーネントは SOURCE CAPTURE を一時停止します。次に、AWS DMS がスワップファイルからの変更をターゲットデータベースに適用します。DMS がスワップされた変更を適用するか、スワップファイルが 1 GB 未満になると、AWS DMS は SOURCE CAPTURE を再開します。
注: AWS DMS が変更を適用している間も、タスクは引き続き実行されます。SORTER コンポーネントは、SOURCE CAPTURE のみを一時停止します。
スワップファイルの生成量を削減する
AWS DMS インスタンスでのスワップファイルの生成量を削減したり回避したりするには、AWS DMS タスクのターゲット遅延が増加する原因を確認します。
TARGET_APPLY を改善するには、お使いのエンジンタイプに応じて、バッチ適用モードと ParallelApplyThreads を使用します。
ソースでトランザクションの実行時間が長い場合は、ソースデータベースでコミットを頻繁に行います。
レプリケーションインスタンスに使用可能なメモリがある場合は、MemoryLimitTotal と MemoryKeepTime を増やすことで、変更がディスクにスワップされるまでの間、変更をメモリに長期間保持します。SORTER コンポーネントがクォータに達することを防ぐには、両方のパラメータを増やす必要があります。
関連情報
処理チューニング設定の変更