

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

`IO:XactSync` 이벤트는 데이터베이스가 Aurora 스토리지 하위 시스템이 일반 트랜잭션의 커밋을 승인하거나 준비된 트랜잭션의 커밋 또는 롤백을 확인할 때까지 대기 중일 때 발생합니다. 준비된 트랜잭션은 PostgreSQL의 2단계 커밋 지원의 일부입니다. 또한 이 이벤트는 쿼리가 다른 트랜잭션의 커밋을 기다리고 있을 때, 특히 자동 커밋이 꺼져 있는 경우 발생할 수 있습니다. 이러한 시나리오에서는 업데이트가 아직 커밋되지 않았더라도 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` 이벤트가 정상보다 많이 나타나 성능 문제를 나타내는 경우 일반적인 원인은 다음과 같습니다.

**네트워크 포화**  
클라이언트와 DB 인스턴스 간 트래픽 또는 스토리지 하위 시스템에 대한 트래픽은 네트워크 대역폭에 비해 너무 무거울 수 있습니다.

**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에서 충분한 시간을 확보하지 못할 수 있습니다. 이 경우 I/O 성능이 저하됩니다.

지표에 대한 자세한 내용은 [Amazon Aurora에 대한 인스턴스 수준 지표](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances) 섹션을 참조하세요.

### CPU 확장
<a name="apg-waits.xactsync.actions.scalecpu"></a>

CPU 부족 문제를 해결하려면 CPU 용량이 더 많은 인스턴스 유형으로 변경하는 것이 좋습니다. DB 인스턴스 클래스의 CPU 용량에 대한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 섹션을 참조하세요.

### 네트워크 대역폭 향상
<a name="apg-waits.xactsync.actions.scalenetwork"></a>

인스턴스가 네트워크 대역폭 제한에 도달하는지 확인하려면 다음과 같은 다른 대기 이벤트를 확인합니다.
+ `IO:DataFileRead`,`IO:BufferRead`,`IO:BufferWrite`, 및 `IO:XactWrite` - 대량의 I/O를 사용하는 쿼리는 이러한 대기 이벤트를 더 많이 생성할 수 있습니다.
+ `Client:ClientRead`와 `Client:ClientWrite` - 클라이언트 통신이 많은 쿼리가 이러한 대기 이벤트를 더 많이 생성할 수 있습니다.

네트워크 대역폭이 문제인 경우 네트워크 대역폭이 더 많은 인스턴스 유형으로 변경하는 것이 좋습니다. DB 인스턴스 클래스의 네트워크 성능에 관한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 섹션을 참조하세요.

### 커밋 수 저감
<a name="apg-waits.xactsync.actions.commits"></a>

커밋 수를 줄이려면 명령문을 트랜잭션 블록으로 결합하세요.