跳至內容

我該如何對 AWS Application Migration Service 的 Windows 來源伺服器上的複寫延遲或待辦事項進行疑難排解?

3 分的閱讀內容
0

我在使用 AWS Application Migration Service 複寫資料時,發現 Windows 來源伺服器有延遲或待辦事項。

簡短說明

您在複寫資料時可能會遇到延遲和待辦事項,原因如下:

  • 網路連線速度過慢,導致複寫程序無法完成,或您的頻寬限制了可複寫的資料量。
  • 新的磁碟資料突然增加,造成 AWS 複寫代理程式在初始同步時必須傳送待辦事項。
  • 來源伺服器磁碟的讀取延遲過高,導致磁碟磁碟複寫延遲。
  • CPU、記憶體、I/O 等待或其他資源使用率過高導致複寫瓶頸。
  • 您選擇的的 Amazon Elastic Block Store (Amazon EBS) 暫存磁碟輸送量或每秒讀寫次數 (IOPS) 較低,且伺服器的網路頻寬有限。這些情況會導致複寫過程中出現延遲和效能問題。

解決方法

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

檢查來源伺服器

確認來源伺服器狀態

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

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

若要列出正在執行的 AWS 複寫代理程式服務,請從 PowerShell 執行以下命令:

get-service | where-object name -like "*AWSR*"

在輸出中,確認 AWSReplicationService 狀態為 Running (執行中)。

輸出範例:

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 狀態為 Running (執行中)。

確認 TCP 連線正在作用中

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

若要查看 TCP 1500 連接埠,請以管理員身分執行以下命令:

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. 開啟 Task Manager,然後選擇 Performance (效能) 索引標籤。接著,選擇 Open Resource Monitor (開啟資源監視器)。
    -或-
    開啟控制台,然後選擇 Administrative Tools (管理工具)。接著,選擇 Resource Monitor (資源監視器)。
    -或-
    從命令列或 PowerShell 執行 resmon.exe
    -或
    選擇 Windows 圖示,然後輸入 resmon.exe
  2. 檢查執行 AWS 複寫代理程式的 CPU 核心的 CPU 使用率。
    如果該核心的 CPU 使用率過高,請調查佔用 CPU 最多的程序。如果代理程式使用至少 5% 的 CPU,請確認有足夠的 CPU 供代理程式執行資料複寫。
  3. 檢查來源伺服器的磁碟效能。在 Disk Activity (磁碟活動) 下,檢查 Write (B/sec) (寫入速度) 和 Response Time (回應時間) 指標。
    如果來源磁碟上的讀取輸送量低,則代理程式會讀取和複寫較少的資料。請注意磁碟讀取和磁碟寫入指標是否有任何增加。
    **注意:**透過 TCP 1500 連接埠傳輸複寫資料所需的頻寬,取決於參與的來源伺服器的寫入速度。最佳實務是,頻寬至少要等於所有複寫來源機器平均寫入速度的總和。
  4. 檢查來源伺服器是否發生寫入作業突增的狀況。在 Disk Activity (磁碟活動) 下,檢查 Write (B/sec) (寫入速度) 指標。
    隨著工作負載變化,請定期檢查磁碟效能以判斷 I/O 負載。如果寫入輸送量 (MB/s) 超過提供的網路輸送量,則會出現複寫延遲。
  5. (選用) 計算從來源伺服器到複寫伺服器所需的頻寬
    **注意:**如果您的來源伺服器寫入量很大,且寫入速度超過複寫速度,則待辦事項會持續增加。

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

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

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

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

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

  1. Windows + R,然後輸入 eventvwr.msc
  2. Enter 鍵。
  3. 在導覽窗格中,按兩下 Windows Logs (Windows 日誌) 以展開選項。
  4. 開啟 System (系統) 的內容 (按一下滑鼠右鍵) 功能表。
  5. 選擇 Filter Current Log (篩選目前日誌)。
  6. 選擇 Event sources (事件來源) 下拉式箭頭,然後選擇 USER32
  7. All Event IDs (所有事件 ID) 中,輸入 1074,然後選擇 OK (確定)。此時,Event Viewer (事件檢視器) 將顯示關機與重新啟動的 Shutdown Type (關機類型) 事件清單。
  8. 若要查看所有非預期關機的日期與時間,請在 All Event IDs (所有事件 ID) 欄位輸入 6008,然後選擇 OK (確定)。

