Client:ClientWrite
Client:ClientWrite
이벤트는 Aurora PostgreSQL이 클라이언트에 데이터를 쓰기 위해 대기 중일 때 발생합니다.
지원되는 엔진 버전
이 대기 이벤트 정보는 Aurora PostgreSQL 버전 10 이상에서 지원됩니다.
컨텍스트
클라이언트 프로세스는 클러스터가 더 많은 데이터를 보낼 수 있게 되기 전 반드시 Aurora PostgreSQL DB 클러스터로부터 받은 모든 데이터를 읽어야 합니다. 클라이언트에서 데이터를 수신하기 전에 클러스터가 대기하는 시간은 Client:ClientWrite
이벤트를 트리거합니다.
Aurora PostgreSQL DB 클러스터와 클라이언트 간의 네트워크 처리량이 감소하면 이 이벤트가 발생할 수 있습니다. 클라이언트에 대한 CPU 압력 및 네트워크 포화 상태시에도 이 이벤트가 발생할 수 있습니다. CPU 압력은 CPU가 완전히 활용되고 CPU 시간을 기다리는 작업이 있을 때입니다. 네트워크 포화는 데이터베이스와 클라이언트 간의 네트워크가 처리할 수 있는 것보다 많은 데이터를 전달하는 경우입니다.
대기 증가의 가능한 원인
상위 대기에서 나타나는 Client:ClientWrite
이벤트의 일반적인 원인은 다음을 포함합니다.
- 네트워크 대기 시간 증가
-
Aurora PostgreSQL DB 클러스터와 클라이언트 간에 네트워크 지연 시간이 늘어날 수 있습니다. 네트워크 대기 시간이 높을수록 클라이언트가 데이터를 수신하는 데 필요한 시간이 늘어납니다.
- 클라이언트에 대한 로드 증가
-
클라이언트에 CPU 압력 또는 네트워크 포화가 있을 수 있습니다. 클라이언트에 대한 로드가 증가하면 Aurora MySQL DB 클러스터에서 데이터 수신이 지연됩니다.
- 클라이언트에 전송되는 대용량 데이터
-
Aurora PostgreSQL DB 클러스터가 많은 양의 데이터를 클라이언트에 전송하고 있을 수 있습니다. 클라이언트는 클러스터가 데이터를 전송하는 만큼 빠르게 데이터를 수신하지 못할 수 있습니다. 큰 테이블 복사와 같은 활동 시
Client:ClientWrite
이벤트가 증가할 수 있습니다.
작업
대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
클러스터와 동일한 가용 영역 및 VPC 서브넷에 클라이언트를 배치합니다.
네트워크 대기 시간을 줄이고 네트워크 처리량을 늘리려면 Aurora PostgreSQL DB 클러스터와 동일한 가용 영역 및 Virtual Private Cloud(VPC) 서브넷에 클라이언트를 배치합니다.
현재 세대 인스턴스 사용
점보 프레임을 지원하는 DB 인스턴스 클래스를 사용하지 않는 경우도 있습니다. Amazon EC2 애플리케이션을 실행하는 경우 클라이언트에 현재 세대 인스턴스를 사용하는 것이 좋습니다. 또한 클라이언트 운영 체제에서 최대 전송 단위(MTU)를 구성합니다. 이 기술은 네트워크 왕복 수를 줄이고 네트워크 처리량을 늘릴 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서의 점보 프레임(9001 MTU)을 참조하세요.
DB 인스턴스 클래스에 대한 자세한 내용은 Amazon Aurora DB 인스턴스 클래스 섹션을 참조하세요. Amazon EC2 인스턴스 유형과 동일한 DB 인스턴스 클래스를 확인하려면 db.
가 Amazon EC2 인스턴스 유형 이름 앞에 있어야 합니다. 예를 들어, r5.8xlarge
Amazon EC2 인스턴스는 db.r5.8xlarge
DB 인스턴스 클래스입니다.
클라이언트에 전송해야 하는 데이터 양 감소
가능하면 애플리케이션을 조정하여 Aurora PostgreSQL DB 클러스터가 클라이언트에 보내는 데이터의 양을 줄이세요. 이러한 조정을 수행하면 클라이언트에서 CPU 및 네트워크 경합을 줄일 수 있습니다.
클라이언트 확장
Amazon CloudWatch 또는 기타 호스트 지표를 사용하여 클라이언트가 현재 CPU 또는 네트워크 대역폭 또는 둘 다에 의해 제한되어 있는지 확인합니다. 클라이언트가 제한된 경우 그에 따라 클라이언트를 확장합니다.