Computer Engineering/DB(DataBase)

Aurora MySQL replica lag 이슈 (복제 지연 이슈)

jordan.bae 2023. 5. 7. 22:34

Aurora replica lag이란?

writer 인스턴스의 페이지 캐시와 비교한 Aurora replica의 페이지 캐시에 대한 지연 시간.

같은 스토리지를 활용하지만 각 reader computing instance간의 페이지 캐시에 업데이트 하기까지에는 짧지만 lag이 존재한다. 지연이 길어지는 경우 replica에 연결된 connection에서의 data가 sync되지 않아서 이슈가 발생할 수 있기 때문에 lag이 길어지는지 모니터링 할 필요가 있다.

 

replica lag 발생하는 경우

  • 인스턴스가 동일한 사양인지 체크
    • reader node의 인스턴스 클래스 구성이 Writer보다 너무 작은 경우 변경 데이터의 볼륨이 너무 커서 리더가 캣이의 데이터를 무효화하고 따라잡 수 없게 됩니다.
  • 여러 세션이 동시에 실행 줄일 때 리더 노드에서 지연이 발생할 수 있음. (복제에 사용 가능한 리소스가 부족하기 때문에 필요한 변경 사항을 적용하는 속도가 느려질 수 있습니다.
    • 이런 경우 CPUUtilization, DBConnections, NetworkReceiveThroughput, ActiveTransactions 지표들을 확인
  • 이미 쓰기 작업이 많은 프로덕션 클러스터에서 갑자기 쓰기 작업이 급증하면 라이터 DB 인스턴스에 오버로드가 발생할 수 있습니다. 이러한 급증에 따른 처리 부담으로 인해 리더 노드에서 지연이 발생할 수 있습니다. DMLThroughput, DDLThroughput 및 Queries 지표의 급증을 보여주는 Amazon CloudWatch에서 이를 확인할 수 있습니다.
    • DMLThroughput, DDLThroughput 및 Queries 지표 확인
  • RollbackSegmentHistoryListLength 가 길어질때. 트랜잭션 기간 동안 영향을 받는 모든 행에 발생한 모든 변경 사항을 추적해야 한다. 장기 실행 트랜잭션이 완된 후 스레드 purge활동이 증가. 장기 실행 트랜잭션을 통해 생성된 백로그의 볼륨으로 인해 발생하는 갑작스러운 제거 작업이 원인이 되어 Aurora 복제본이 지연될 수 있습니다.
  • 일시적 네트워크 문제 해결
    • 드물지만 라이터 노드와 리더 노드 간에 또는 노드와 Aurora 스토리지 계층 간에 일시적인 네트워킹 통신 장애가 발생할 수 있습니다. 짧은 순간의 네트워킹 중단으로 인해 리더 노드가 지연되거나 다시 시작될 수 있습니다. 대량의 변경 데이터 또는 짧은 순간의 AZ 간 패킷 손실로 인한 네트워크 포화로 인해 Aurora Replica가 지연될 수 있습니다. 이 문제를 방지하려면 DB 인스턴스의 크기와 네트워킹 용량을 고려하는 것이 좋습니다.

중요: 버전 1.17.4부터 Aurora MySQL 1.x에는 다음과 같은 몇 가지 주목할 만한 기능이 있습니다.

  • aurora_enable_replica_log_compression은 복제 페이로드를 압축하여 프라이머리와 Aurora 복제본 간의 네트워크 대역폭 사용률을 개선하는 클러스터 파라미터입니다. 이는 네트워크 포화 상태가 명확하게 나타날 때 유용합니다.
  • aurora_enable_zdr은 열려 있는 연결을 유지하고 Aurora Replica를 다시 시작할 때 연결을 유지하는 데 활용할 수 있는 클러스터 파라미터입니다.
  • aurora_enable_staggered_replica_restore는 Aurora 복제본이 시차가 있는 재시작 일정에 따라 클러스터 가용성을 높일 수 있는 클러스터 파라미터입니다.
반응형

'Computer Engineering > DB(DataBase)' 카테고리의 다른 글

MySQL Isolation Level 정리  (4) 2023.05.04
MySQL kill 명령어 (프로세스 kill하기)  (0) 2022.11.22
MySQL InnoDB History란?  (2) 2020.12.19