메뉴
Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

미리 보기: Amazon Performance Insights 사용

Amazon RDS Performance Insights는 데이터베이스 성능을 분석하고 문제를 해결할 수 있도록 Amazon RDS DB의 인스턴스 부하를 모니터링해 줍니다. Amazon RDS Performance Insights는 현재 Amazon Aurora(PostgreSQL)와 함께 사용하는 경우에만 제공됩니다.

Performance Insights는 기존 Amazon RDS 모니터링 기능을 확장한 것으로서 데이터베이스 성능을 표시하여 성능 문제를 분석하는 데 효과적입니다. Performance Insights 대시보드가 데이터베이스 부하를 시각화하여 대기 시간, SQL 문, 호스트 또는 사용자를 기준으로 부하를 필터링합니다. Performance Insights는 기본적으로 Aurora PostgreSQL 데이터베이스 엔진에서 제공됩니다. DB 인스턴스의 데이터베이스가 2개 이상인 경우에는 모든 데이터베이스에 대한 성능 데이터가 DB 인스턴스에 수집됩니다. 데이터베이스 성능 데이터는 24시간 동안 보관됩니다.

Performance Insights의 중앙 지표는 데이터베이스 엔진에서 활성 세션의 평균 수를 의미하는 DB 부하입니다. 여기에서 활성 세션이란 데이터베이스 엔진에게 작업을 제출하여 현재 응답 대기 중인 연결 세션을 말합니다. 예를 들어 데이터베이스 엔진에게 SQL 쿼리를 제출하면 데이터베이스 엔진이 이 쿼리를 처리하는 동안 해당하는 데이터베이스 세션이 활성화됩니다.

DB Load대기 이벤트 데이터를 결합하여 활성 세션의 전체 상태를 파악할 수 있습니다. 대기 이벤트는 데이터베이스 엔진마다 다릅니다. Amazon RDS PostgreSQL 이벤트 에서는 Aurora PostgreSQL에 대해 가장 일반적으로 사용하는 대기 이벤트의 목록을 볼 수 있습니다. 모든 PostgreSQL 대기 이벤트의 전체 목록은 PostgreSQL Wait Events를 참조하십시오.

세션 정보는 수집 및 집계 후 대시보드에 평균 활성 세션 차트로 표시됩니다. 평균 활성 세션 차트에는 최대 CPU 값이 선으로 표시되기 때문에 활성 세션이 최대 값을 초과하는지 알 수 있습니다. 최대 CPU 값은 DB 인스턴스에서 vCPU(가상 CPU) 코어의 수로 결정됩니다.

평균 활성 세션 차트의 부하가 최대 CPU 선을 상회하는 경우가 잦아지고, CPU가 기본 대기 상태라면 시스템 CPU에서 과부하가 발생한 것입니다. 이러한 경우 연결 수를 인스턴스에 맞게 조절하거나, CPU 부하가 높은 SQL 쿼리를 모두 조정하거나, 인스턴스 클래스의 크기를 늘리는 것이 좋습니다. 부하가 최대 CPU 선을 넘지 않는데도 대기 상태의 인스턴스가 일관적으로 높게 나타난다면 병목 현상 또는 리소스 유지 문제가 원인일 수 있으므로 반드시 해결해야 합니다.

다음은 Performance Insights를 간략하게 소개하는 동영상입니다.

Performance Insights 대시보드 사용

Performance Insights 대시보드에는 성능 문제를 분석하여 해결할 수 있는 데이터베이스 성능 정보가 포함됩니다. 메인 대시보드 페이지에는 데이터베이스 부하에 대한 정보가 표시되며, 특정 대기 상태, SQL 쿼리, 호스트 또는 사용자에 대한 세부 정보도 알아볼 수 있습니다.

Performance Insights 대시보드 열기

Performance Insights 대시보드는 다음 절차에 따라 확인할 수 있습니다.

AWS Management Console에서 Performance Insights 대시보드를 보려면

  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Performance Insights]를 선택합니다.

  3. DB 인스턴스를 선택합니다. 선택한 인스턴스에 대한 Performance Insights 대시보드가 표시됩니다.

    인스턴스 목록에서 [Current Activity] 위젯을 선택하여 대시보드로 이동할 수도 있습니다.

     측정치 필터링
     측정치 필터링

Performance Insights 대시보드는 기본적으로 마지막 60분 동안 수집된 데이터를 표시합니다. 하지만 마지막 5분, 60분, 6시간 또는 24시간 동안 데이터를 표시하도록 수정할 수 있습니다.

 측정치 필터링

Performance Insights 대시보드 구성 요소

대시보드는 2개 부분으로 구분됩니다.

  1. 평균 활성 세션 차트 - 데이터베이스 부하와 DB 인스턴스 용량을 비교하여 최대 CPU 선으로 표시합니다.

  2. 상위 부하 항목 테이블 - 데이터베이스 부하에 가장 많이 영향을 미치는 항목을 보여 줍니다.

평균 활성 세션 차트

평균 활성 세션 차트는 데이터베이스 부하와 DB 인스턴스 용량의 비교 방식을 최대 CPU 선으로 표시합니다. 기본적으로 부하는 대기 상태를 기준으로 구분된 활성 세션으로 표시됩니다. 또한 SQL 쿼리, 호스트 또는 사용자로 구분된 활성 세션으로 부하를 표시하도록 선택할 수도 있습니다.

 측정치 필터링

선택한 기간의 항목 세부 정보를 범례에 표시하려면 평균 활성 세션 차트의 임의 항목 위로 마우스 포인터를 가져가면 됩니다.

 측정치 필터링

상위 부하 항목 테이블

