监控 Aurora PostgreSQL 中的本地写入转发 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

监控 Aurora PostgreSQL 中的本地写入转发

使用以下部分,您可以监控 Aurora PostgreSQL 集群中的本地写入转发(包括相关的 CloudWatch 指标和等待事件),以跟踪性能并识别潜在问题。

用于写入转发的 Amazon CloudWatch 指标和 Aurora PostgreSQL 状态变量

在一个或多个只读副本上使用写入转发时,以下 Amazon CloudWatch 指标适用于写入器数据库实例。

CloudWatch 指标

单位和描述

AuroraLocalForwardingWriterDMLThroughput

计数(每秒)。此写入器数据库实例每秒处理的转发 DML 语句数。

AuroraLocalForwardingWriterOpenSessions

计数。此写入器数据库实例上处理转发查询的打开会话数。

AuroraLocalForwardingWriterTotalSessions

计数。此写入器数据库实例上的转发会话总数。

以下 CloudWatch 指标适用于每个只读副本。这些指标在启用了本地写入转发的数据库集群中的每个读取器数据库实例上进行测量。

CloudWatch 指标

单位和描述

AuroraForwardingReplicaCommitThroughput

计数(每秒)。此副本每秒转发的会话中的提交数。

AuroraForwardingReplicaDMLLatency

毫秒。副本上转发 DML 的平均响应时间(以毫秒为单位)。

AuroraForwardingReplicaDMLThroughput

计数(每秒)。此副本每秒处理的转发 DML 语句数。

AuroraForwardingReplicaErrorSessionsLimit

计数。由于达到最大连接数或最大写入转发连接数限制而被写入器数据库实例拒绝的会话数。

AuroraForwardingReplicaOpenSessions

计数。在副本实例上使用本地写入转发的会话数。

AuroraForwardingReplicaReadWaitLatency

毫秒。副本等待与写入器数据库实例 LSN 一致的平均等待时间(以毫秒为单位)。读取器数据库实例等待的程度取决于 apg_write_forward.consistency_mode 设置。有关该设置的信息,请参阅 Aurora PostgreSQL 中写入转发的配置参数

在 Aurora PostgreSQL 中使用本地写入转发的等待事件

当您在 Aurora PostgreSQL 中使用写入转发时,Amazon Aurora 会生成以下等待事件。

IPC:AuroraWriteForwardConnect

当只读副本上的后端进程在等待开启与写入器数据库实例的连接时,就会发生该 IPC:AuroraWriteForwardConnect 事件。

等待次数增加的可能原因

随着尝试从只读副本连接到写入器节点的次数不断增加,此事件也会增加。

操作

减少从只读副本到写入器节点的同时连接数量。

IPC:AuroraWriteForwardConsistencyPoint

IPC:AuroraWriteForwardConsistencyPoint 事件描述在将转发写入操作的结果复制到当前区域之前,来自只读副本上节点的查询将等待的时间。仅当会话级别的参数 apg_write_forward.consistency_mode 设置为以下项之一时,才会生成此事件:

  • SESSION – 只读副本上的查询等待在该会话中所做的所有更改的结果。

  • GLOBAL – 只读副本上的查询等待该会话所做更改的结果,以及写入器数据库实例和只读副本中已提交的所有更改的结果。

有关 apg_write_forward.consistency_mode 参数设置的更多信息,请参阅 Aurora PostgreSQL 中写入转发的配置参数

等待次数增加的可能原因

等待时间较长的常见原因包括以下几点:

  • 副本滞后延长,如 Amazon CloudWatch ReplicaLag 指标所衡量。有关该指标的更多信息,请参阅监控 Aurora PostgreSQL 复制

  • 写入器数据库实例或只读副本的负载增加。

操作

根据应用程序的要求更改一致性模式。

IPC:AuroraWriteForwardExecute

当只读副本上的后端进程在等待转发查询完成并从数据库集群写入器节点获取结果时,就会发生该 IPC:AuroraWriteForwardExecute 事件。

等待次数增加的可能原因

