如何針對 Application Migration Service 在 Windows 來源伺服器上的複寫延遲或待辦項目問題,進行疑難排解?

3 分的閱讀內容
0

使用 AWS Application Migration Service 複寫資料時,我在 Windows 來源伺服器中看到延遲或待辦項目。

簡短說明

從來源伺服器複寫資料到目標伺服器時,導致複寫延遲和產生待辦項目的因素如下列所示:

  • 網路上行速度和頻寬可用性: 來源伺服器與複寫伺服器之間的網路連線速度可能會對複寫效能產生重大影響。連線速度緩慢可能導致複寫程序無法完成。此外,有限的頻寬會限制您在指定時間內可以複寫的資料量。
  • 複寫時磁碟中的變更: 在複寫程序期間,來源伺服器可能會繼續將新資料寫入其磁碟。如果來源伺服器正在寫入的新資料量大幅增加,則資料會累積並建立顯著的待辦項目。AWS 複寫代理程式必須透過初始同步傳送此待辦項目。待辦項目越大,完成資料複寫所需的時間越長。
  • 儲存磁碟的 I/O 速度: 在複寫過程中,AWS 複寫代理程式會讀取磁碟的儲存區塊,並傳輸資料到複寫伺服器。不過,來源伺服器磁碟的高讀取延遲可能會影響資料複寫的速度和效率。緩慢的磁碟會造成延遲,而快速磁碟則會提高複寫速度。
  • 在來源服務器上載入: 來源伺服器上的資源爭用可能會導致高 CPU 使用率、記憶體消耗、I/O 等待或其他資源限制。例如,高 CPU 使用率可能會導致複寫瓶頸。這是因為系統難以在 AWS 複寫代理程式和其他程序之間分配 CPU 資源。同樣地,高記憶體消耗可能會導致系統將記憶體分頁交換到磁碟。這會導致 I/O 等待增加,並減慢複寫程序的速度。
  • 佈建不足的複寫資源: 以較低的輸送量和 IOPS 來暫存 Amazon Elastic Block Store (Amazon EBS) 磁碟區,可能會造成讀取和寫入的嚴重延遲、佇列長度過長。所有這些問題都會影響複寫效能。此外,具有低網路輸送量和 Amazon EBS 頻寬的複寫伺服器執行個體類型會導致複寫效能問題。

解決方法

若要判斷延遲的原因,請先對來源伺服器執行檢查。然後,對暫存區執行檢查。

來源伺服器檢查

確認來源伺服器已啟動並正常運作

確定遷移的來源伺服器已啟動並正常運作。

確認 AWS 複寫代理程式程序是否正在執行

從 PowerShell 執行下列命令,藉此列出正在執行的 AWS 複寫代理程式服務:

get-service | where-object name -like “*AWSR*”

下列輸出顯示正在執行的預設服務。確認主要的 AWSReplicationService 正在執行:

PS C:\Users\Administrator> get-service | where-object name -like “*AWSR*”

Status   Name               DisplayName
------   ----               -----------
Running  AwsReplicationD... AwsReplicationDriverLogger
Running  AwsReplicationL... AwsReplicationLogger
Stopped  AwsReplicationP... AwsReplicationPostConvertService
Running  AwsReplicationS... AwsReplicationService
Running  AwsReplicationV... AwsReplicationVolumeUpdaterService

或者,按下 Windows + R,輸入 services.msc,然後按 Enter 鍵。確認 AWSReplicationService 正在執行。

確認 TCP 連線正在作用中

確認在 TCP 連接埠 1500 上與複寫伺服器建立了五個作用中的 TCP 連線。

執行下列命令:

C:\Users\Administrator>netstat -an | find "1500"

檢查作用中連線的指令輸出:

TCP    172.31.82.135:50929    <Replicator Instance IP>:1500    ESTABLISHED
TCP    172.31.82.135:50930    <Replicator Instance IP>:1500    ESTABLISHED
TCP    172.31.82.135:50931    <Replicator Instance IP>:1500    ESTABLISHED
TCP    172.31.82.135:50933    <Replicator Instance IP>:1500    ESTABLISHED
TCP    172.31.82.135:50934    <Replicator Instance IP>:1500    ESTABLISHED

使用 Windows 資源監視器,檢查來源伺服器的效能

AWS 複寫代理程式一次在一個 CPU 核心上運作。如果執行 AWS 複寫代理程式的核心 CPU 使用率很高,則資料複寫速度會變慢。若要檢查 CPU 使用率,請完成下列步驟:

1.    使用下列方法之一來啟動 Windows 資源監視器:

  • 在工作管理員的 Performance (效能) 索引標籤上,選擇 Open Resource Monitor (開啟資源監視器)。
  • Control Panel (控制台) 中,選擇 Administrative Tools (系統管理工具) > Resource Monitor (資源監視器)。
  • 從命令列或 PowerShell 執行 resmon.exe
  • 選擇 Windows 圖示,然後輸入 resmon.exe

2.    檢查執行 AWS 複寫代理程式的 CPU 核心的 CPU 使用率。

  • 如果該核心的 CPU 使用率很高,則請調查哪個程序佔用了大部分 CPU。
  • 代理程式至少使用 5% 的 CPU。確定有足夠的 CPU 可供代理程式執行資料複寫。

3.    檢查來源伺服器上的磁碟效能。

檢查寫入 (B/秒) 和回應時間指標。

您可以在「磁碟活動」底下查看這些指標。如果來源磁碟上的讀取輸送量低,則代理程式會讀取和複寫較少的資料。請注意磁碟讀取和磁碟寫入指標是否有任何增加。