[Top Load Items] 테이블에는 데이터베이스 부하에 영향을 끼치는 상위 항목이 표시됩니다. 기본적으로 데이터베이스 부하에 영향을 미치는 상위 SQL 쿼리가 표시됩니다. 쿼리는 구조적으로 유사한 실제 쿼리가 다수 요약되어 표시되지만 다른 파라미터가 존재할 가능성도 있습니다. 그 밖에 최상위 대기 상태, 호스트 또는 사용자를 표시하도록 선택할 수도 있습니다.

 측정치 필터링

각 상위 부하 항목과 관련된 데이터베이스 부하 비율(%)는 [DB Load by Waits] 열에 표시됩니다. 이 열에는 현재 평균 활성 세션 차트에서 어떤 구분 기준을 선택하든 그 기준에 따라 해당 항목의 부하가 반영됩니다. 예를 들어, 평균 활성 세션 차트가 호스트별로 구분되어 있고 상위 부하 항목 테이블에서 SQL 쿼리를 살펴보고 있다고 가정합니다. 이 경우 [DB Load by Waits] 막대는 관련 호스트에 대한 쿼리의 부하를 반영하며, 평균 활성 세션 차트의 해당 호스트에 컬러 코드로 매핑합니다.

또 다른 예로, 평균 활성 세션 차트가 대기 상태별로 구분되어 있고 상위 부하 항목 테이블에서 SQL 쿼리를 살펴보고 있다고 가정합니다. 이때 [DB Load by Waits] 막대는 쿼리가 영향을 미치는 대기 상태의 정도와, 대기 상태가 해당 쿼리에 영향을 미치는 정도를 크기, 세그먼트 및 컬러 코드로 표시합니다. 해당 쿼리에 영향을 미치는 대기 상태도 표시합니다.

 측정치 필터링

Performance Insights 대시보드를 사용한 데이터베이스 부하 분석

평균 활성 세션 차트가 병목 현상을 보일 때는 부하가 발생하는 위치를 찾아낼 수 있습니다. 이렇게 하려면 평균 활성 세션 차트 아래에 있는 상위 부하 항목 테이블을 살펴봅니다. SQL 쿼리나 사용자 같은 특정 항목을 선택하여 드릴다운을 통해 세부 정보까지 확인할 수 있습니다.

대기 상태와 상위 SQL 쿼리를 기준으로 구분된 DB 부하가 일반적으로 성능 문제에 대해 가장 큰 인사이트를 제공하는 조합이기 때문에 Performance Insights 대시보드의 기본 뷰로 사용됩니다. 대기 상태를 기준으로 구분된 DB 부하는 데이터베이스의 리소스 또는 동시성 병목 현상 유무를 표시합니다. 이 경우 상위 항목 테이블의 [SQL] 부하를 야기하는 쿼리를 표시합니다.

성능 문제를 진단하는 일반 워크플로우는 다음과 같습니다.

  1. 평균 활성 세션 차트를 보면서 데이터베이스 부하가 최대 CPU 선을 상회하는지 모니터링합니다.

  2. 상회하는 경우가 있으면 평균 활성 세션 차트를 보면서 원인이 되는 대기 상태를 식별합니다.

  3. 상위 부하 항목 테이블의 [SQL] 탭에서 어떤 쿼리가 대기 상태에 가장 큰 영향을 미치는지 모니터링하면서 부하를 야기하는 요약 쿼리를 식별합니다. [DB Load by Wait] 열을 보면 이러한 요약 쿼리를 식별할 수 있습니다.

  4. [SQL] 탭에서 요약 쿼리 중 하나를 선택하여 확장한 다음 구성하고 있는 하위 쿼리를 확인합니다.

예를 들어 다음 대시보드에서 IO:XactSync 대기 시간은 빈번한 문제입니다. [CPU] 대기 시간은 비교적 빈번하지는 않지만 부하에 여전히 중요한 역할을 합니다.

상위 부하 항목 테이블의 [SQL] 탭에서 처음 4개의 롤업 쿼리는 첫 번째 상태와 매우 밀접한 관계가 있습니다. 따라서 이러한 쿼리의 하위 쿼리까지 세부 정보를 확인해야 합니다. 이러한 쿼리가 성능 문제에 어떻게 영향을 끼치고 있는지 알아보려면 이렇게 확인해야 합니다.

마지막 3개의 롤업 쿼리는 CPU 부하에 중요한 역할을 하며, CPU 부하가 문제인지 여부를 조사하는 쿼리가 됩니다.

 측정치 필터링

추가 사용자 인터페이스 기능

Performance Insights 사용자 인터페이스의 다른 기능을 사용해 성능 데이터를 분석할 수 있습니다.

클릭하여 끌어 확대

Performance Insights 인터페이스에서 부하 차트의 작은 부분을 선택하여 확대해 자세히 볼 수 있습니다.

 확대

부하 차트의 한 부분을 확대하려면 시작 시간을 선택하고 원하는 기간 끝까지 끕니다. 이렇게 하면 선택한 영역이 강조 표시됩니다. 마우스를 놓으면 부하 차트의 선택한 영역이 확대되고 [Top N] 테이블이 다시 계산됩니다.

일시 중지 및 축소

부하 차트의 오른쪽 맨 위에는 [Pause] 및 [Zoom out] 도구가 있습니다.

 일시 중지 및 축소

[Pause]를 선택하면 부하 차트가 자동 새로 고침을 중지합니다. [Pause]를 다시 선택하면 부하 차트가 자동 새로 고침을 다시 시작합니다.

[Zoom out]을 선택하면 부하 차트가 다음으로 가장 큰 시간 간격으로 축소됩니다.

관련 주제