如何疑難排解 AWS DMS 工作的高目標延遲?

1 分的閱讀內容
0

我正在執行完全載入和變更資料擷取 (CDC) 的 AWS Database Migration Service (AWS DMS) 工作。來源延遲不高,但目標延遲很高或正在增加。

簡短說明

使用 Amazon CloudWatch 指標以監控複寫工作的指標。若要識別持續複寫階段 (CDC) 的複寫延遲,請監控 CDCLatencySourceCDCLatencyTargetCDCLatencySource 指標是來源與複寫執行個體間的延遲。CDCLatencyTarget 指標是複寫執行個體和目標間的延遲。如需詳細資訊,請參閱複寫工作指標

CDCLatencySource 代表從來源擷取的變動程序被延遲。高 CDCLatencyTarget 代表將變動事件套用到目標的程序被延遲。如果 CDCLatencySourceCDCLatencyTarget 都很高,請先對 CDCLatencySource 進行疑難排解,因為目標延遲始終與來源延遲相同或更高。高 CDCLatencyTarget 最有可能是因為從來源擷取變更事件有延遲。如果 CDCLatencySource 不高,但 CDCLatencyTarget 高,則下列問題可能會導致延遲:

  • 目標中沒有主索引鍵或索引。
  • 目標中有資源瓶頸。
  • 複寫執行個體中有資源瓶頸。
  • 複寫執行個體和目標間有網路問題。

若要解決這些問題,請參閱下列解決方法中的最佳實務和疑難排解一節。

解決方法

目標中沒有主索引鍵或索引

根據預設,AWS DMS 會使用資料操作語言 (DML) 陳述式將變更寫入目標,例如 INSERT、UPDATE 或 DELETE。如果找不到所需的索引,則諸如更新和刪除之類的變更可能會導致完整的表格掃描。完整表格掃描可能會造成目標效能問題,並導致目標延遲。請檢查您的目標資料庫結構描述,尤其是在您手動建立目標結構描述時。使用目標資料庫機制來識別緩慢查詢,例如 MySQL 的慢速查詢日誌PostgreSQL 的適用於 Amazon Relational Database Service Amazon RDS 的 pg_stat_activity 或查詢計劃。如果您的目標是 Amazon Redshift,還要檢查表格的分佈樣式。由於分佈樣式都需要更長的時間才能插入或更新資料到表格,因此所有分佈樣式都可能導致目標延遲。

目標中的資源瓶頸

如果您的目標沒有足夠的資源,則目標無法以 AWS DMS 傳送的速率接受變更。這可能會造成目標的資源瓶頸和目標延遲。如果其他處理程序耗用目標中的資源,也會發生這種情況。如果 AWS 託管目標,請檢查 CloudWatch 指標中的資源統計資料

複寫執行個體中的資源瓶頸

選擇具有足夠資源來處理移轉的複寫執行個體: CPU、記憶體、網路或 iOPS。

使用 CloudWatch 指標來監控您的複寫執行個體資源

複寫執行個體和目標間的網路問題

網路頻寬也可能導致延遲問題,特別是您的目標是內部部署資料庫時,或是使用 AWS DMS 進行跨 AWS 區域複寫時。

最佳實務和疑難排解

如果您的目標是 Amazon RDS,請遵循最佳實務來改善 AWS DMS 移轉的效能。Amazon RDS 具有自動備份機制,可在備份時啟動,而 Amazon RDS 則會備份移動的資料。如果目標 RDS 資料庫執行個體的快照處於擷取過程中,則當服務將變更套用至目標時,AWS DMS 可能會遇到問題。因此,目標延遲會增加,直到快照擷取完成為止。如果您的目標是 Amazon Elastic Compute Cloud (Amazon EC2) 或內部部署資料庫,請檢查目標資料庫的備份機制。

一些工作設定會導致緩慢寫入變更到目標。如果您從變更率高的來源執行持續複寫,請使用 BatchApplyEnabled。如需更多資訊,請參閱偵錯 AWS DMS 移轉的 BatchApplyEnabled 區段: 工作發生錯誤時該怎麼辦? 第 3 部分

要將 BatchApplyEnabled 設定為 True,請使用 AWS Command Line Interface (AWS CLI) 執行modify-replication-task 命令:

aws dms modify-replication-task --replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:ABCDEFGHIJKLMNOPQRSTUVWXYZ --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"

注意: 如果您在執行 AWS CLI 命令時收到錯誤訊息,請參閱 AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

相關資訊

變更程序調整設定

AWS 官方
AWS 官方已更新 6 個月前