等待次数增加的常见原因包括以下几点:

  • 从写入器节点获取大量行。

  • 写入器节点和只读副本之间的网络延迟增加会增加只读副本从写入器节点获得数据所花费的时间。

  • 只读副本的负载增加可能会延迟从只读副本向写入器节点传输查询请求的时间。

  • 写入器节点负载的增加可能会延迟从写入器节点向只读副本传输数据的时间。

操作

根据等待事件的原因,我们建议采取不同的操作。

  • 优化查询以仅检索必要的数据。

  • 优化数据操纵语言(DML)操作,使其仅修改必要数据。

  • 如果只读副本或写入器节点受到 CPU 或网络带宽的限制,请考虑将其更改为具有更大 CPU 容量或更多网络带宽的实例类型。

IPC:AuroraWriteForwardGetGlobalConsistencyPoint

当使用 GLOBAL 一致性模式的只读副本上的后端进程在执行查询之前等待从写入器节点获取全局一致性点时,就会发生该 IPC:AuroraWriteForwardGetGlobalConsistencyPoint 事件。

等待次数增加的可能原因

等待次数增加的常见原因包括以下几点:

  • 只读副本和写入器节点之间的网络延迟增加会增加只读副本从写入器节点获得数据所花费的时间。

  • 只读副本的负载增加可能会延迟从只读副本向写入器节点传输查询请求的时间。

  • 写入器节点负载的增加可能会延迟从写入器节点向只读副本传输数据的时间。

操作

根据等待事件的原因,我们建议采取不同的操作。

  • 根据应用程序的要求更改一致性模式。

  • 如果只读副本或写入器节点受到 CPU 或网络带宽的限制,请考虑将其更改为具有更大 CPU 容量或更多网络带宽的实例类型。

IPC:AuroraWriteForwardXactAbort

当只读副本上的后端进程在等待远程清理查询的结果时,就会发生该 IPC:AuroraWriteForwardXactAbort 事件。在写入转发的事务中止后,会发出清理查询,以将进程恢复到适当的状态。Amazon Aurora 之所以执行这些操作,要么是因为发现了错误,要么是因为用户发出了明确的 ABORT 命令或取消了正在运行的查询。

等待次数增加的可能原因

等待次数增加的常见原因包括以下几点:

  • 只读副本和写入器节点之间的网络延迟增加会增加只读副本从写入器节点获得数据所花费的时间。

  • 只读副本的负载增加可能会延迟从只读副本向写入器节点传输清理查询请求的时间。

  • 写入器节点负载的增加可能会延迟从写入器节点向只读副本传输数据的时间。

操作

根据等待事件的原因,我们建议采取不同的操作。

  • 调查事务中止的原因。

  • 如果只读副本或写入器数据库实例受到 CPU 或网络带宽的限制,请考虑将其更改为具有更大 CPU 容量或更多网络带宽的实例类型。

IPC:AuroraWriteForwardXactCommit

当只读副本上的后端进程在等待转发提交事务命令的结果时,就会发生该 IPC:AuroraWriteForwardXactCommit 事件。

等待次数增加的可能原因

等待次数增加的常见原因包括以下几点:

  • 只读副本和写入器节点之间的网络延迟增加会增加只读副本从写入器节点获得数据所花费的时间。

  • 只读副本的负载增加可能会延迟从只读副本向写入器节点传输查询请求的时间。

  • 写入器节点负载的增加可能会延迟从写入器节点向只读副本传输数据的时间。

操作

如果只读副本或写入器节点受到 CPU 或网络带宽的限制,请考虑将其更改为具有更大 CPU 容量或更多网络带宽的实例类型。

IPC:AuroraWriteForwardXactStart

当只读副本上的后端进程在等待转发开始事务命令的结果时,就会发生该 IPC:AuroraWriteForwardXactStart 事件。

等待次数增加的可能原因

等待次数增加的常见原因包括以下几点:

  • 只读副本和写入器节点之间的网络延迟增加会增加只读副本从写入器节点获得数据所花费的时间。

  • 只读副本的负载增加可能会延迟从只读副本向写入器节点传输查询请求的时间。

  • 写入器节点负载的增加可能会延迟从写入器节点向只读副本传输数据的时间。

操作

如果只读副本或写入器节点受到 CPU 或网络带宽的限制,请考虑将其更改为具有更大 CPU 容量或更多网络带宽的实例类型。