排除 Amazon Database Migration Service 中的延迟问题 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

排除 Amazon Database Migration Service 中的延迟问题

本节概述了在持续复制阶段 (CDC),造成 Amazon DMS 任务延迟的常见原因。Amazon DMS 异步复制数据。延迟是在源上提交了更改与将更改复制到目标之间的延误。延迟可能是由于复制组件的配置错误所致,如下所示:

  • 源端点或数据来源

  • 目标端点或数据来源

  • 复制实例

  • 这些组件之间的网络

我们建议您使用测试迁移作为概念验证,用于收集有关复制的信息。然后,您可以使用此信息来调整复制配置以尽可能减少延迟。有关运行概念验证迁移的信息,请参阅运行概念验证

CDC 延迟的类型

本节包含 CDC 期间可能发生的复制延迟的类型。

源延迟

从源端点中捕获的最后一个事件与复制实例的当前系统时间戳之间的间隔(秒)。您可以使用该CDCLatencySource CloudWatch 指标监控数据源和复制实例之间的延迟。较高的 CDCLatencySource 指标表示从源捕获更改的过程存在延迟。例如,如果您的应用程序在 10:00 向源提交插入内容,并 Amazon DMS 在 10:02 使用更改,则 CDCLatencySource 指标为 120 秒。

有关 CloudWatch 指标的信息Amazon DMS,请参阅复制任务指标

目标延迟

源上第一个等待提交到目标上时间的时间戳,与 DMS 复制实例的当前系统时间戳之间的间隔(秒)。您可以使用该CDCLatencyTarget CloudWatch 指标监控数据源和数据目标提交之间的延迟。这意味着 CDCLatencyTarget 包括从来源进行读取的任何延迟。因此,CDCLatencyTarget 始终大于或等于 CDCLatencySource

例如,如果您的应用程序在 10:00 向源提交插入内容,并 Amazon DMS 在 10:02 提交插入并在 10:05 将其写入目标,则 CDCLatencyTarget 指标为 300 秒。

CDC 延迟的常见原因

本节包含 CDC 期间复制可能遇到延迟的原因。

端点资源

以下因素会严重影响复制性能和延迟:

  • 源数据库和目标数据库配置

  • 实例大小

  • 源或目标数据存储的预置不足或配置错误

要确定Amazon托管源和目标端点问题导致延迟的原因,请监控以下 CloudWatch 指标:

  • FreeMemory

  • CPUUtilization

  • 吞吐量和 I/O 指标,例如 WriteIOPSWriteThroughputReadLatency

  • 事务量指标,例如 CDCIncomingChanges

有关监控 CloudWatch 指标的信息,请参阅Amazon Database Migration Service 指标

复制实例资源

复制实例资源对于复制至关重要,您应确保没有资源瓶颈,因为它们会导致源和目标延迟。

要确定复制实例中存在的资源瓶颈,请验证以下几点:

  • CPU、内存、每秒 I/O 和存储等关键 CloudWatch 指标没有出现峰值或持续较高的值。

  • 您的复制实例的大小适合工作负载。有关如何确定复制实例的合适大小的信息,请参阅选择复制实例的最佳大小

网络速度和带宽

网络带宽是影响数据传输的一个因素。要分析复制的网络性能,请执行以下操作之一:

  • 检查实例级别的 ReadThroughputWriteThroughput 指标。有关监控 CloudWatch 指标的信息,请参阅Amazon Database Migration Service 指标

  • 使用 Amazon DMS 诊断支持 AMI。如果您所在的地区没有诊断支持 AMI 可用,则可以从任何支持的区域下载该 AMI,然后将其复制到您所在的区域以执行网络分析。有关诊断支持 AMI 的信息,请参阅使用 Amazon DMS 诊断支持 AMI

Amazon DMS 中的 CDC 是单线程的,以确保数据一致性。因此,您可以通过计算单线程数据传输速率来确定您的网络可以支持的数据量。例如,如果您的任务使用 100 Mbps(每秒兆比特)网络连接到其源,则您的复制的理论最大带宽分配为 12.5 MBps(每秒兆字节)。这相当于每小时 45 Gb。如果源服务器上的事务日志生成的速率大于每小时 45 GB,则表示该任务有 CDC 延迟。对于 100 Mbps 的网络,这些速率是理论上的最大值;网络流量以及源和目标上的资源开销等其他因素会减少实际可用带宽。

DMS 配置

本节包含有助于减少延迟的推荐复制配置。

  • 端点设置:您的源端点和目标端点设置可能会导致复制实例的性能不佳。启用资源密集型功能的端点设置会影响性能。例如,对于 Oracle 端点,禁用 LogMiner 和使用 Binary Reader 可以提高性能,因为 LogMiner 这会占用大量资源。以下端点设置可提高 Oracle 端点的性能:

    useLogminerReader=N;useBfile=Y

    有关端点设置的更多信息,请参阅使用 Amazon DMS 端点主题中关于源和目标端点引擎的文档。

  • 任务设置:针对您的特定复制场景的某些任务设置可能会导致您的复制实例性能不佳。例如,默认情况下,对除 Amazon Redshift 之外的所有端点,Amazon DMS 默认情况下为 CDC 使用事务应用模式 (BatchApplyEnabled=false)。但是,对于有大量更改的源,将 BatchApplyEnabled 设置为 true 可能会提高性能。

    有关任务设置的更多信息,请参阅为 Amazon Database Migration Service 任务指定任务设置

  • 仅 CDC 任务的启动位置:从位于过去的位置或时间戳启动仅 CDC 任务,将会启动具有更高 CDC 源延迟的任务。根据源端的更改量,任务延迟需要一段时间才能消失。

  • LOB 设置:由于 Amazon DMS 复制大型二进制数据的方式,大型对象数据类型可能会影响复制性能。有关更多信息,请参阅以下主题:

复制场景

本节介绍特定的复制场景及其如何影响延迟。

在较长的一段时间内停止任务

停止任务时,Amazon DMS 保存从源读取的最后一个事务日志的位置。当您恢复任务执行时,DMS 会尝试从相同的事务日志位置继续读取。在几小时或几天后恢复任务会导致 CDC 源延迟增加,直到 DMS 处理完积压的事务为止。

缓存更改

缓存更改是在 Amazon DMS 运行完全加载阶段时,应用程序写入数据来源的更改。DMS 直到完全加载阶段完成并且 CDC 阶段开始时才应用这些更改。对于具有大量事务的来源,应用缓存更改需要更长的时间,因此 CDC 阶段开始时,源延迟会增加。我们建议您在事务量较低时运行完全加载阶段,以尽可能减少缓存的更改数量。

跨区域复制

将 DMS 端点或复制实例放在不同的 Amazon 区域会增加网络延迟。这会增加复制延迟。为了获得最佳性能,请将源端点、目标端点和复制实例放在同一 Amazon 区域。