確定您沒有阻擋傳出 TCP 1500 連接埠的流量

若要確認未阻擋從來源伺服器到複寫伺服器的傳出 TCP 1500 連接埠流量,請執行以下其中一個命令:

從 CMD 執行以下命令:

telnet replication-subnet-IP-address 1500

從 PowerShell 執行以下命令:

TNC replication-subnet-IP-address -port 1500

**注意:**將 replication-subnet-IP-address 替換為您的複寫器執行個體 IP 位址。

請確定您的本機防火牆允許透過 TCP 443 連接埠,從來源伺服器連線到複寫伺服器。若要在作業系統 (OS) 防火牆上啟用連線,請完成以下步驟:

  1. 在來源伺服器上,開啟 Windows Firewall (Windows 防火牆) 主控台。
  2. 選擇 Outbound Rules (傳出規則)。
  3. Outbound Rules (傳出規則) 資料表中,選取與遠端 1500 連接埠相關的規則。確認 Enabled (已啟用) 狀態設為 Yes (是)。
  4. 如果規則的 Enabled (已啟用) 狀態為 No (否),請開啟該規則的內容 (按一下滑鼠右鍵) 功能表。然後選取 Enable Rule (啟用規則)。

確保公司防火牆允許 TCP 1500 連接埠的流量。

確認來源伺服器複寫設定中已停用頻寬限流

在來源伺服器上停用頻寬限流,以保持來源伺服器到暫存區子網路的資料傳輸頻寬充足。頻寬限流可能會導致延遲持續或停滯性增加,因為它限制了來源伺服器到複寫伺服器的資料複寫。

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

  1. 開啟 Application Migration Service console (Application Migration Service 主控台)。
  2. 選擇 Settings (設定)。
  3. Data routing and throttling (資料路由與限流) 下,選取複寫範本。
  4. 選取 Do not throttle bandwidth (頻寬不限流),允許複寫作業使用全部可用的網路容量,從而縮短遷移時間。
    **注意:**當您選取 Throttle bandwidth (頻寬限流) 時,Application Migration Service 會人工限制資料傳輸速度。這會造成瓶頸,減慢複寫程序。只有在需要限制網路使用量以控制成本或保護其他關鍵應用資源時,才選取此選項。

檢查暫存區資源

確認傳入 TCP 1500 連接埠流量未受阻擋

若要確認複寫伺服器安全群組未阻擋傳入 TCP 1500 連接埠流量,請完成以下步驟:

  1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) console (Amazon Elastic Compute Cloud (Amazon EC2) 主控台)。
  2. 在導覽窗格中,選擇 Security groups (安全群組),然後選取附加至複寫器執行個體的安全群組。
  3. 確認安全群組允許傳入 TCP 1500 連接埠流量。

分析暫存資源

檢查複寫執行個體與暫存磁碟組態是否有效能瓶頸

檢查目的地區域的快照配額

確認您的 AWS 帳戶未超過複寫伺服器所在 AWS 區域的快照配額。

若要檢查區域的快照配額,請執行以下 get-service-quota AWS CLI 命令:

aws service-quotas get-service-quota --service-code ebs --quota-code L-309BACF6 --region regionexample --query "Quota.Value"  

**注意:**將 regionexample 替換為您的區域。

然後執行以下 describe-snapshots 命令,以檢查該區域的快照:

aws ec2 describe-snapshots --owner-ids self --region regionexample --query "length(Snapshots)"

**注意:**將 regionexample 替換為您的區域。