選取複寫執行個體的最佳大小 - AWS Database Migration Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

選取複寫執行個體的最佳大小

選擇適當的複寫執行個體取決於使用案例的多個因素。為了協助了解複寫執行個體資源的使用方式,請參閱以下討論。它涵蓋了完全載入 + CDC 任務的常用案例。

在滿載工作期間, AWS DMS 會個別載入表格。依預設,一次會載入八個資料表。 AWS DMS 在完全載入工作期間擷取來源的持續變更,以便稍後可在目標端點上套用變更。這些變更會快取在記憶體中;如果可用記憶體耗盡,變更就會快取到磁碟。當資料表的完整載入工作完成時,會 AWS DMS 立即將快取的變更套用至目標資料表。

在套用資料表的所有未完成快取變更之後,目標端點會處於交易一致狀態。此時,目標會與來源端點相對於上次快取的變更保持同步。 AWS DMS 然後開始來源與目標之間的持續複寫。若 AWS DMS 要這麼做,請從來源交易記錄檔中取得變更作業,並以交易一致的方式將它們套用至目標。(此程序假設未選取批次最佳化套用)。 AWS DMS 如果可能,會透過複寫執行個體上的記憶體串流進行中的變更 否則, AWS DMS 會將變更寫入複寫執行個體上的磁碟,直到可以在目標上套用變更為止。

您可以在某種程度上控制複寫執行個體如何處理變更處理,以及如何在該程序中使用記憶體。如需如何調整變更處理的詳細資訊,請參閱變更處理調校設定

應考慮的因素

記憶體和磁碟空間是為使用案例選取適當複寫執行個體的關鍵因素。您可以在下方找到討論,了解要分析以選擇複寫執行個體的使用案例特性。

  • 資料庫和資料表大小

    資料磁碟區有助於判斷任務組態,以最佳化完全載入效能。例如,對於兩個 1 TB 結構描述,您可以將資料表分割成四個 500 GB 的任務,並平行執行這些任務。可能的平行處理原則取決於複寫執行個體中可用的 CPU 資源。這就是為什麼建議您了解資料庫和資料表的大小,以最佳化完全載入效能的原因。這麼做有助於判斷您可能面臨的任務數量。

  • 大型物件

    遷移範圍中存在的資料類型可能會影響效能。特別是,大型物件 (LOB) 會影響效能和記憶體耗用量。若要移轉 LOB 值,請 AWS DMS 執行兩個步驟的程序。首先,在沒有 LOB 值的情況下將資料列 AWS DMS 插入目標。其次,使用 LOB 值 AWS DMS 更新資料列。這會影響記憶體,因此請務必識別來源中的 LOB 資料欄並分析其大小。

  • 載入頻率和交易大小

    載入頻率和每秒交易數 (TPS) 皆會影響記憶體使用量。大量的 TPS 或資料操作語言 (DML) 活動皆會導致記憶體的使用率升高。發生這種情況是因為 DMS 會快取變更,直到將變更套用至目標為止。在 CDC 期間,這會導致交換 (由於記憶體溢位而寫入實體磁碟),因而導致延遲。

  • 資料表索引鍵和參考完整性

    資料表索引鍵的相關資訊會判斷您用來遷移資料的 CDC 模式 (批次套用或交易套用)。一般而言,交易套用比批次套用慢。對於長期執行的交易,可能會有許多遷移變更。當您使用交易式套用時,與批次套用相比, AWS DMS 可能需要更多記憶體來儲存變更。如果您遷移不含主索引鍵的資料表,批次套用將失敗,且 DMS 任務會移至交易套用模式。當 CDC 期間資料表之間的參照完整性處於作用中狀態時,預設 AWS DMS 會使用交易式套用。如需批次套用與交易套用相比的相關資訊,請參閱如何使用 DMS 批次套用功能來改善 CDC 複寫效能?

使用這些指標來判斷您是否需要對複寫執行個體進行運算最佳化或是進行記憶體最佳化。

常見問題

您可能會遇到下列常見問題,這些問題會在遷移期間造成複寫執行個體上的資源爭用。如需複寫執行個體指標的相關資訊,請參閱複寫執行個體指標

  • 如果複寫執行個體中的記憶體不足,這會導致將資料寫入磁碟。從磁碟讀取可能會造成延遲,您可以透過將複寫執行個體調整為具有足夠的記憶體來避免延遲。

  • 指派給複寫執行個體的磁碟大小可能小於所需的大小。當記憶體中的資料溢出時,便會使用磁碟大小;您也可使用此磁碟大小來儲存任務日誌。IOPS 上限也取決於此大小。

  • 執行多個任務或具有高度平行處理的任務會影響複寫執行個體的 CPU 耗用量。這會拖慢任務的處理速度,並導致延遲。

最佳實務

調整複寫執行個體大小時,請考慮這兩種最常見的最佳實務。如需詳細資訊,請參閱 AWS Database Migration Service 的最佳實務

  1. 調整工作負載的大小,並了解其是運算能力密集型還是記憶體密集型的工作負載。您可以以此為基礎,判斷複寫執行個體的類別和大小:

    • AWS DMS 處理記憶體中的 LOB。此操作需要一定數量的記憶體。

    • 任務數目和執行緒數會影響 CPU 耗用量。在完全載入操作期間避免使用超過八個 MaxFullLoadSubTasks

  2. 當您於完全載入期間有很高的工作負載時,請提高指派給複寫執行個體的磁碟空間。這樣做可讓複寫執行個體使用所指派的 IOPS 上限。

上述的指導方針並未涵蓋所有可能的案例。當您決定複寫執行個體的大小時,務必考慮特定使用案例的具體情況。

先前的測試顯示 CPU 和記憶體會因不同的工作負載而異。特別是 LOB 會影響記憶體,而任務計數或平行處理會影響 CPU。執行遷移之後,請監控複寫執行個體的 CPU、可釋放記憶體、可用儲存體和 IOPS。根據您收集的資料,可以視需要擴展或縮減複寫執行個體大小。