

# IO:XactSync
<a name="apg-waits.xactsync"></a>

当数据库等待 Aurora 存储子系统确认常规事务的提交，或者准备好的事务的提交或回滚时，会发生 `IO:XactSync` 事件。准备好的事务是 PostgreSQL 支持两阶段提交的一部分。当一个查询正在等待另一个事务提交时，也可能发生此事件，尤其是在关闭自动提交的情况下。在此类情况下，即使更新尚未提交，XactSync 上也可能看起来正在等待更新。

**Topics**
+ [支持的引擎版本](#apg-waits.xactsync.context.supported)
+ [上下文](#apg-waits.xactsync.context)
+ [等待次数增加的可能原因](#apg-waits.xactsync.causes)
+ [操作](#apg-waits.xactsync.actions)

## 支持的引擎版本
<a name="apg-waits.xactsync.context.supported"></a>

Aurora PostgreSQL 的所有版本均支持此等待事件信息。

## 上下文
<a name="apg-waits.xactsync.context"></a>

事件 `IO:XactSync` 表示实例在花时间等待 Aurora 存储子系统确认事务数据已处理。

## 等待次数增加的可能原因
<a name="apg-waits.xactsync.causes"></a>

当 `IO:XactSync` 事件的发生率超过正常（可能表示性能问题）时，典型原因包括以下几点：

**网络饱和**  
客户端与数据库实例之间的流量或至存储子系统的流量对于网络带宽来说可能太大。

**CPU 压力**  
繁重的工作负载可能会阻止 Aurora 存储守护进程获得足够的 CPU 时间。

## 操作
<a name="apg-waits.xactsync.actions"></a>

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

**Topics**
+ [监控您的资源。](#apg-waits.xactsync.actions.monitor)
+ [纵向扩展 CPU](#apg-waits.xactsync.actions.scalecpu)
+ [提高网络带宽](#apg-waits.xactsync.actions.scalenetwork)
+ [减少提交的数量](#apg-waits.xactsync.actions.commits)

### 监控您的资源。
<a name="apg-waits.xactsync.actions.monitor"></a>

要确定 `IO:XactSync` 事件增加的原因，请检查以下指标：
+ `WriteThroughput` 和 `CommitThroughput` – 写入吞吐量或提交吞吐量的变化可能显示工作负载增加。
+ `WriteLatency` 和 `CommitLatency` – 写入延迟或提交延迟的变化可能表明系统要求存储子系统执行更多工作。
+ `CPUUtilization` – 如果实例的 CPU 利用率超过 90%，Aurora 存储守护进程可能没有足够的 CPU 时间。在这种情况下，输入/输出性能会下降。

有关这些指标的信息，请参阅 [Amazon Aurora 的实例级指标](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances)。

### 纵向扩展 CPU
<a name="apg-waits.xactsync.actions.scalecpu"></a>

要解决 CPU 匮乏问题，请考虑更改为具有更多 CPU 容量的实例类型。有关数据库实例类的 CPU 容量的信息，请参阅 [适用于 Aurora 的数据库实例类的硬件规格](Concepts.DBInstanceClass.Summary.md)。

### 提高网络带宽
<a name="apg-waits.xactsync.actions.scalenetwork"></a>

要确定实例是否达到其网络带宽限制，请检查以下其他等待事件：
+ `IO:DataFileRead`、`IO:BufferRead`、`IO:BufferWrite` 和 `IO:XactWrite` – 使用大量输入/输出的查询可以生成更多这类等待事件。
+ `Client:ClientRead` 和 `Client:ClientWrite` – 具有大量客户端通信的查询可以生成更多这类等待事件。

如果网络带宽是一个问题，请考虑更改为具有更多网络带宽的实例类型。有关数据库实例类的网络性能的信息，请参阅 [适用于 Aurora 的数据库实例类的硬件规格](Concepts.DBInstanceClass.Summary.md)。

### 减少提交的数量
<a name="apg-waits.xactsync.actions.commits"></a>

为了减少提交的数量，请将语句合并到事务数据块中。