什麼是 SWAP 檔?為什麼它們會佔用 AWS DMS 執行個體的空間?

上次更新日期:2022 年 7 月 28 日

由我的執行個體產生的交換檔正在消耗 AWS Database Migration Service (AWS DMS) 資料庫執行個體的儲存空間。什麼是 SWAP 檔?怎樣才能減少交換檔的產生?

簡短描述

在 AWS DMS,SORTER 元件會快取來自來源的持續變更。元件執行此動作是為了管理動作 (例如交易合併、篩選及資料轉換),然後再將它們套用至目標。

如果來源處理過度執行目標套用,則目標無法應付傳入的變更。或者,如果長時間交易超過最大記憶體配置 (MemoryLimitTotal) 及時間 (MemoryKeepTime),則記憶體的交易會溢出到複寫執行個體磁碟 (稱為交換或排序檔案)。

這種的交換檔與作業系統交換檔不同,後者是因為伺服器記憶體在處理時不足所造成。因此,此資料不會包含 Amazon CloudWatch 的 SwapUsage 指標。

解決方案

您可能會在任務日誌看到類似這樣的訊息:

「[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 元件會暫停來源擷取。然後,AWS DMS 會將交換檔的變更套用至目標資料庫。在套用磁碟交換變更之後或當交換檔小於 1 GB 以下時,AWS DMS 會恢復擷取來源。

附註:當發生這種情況時,任務會繼續執行。只有來源擷取會暫停。

減少產生交換檔

使用這些最佳實務來協助減少或避免在 AWS DMS 執行個體產生交換檔:

  • 查看 AWS DMS 任務具有高目標延遲的常見原因:
    • 目標中沒有主索引鍵或索引
    • 目標具有資源瓶頸
    • 複寫執行個體具有資源瓶頸
    • 複寫執行個體和目標之間具有網路問題
  • 根據您的引擎類型,使用批次套用模式ParallelApplyThreads 來改善目標套用。
  • 如果您在來源遇到長時間執行的異動,請在來源資料庫透過頻繁認可來協助緩解這個問題。
  • 如果複寫執行個體具有可用記憶體,則您可以增加 MemoryLimitTotalMemoryKeepTime,讓變更在交換至磁碟之前保留在記憶體的時間更長。請務必增加這兩個參數,因為在達到限制之後,AWS DMS 會將變更交換到磁碟。

此文章是否有幫助?


您是否需要帳單或技術支援?