현재
Aurora PostgreSQL을 운영 중입니다. ( Writer Node 1 대, Reader Node 1대 )
현재 PostgreSQL을 이용하면서 장애를 겪었는데 정확한 원인 분석이 필요해보입니다.
또는 이와같은 사례가 있는지 문의드립니다.
- Writer Node 에서 배치작업 수행
- 해당 배치 Process 는 특정 테이블에 데이터를 Delete / Insert 합니다.
- 해당 배치작업은 10분마다 수행 됩니다.
- 배치 수행 시 Delete/Insert 가 되는 건수는 항상 다르며, 특정 이벤트가 있을때 Delete / Insert 양이 많아집니다.
- Writer Node 에서 Batch 가 완료 후 AutoVacuum 이 수행됩니다.
- Auto Vacuum 이 수행되고 , Auto Analyze도 같이 수행됩니다.
- ps_stat_all_tables를 확인 했을 때, last_autovacuum, last_autoanalyze 컬럼이 업데이트 됩니다.
- Reader Node 에서 AutoVacuum이 수행되었던 테이블의 Select 속도가 급격하게 느려집니다.
- analyze 를 통해 통계수집을 진행 했지만 느려진 쿼리가 빨라지진 않았습니다.
- Select를 하는 쿼리의 Return 값은 1건이며, plan을 확인 했을 때 Table scan시 PK를 이용한 Index scan으로 보여집니다.
- 해당 Select의 속도는 평균 0.1초 이내에 수행되며 장애가 발생하는 시점부터는 약 70배정도 느려집니다.
- Writer Node 에서 Vacuum 을 수행 합니다.
- 밀려 있던 쿼리가 정상적으로 처리되며, Select 에 대한 속도가 원상복귀됩니다.
저는 이와 같은 순서로 Aurora PostgreSQL에서 장애를 경험하였습니다.
Aurora PostgreSQL에서 AutoVacuum 작업이 Reader instance와 어떠한 연관관계가 있는지,, 또 이와같은 사례가있는지 문의드립니다.
감사합니다