如何解决 Windows 源服务器上 Application Migration Service 相关的复制滞后或积压问题?

3 分钟阅读
0

使用 AWS Application Migration Service 复制数据时,我发现 Windows 源服务器出现滞后或积压。

简短描述

以下是将数据从源服务器复制到目标服务器时导致复制滞后和积压的因素:

  • 网络上行链路速度和带宽可用性: 源服务器和复制服务器之间的网络连接速度可能会对复制性能产生重大影响。连接速度慢可能会使复制过程无法完成。此外,有限的带宽会限制在给定时间内可复制的数据量。
  • 复制过程中磁盘的变化: 在复制过程中,源服务器可能会继续向其磁盘写入新数据。如果源服务器写入的新数据量激增,数据就会积累,造成大量积压。在初始同步时,AWS Replication Agent 必须发送这些积压数据。积压数据量越大,完成数据复制所需的时间就越长。
  • 存储磁盘的 I/O 速度: 在复制过程中,AWS Replication Agent 读取磁盘的存储块,并将数据传输到复制服务器。但是,源服务器磁盘上读取延迟高可能会影响数据复制的速度和效率。磁盘速度慢会导致延迟,而磁盘速度快会提高复制速度。
  • 源服务器负载: 源服务器上的资源争用可能会导致 CPU 利用率高、内存消耗、I/O 等待或其他资源约束。例如,CPU 利用率高可能会导致复制瓶颈。这是因为系统很难在 AWS Replication Agent 和其他进程之间分配 CPU 资源。同样,内存使用率高可能会导致系统将内存页交换到磁盘。这会导致 I/O 等待时间增加和复制过程变慢。
  • 复制资源预置不足: 以较低的吞吐量和 IOPS 暂存 Amazon Elastic Block Store (Amazon EBS) 卷可能会导致读写延迟较高,队列长度较长。所有这些问题都会影响复制性能。此外,复制服务器实例类型及网络吞吐量和 Amazon EBS 带宽低也会导致复制性能问题。

解决方法

要确定滞后的原因,请先对源服务器进行检查。然后,检查暂存区域。

源服务器检查

验证源服务器是否已启动并且正在运行

确保准备进行迁移的源服务器已启动并且正在运行。

验证 AWS Replication Agent 进程是否正在运行

从 PowerShell 运行以下命令,以列出正在运行的 AWS Replication Agent 服务:

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 Replication Agent 一次只能在一个 CPU 内核上运行。如果运行 AWS Replication Agent 的内核的 CPU 利用率很高,则数据复制会很慢。要检查 CPU 利用率,请完成以下步骤:

1.使用以下方法之一启动 Windows 资源监视器:

  • 在任务管理器的性能选项卡上,选择打开资源监视器
  • 控制面板中,选择管理工具资源监视器
  • 从命令行或 PowerShell 运行 resmon.exe
  • 选择 Windows 图标,然后输入 resmon.exe

2.检查运行 AWS Replication Agent 的 CPU 内核的 CPU 利用率。

  • 如果该内核上的 CPU 利用率很高,请调查哪个进程消耗了大部分 CPU。
  • 代理使用至少 5% 的 CPU。确保有足够的 CPU 可供代理执行数据复制。

3.检查源服务器的磁盘性能。

检查写入 (B/sec) 和响应时间指标。

您可以在磁盘活动下查看这些指标。如果源磁盘上的读取吞吐量低,则代理读取和复制的数据会减少。请注意磁盘读取和磁盘写入指标的任何增加。

**注意:**通过 TCP 端口 1500 传输复制数据所需的带宽取决于参与源服务器的写入速度。最佳做法是让带宽至少等于所有复制的源计算机的平均写入速度之和。

4.检查源服务器的写入操作是否有峰值。

要在磁盘活动下检查写入操作情况,请查看写入 (B/sec)。

随着工作负载的变化,请定期检查磁盘性能以确定 I/O 负载。如果写入吞吐量 (MB/s) 超过提供的网络吞吐量,则会出现复制滞后。

**注意:**要计算从源服务器到复制服务器所需的带宽,请参阅计算 TCP 端口 1500 所需的带宽

如果您的源服务器写入量很大,并且写入速度超过了复制速度,则积压数据会继续增加。

检查从源服务器到暂存区域子网的复制速度和可用带宽

有关如何运行速度测试的信息,请参阅如何执行 SSL 连接和带宽测试?

检查是否有不正常关闭的源服务器

如果源服务器不正常关闭,AWS Replication Agent 将在服务器重新启动后重新扫描所有磁盘。AWS Replication Agent 会重新读取磁盘,滞后会持续增加,直到重新扫描完成。有关详细信息,请参阅哪些 Windows 和 Linux 操作系统支持重启后不重新扫描?

要验证源计算机是如何关闭的,请完成以下步骤:

1.按 Windows + R,键入 eventvwr.msc,然后按 Enter

2.在事件查看器中,双击 Windows 日志将其展开。

3.右键单击系统

4.选择筛选当前日志

5.选择事件源旁边的下拉箭头,然后选择 USER32

6.在 <All Event IDs> 字段中,键入 1074,然后选择确定。您可以在事件查看器中看到关机(关闭)和重启关闭类型事件的列表。

7.要查看所有计算机意外关闭的日期和时间,请键入 6008(在 <All Event IDs> 字段中),然后选择确定

验证 TCP 端口 1500 的出站流量是否未被阻止

1.确保 TCP 端口 1500 在从源服务器到复制服务器的出站流量未被阻止。

2.您可以对复制器实例 IP 地址执行 Telnet 或 TNC,如以下示例所示:

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

3.确保您的本地防火墙允许通过 TCP 端口 443 从源服务器连接到复制服务器。要在操作系统防火墙上启用连接,请完成以下操作:

  • 在源服务器上,打开 Windows 防火墙控制台。
  • 在控制台上,从树中选择出站规则选项。
  • 出站规则表中,选择与远程端口 1500 连接相关的规则。验证已启用状态是否设置为
  • 如果规则的已启用状态为,请右键单击并选择启用规则

4.要允许通过 TCP 端口 1500 的流量,请确保您的公司防火墙允许此连接。

**注意:**您也可以执行 SSL 速度测试或 iperf 测试。有关详细信息,请参阅如何执行 SSL 连接和带宽测试?

验证源服务器上复制设置中的带宽限制是否已关闭

在源服务器的复制设置中关闭带宽限制。关闭带宽限制有助于保持足够的带宽,以便将数据从源服务器传输到暂存区域子网。

在源服务器中启用带宽限制会导致滞后增加恒定或停滞。这是因为节流限制了从源服务器到复制服务器的数据复制。

要检查带宽限制,请完成以下步骤:

1.打开 Application Migration Service 控制台

2.选择设置,然后在数据路由和节流下选择复制模板。

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 Service 时的复制瓶颈

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