AWS

[AWS RDS] Performance Insight로 DB부하의 원인 찾기

SungWookKang 2022. 4. 24. 21:00
반응형

[AWS RDS] Performance Insight DB부하의 원인 찾기

 

l  Version : Performance Insight

 

AWS RDS 데이터베이스를 사용할 , 데이터베이스 인스턴스의 성능 지표 로그를 CloudWatch에서 수집하여 여러 성능 지표에 대한 모니터링을 진행할 있다. 하지만 슬로우 쿼리, 대기정보, 세션별 쿼리 실행 데이터베이스를 운영하기 위해 조금 자세한 정보를 확인하려면 RDS 성능 개선 도우미(Performance Insight) 사용할 있다.

 

성능 개선 도우미를 사용하려면 DB 인스턴스 또는 다중 AZ DB 클러스터에서 활성화 해야한다. 필요에 따라 활성/비활성이 가능하며, 상태 변경 재부팅 또는 장애조치가 발생하지 않는다. 성능 개선 도우미를 사용하면 에이전트가 실행되는데 이때 약간의 오버헤드가 발생하기 때문에 DB 로드가 높은 경우 수집 빈도를 조절하여 사용할 있도록 한다.

 

성능 개선 도우미는 콘솔에서 쉽게 설정이 가능하며 AWS CLI RDS API 통해서도 설정이 가능하다.

 

성능 개선 도우미의 활성화에 대한 자세한 내용은 아래 공식 문서를 참고 한다.

l  성능 개선 도우미 설정 해제 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html

 

성능 개선 도우미에 액세스 하려면 IAM(Identity and Access Management) 적절한 권한이 있어야 한다. IAM 대한 정책은 아래 문서를 참고한다.

l  Performance Insights 대한 액세스 정책 구성 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.access-control.html

 

성능 개선 도우미의 대시 보드는 기본적으로 마지막 1시간 동안 수집된 데이터를 표시한다.

 

대시보드는 아래와 같이 부분으로 나눌 있다.

l  카운터 지표 : 특정 성능 카운터 지표의 데이터를 표시

l  DB 부하 차트 : DB 부하와 DB 인스턴스 용량을 비교하여 최대 vCPU 선으로 표시

l  상위 항목(Top Item) : DB 로드에 기여하는 상이 차원을 표시

 

부분에 대한 자세한 내용은 아래 링크를 참고한다.

l  성능 개선 도우미 대시보드 개요 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.Components.html

 

대시보드 화면의 데이터베이스 로드(Database load) 차트에서는 병목 현상에 대한 정보를 확인할 있다. 어떤 데이터베이스 로그가 최대 CPU(Max CPU) 선을 상회하는지 확인할 있고 어떤 작업이 DB 부하를 차지하는지 보여준다. 아래 그림에서는 로그 파일 동기화 대기 시간이 대부분의 DB 부하를 차지한다. 그리고 LGWR all worker groups 대기 시간도 높다. TOP SQL 차트는 로그 파일 동기화 대기의 원인에 사용된 SQL 구문인 COMMIT 문을 보여준다.

 

TOP SQL 에서는 데이터베이스 로드에 영향을 미치는 상위 SQL 쿼리가 표시된다. TOP SQL 탭에서는  SQL 통계(SQL Statistics) 대기별 로드(AAS), SQL 정보, 환경설정 정보 등을 확인할 있다.

 

SQL 통계 (SQL Statistics) SQL 쿼리에 대한 성능 관련 지표이다. 초당 실행 횟수 초당 처리된 행을 표시한다.

 

 

대기 시간별 로드(Load by waits AAS) 상위 로드 항목과 연결된 데이터베이스 로드의 비율을 나타낸다. 예를 들어 DB 로드 차트를 대기 상태별로 그룹화 있다. 쿼리가 영향을 미치는 대기 상태의 정도를 크기, 세그먼트 컬러 코드로 표시한다.

 

 

SQL 정보에서는 TOP SQL 실행된 쿼리와 SQL ID, Support Digest ID등을 확인할 있다.

 

환경설정에서는 수집되는 항목을 설정 있다.

 

 

위에서 나열한 항목의 자세한 내용은 아래 공식 문서를 참고 한다.

l  상위 SQL(Top SQL) 개요 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.html

 

 

기본적으로 TOP SQL 테이블의 행에는 SQL 문에 대해 500 byte SQL 텍스트가 표시된다. SQL 문이 500byte 이상인 경우 성능 개선 도우미 대시보드에서 해당문을 열어 많은 텍스트를 있다. 경우 최대 4KB까지 표시된다. 또한 쿼리를 다운로드 있다. TOP SQL 텍스트에 대한 자세한 내용은 아래 문서를 참고 한다.

l  SQL 문의 텍스트 액세스 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.SQLTextSize.html

 

 

성능 개선 도우미를 사용할 있는 RDS 엔진 버전은 지속적으로 업데이트 되므로 항상 최신의 정보를 확인할 있도록 아래 링크의 공식 문서를 참고한다. 현재 Aurora 서버리스는 성능 개선 도우미를 지원하지 않는다.

l  Amazon RDS DB 엔진의 성능 개선 도우미 지원 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html

 

성능개선 도우미는 대부분의 리전에서 사용 가능하며, 아래 링크를 참고한다.

l  AWS성능 개선 도우미를 위한 리전 지원 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Regions.html

 

 

 

[참고자료]

l  성능 개선 도우미 설정 해제 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html

l  Performance Insights 대한 액세스 정책 구성 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.access-control.html

l  성능 개선 도우미 대시보드 개요 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.Components.html

l  SQL 문의 텍스트 액세스 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.SQLTextSize.html

l  Amazon RDS DB 엔진의 성능 개선 도우미 지원 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html

l  Amazon RDS DB 엔진의 성능 개선 도우미 지원 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.Engines.html

 

 

2022-04-24 / Sungwook Kang / http://sungwookkang.com

 

 

AWS, RDS, Performance Insight, 성능 개선 도우미, DB 모니터링, 쿼리 모니터링, DB 성능 개선

반응형