**注意:**透過 TCP 連接埠 1500 傳輸複寫資料所需的頻寬取決於參與的來源伺服器寫入速度。最佳做法是擁有至少等於所有複寫來源機器平均寫入速度總和的頻寬。

4.    檢查來源伺服器是否發生寫入作業突增的狀況。

若要檢查「磁碟活動」底下的寫入作業,請尋找 Write (B/sec)。

隨著工作負載變更,請定期檢查磁碟效能以利判斷 I/O 負載。如果寫入輸送量 (MB/s) 超過提供的網路輸送量,您會看到複寫延遲。

**注意:**若要計算從來源伺服器到複寫伺服器所需的頻寬,請參閱計算 TCP 連接埠 1500 所需的頻寬

如果您的來源伺服器寫入量龐大,而且寫入速度超過複寫的速度,則待辦項目會持續增加。

檢查從來源伺服器到暫存區子網路的複寫速度和可用頻寬

若要了解關於如何執行速度測試的資訊,請參閱如何執行 SSL 連線和頻寬測試?

檢查是否有不正常關機的來源伺服器

如果來源伺服器發生不正常關機,AWS 複寫代理程式會在伺服器重新啟動後重新掃描所有磁碟。AWS 複寫代理程式會重新讀取磁碟,延遲會持續增加,直到重新掃描完成為止。如需詳細資訊,請參閱哪些 Windows 和 Linux 作業系統支援重新開機時無法重新掃描?

若要確認來源機器的關機方式,請完成以下步驟:

1.    按下 ** Windows + R**,輸入 eventvwr.msc,然後按下 Enter 鍵。

2.    在 [事件檢視器] 中,連按兩下 Windows Logs (Windows 日誌) 將其展開。

3.    用滑鼠右鍵按一下 System (系統)。

4.    選擇 Filter Current Log (篩選當前日誌)。

5.    選擇 Event sources (事件來源) 附近的下拉式箭頭,然後選擇 USER32

6.    在 <All Event IDs> 欄位中輸入 1074,然後選擇 OK (確定)。您會在事件檢視器中看到關閉 (關機) 和重新啟動關閉類型事件的清單。

7.    若要查看所有電腦未預期關機的日期和時間,請在 ****<All Event IDs> 欄位中輸入 6008,然後選擇 OK (確定)。

確認 TCP 連接埠 1500 未封鎖傳出

1.    請確定 TCP 連接埠 1500 未封鎖從來源伺服器到複寫伺服器的傳出。

2.    您可以對複寫器執行個體 IP 位址執行 Telnet 或 TNC,如下列範例所示:

  • From CMD: telnet <replication subnet IP address> 1500
  • From PowerShell: TNC <replication subnet IP address> -port 1500

3.    請確定您的本機防火牆允許透過 TCP 連接埠 443 從來源伺服器連線到複寫伺服器。若要開啟作業系統防火牆的連線功能,請完成下列動作:

  • 在來源伺服器上,開啟 Windows 防火牆主控台。
  • 在主控台上,從樹狀結構中選擇 Outbound Rules (傳出規則) 選項。
  • Outbound Rules (傳出規則) 表中,選取與「Remote Port - 1500」(遠端連接埠-1500) 連線相關的規則。確認 Enabled (已啟用) 狀態是否設定為 Yes (是) 。
  • 如果規則的 Enabled (已啟用) 狀態為 No (否),則按一下滑鼠右鍵並選取 Enable Rule (啟用規則)。

4.    若要允許流量經過 TCP 連接埠 1500,請確定您的公司防火牆允許此連線方式。

**注意:**您也可以執行 SSL 速度測試或 iperf 測試。如需詳細資訊,請參閱如何執行 SSL 連線和頻寬測試?

確認來源伺服器的複寫設定中已關閉頻寬限流

在來源伺服器的複寫設定中關閉頻寬限流。關閉頻寬限流有助於維持足夠的頻寬,以便從來源伺服器傳輸資料到暫存區子網路。

在來源伺服器中開啟頻寬限流,會導致持續或停滯的延遲成長延遲。這是因為限流限制了從來源伺服器到複寫伺服器的資料複寫。

若要檢查頻寬限流,請完成以下步驟:

1.    開啟 Application Migration Service 主控台

2.    選擇 Settings (設定),然後選取 Data routing and throttling (資料路由和限流) 底下的複寫範本。

3.    如果限流網路頻寬已開啟,請檢查該值,並將其與列出的複寫速度進行比較。如需詳細資訊,請參閱上一節檢查從來源伺服器到暫存區子網路的複寫速度和可用頻寬

暫存區資源檢查

確認 TCP 連接埠 1500 未封鎖傳入

確定在複寫伺服器的安全群組中,TCP 連接埠 1500 未封鎖傳入。

**注意:**您必須在 Amazon Elastic Compute Cloud (Amazon EC2) 主控台中完成下列步驟。

1.    開啟 Amazon EC2 控制台

2.    選取連接到複寫器執行個體的安全群組。

3.    確認連接的安全群組允許傳入 TCP 連接埠 1500。

檢查目標區域中的快照配額

確保您的 AWS 帳戶未達到複寫來源伺服器的區域中的快照配額限制。執行下列 AWS 命令列界面 (AWS CLI) 命令,以便檢查您是否達到區域中的快照配額。在下列範例中,使用您的目標區域取代 region

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI

# aws service-quotas get-service-quota --service-code ebs --quota-code L-309BACF6 --region region --query "Quota.Value"  
# aws ec2 describe-snapshots --owner-ids self --region region --query "length(Snapshots)"

相關資訊

識別使用 AWS Application Migration 服務時的複寫瓶頸

AWS 官方
AWS 官方已更新 1 年前