IO:XactSync
当数据库等待 Aurora 存储子系统确认常规事务的提交,或者准备好的事务的提交或回滚时,会发生 IO:XactSync
事件。准备好的事务是 PostgreSQL 支持两阶段提交的一部分。
支持的引擎版本
Aurora PostgreSQL 的所有版本均支持此等待事件信息。
上下文
事件 IO:XactSync
表示实例在花时间等待 Aurora 存储子系统确认事务数据已处理。
等待次数增加的可能原因
当 IO:XactSync
事件的发生率超过正常(可能表示性能问题)时,典型原因包括以下几点:
- 网络饱和
-
客户端与数据库实例之间的流量或至存储子系统的流量对于网络带宽来说可能太大。
- CPU 压力
-
繁重的工作负载可能会阻止 Aurora 存储守护进程获得足够的 CPU 时间。
操作
根据等待事件的原因,我们建议采取不同的操作。
监控您的资源。
要确定 IO:XactSync
事件增加的原因,请检查以下指标:
WriteThroughput
和CommitThroughput
– 写入吞吐量或提交吞吐量的变化可能显示工作负载增加。WriteLatency
和CommitLatency
– 写入延迟或提交延迟的变化可能表明系统要求存储子系统执行更多工作。CPUUtilization
– 如果实例的 CPU 利用率超过 90%,Aurora 存储守护进程可能没有足够的 CPU 时间。在这种情况下,输入/输出性能会下降。
有关这些指标的信息,请参阅 Amazon Aurora 的实例级指标。
纵向扩展 CPU
要解决 CPU 匮乏问题,请考虑更改为具有更多 CPU 容量的实例类型。有关数据库实例类的 CPU 容量的信息,请参阅 适用于 Aurora 的数据库实例类的硬件规格。
提高网络带宽
要确定实例是否达到其网络带宽限制,请检查以下其他等待事件:
IO:DataFileRead
、IO:BufferRead
、IO:BufferWrite
和IO:XactWrite
– 使用大量输入/输出的查询可以生成更多这类等待事件。Client:ClientRead
和Client:ClientWrite
– 具有大量客户端通信的查询可以生成更多这类等待事件。
如果网络带宽是一个问题,请考虑更改为具有更多网络带宽的实例类型。有关数据库实例类的网络性能的信息,请参阅 适用于 Aurora 的数据库实例类的硬件规格。
减少提交的数量
为了减少提交的数量,请将语句合并到事务数据块中。