대기 상태별 데이터베이스 로드 분석
데이터베이스 로드(DB 로드) 차트에 병목현상이 나타나면 어디에서 로드가 발생하는지 알 수 있습니다. 이렇게 하려면 데이터베이스 로드 차트 아래의 상위 로드 항목 테이블을 살펴보세요. 특정 항목(예: 쿼리 또는 응용프로그램)을 선택하여 해당 항목을 드릴다운하고 세부 정보를 확인합니다.
대기 및 상위 쿼리로 그룹화된 DB 로드는 일반적으로 성능 문제에 대한 가장 많은 통찰력을 제공합니다. 대기 상태를 기준으로 구분된 DB 로드는 데이터베이스의 리소스 또는 동시성 병목 현상 유무를 표시합니다. 이 경우, 상위 로드 항목 테이블의 상위 쿼리 탭에는 해당 로드를 구동하는 쿼리가 표시됩니다.
성능 문제를 진단하는 일반 워크플로우는 다음과 같습니다:
-
데이터베이스 로드 차트를 보면서 데이터베이스 로드가 최대 CPU 선을 상회하는지 확인합니다.
-
상회하는 경우가 있으면 데이터베이스 로드 차트를 보면서 원인이 되는 대기 상태를 식별합니다.
-
상위 로드 항목 테이블의 상위 쿼리 탭이 해당 대기 상태에 가장 크게 기여하는 쿼리를 확인하여 로드를 유발하는 다이제스트 쿼리를 식별합니다. 이러한 내용들을 대기별 로드(AAS) 열로 식별할 수 있습니다.
-
상위 쿼리 탭에서 이러한 다이제스트 쿼리 중 하나를 선택하여 해당 쿼리를 확장하고 해당 쿼리가 구성된 하위 쿼리를 확인합니다.
또한 상위 호스트 또는 상위 애플리케이션을 각각 선택하면 어떤 호스트나 애플리케이션이 가장 많은 로드를 주고 있는지 확인할 수 있습니다. 애플리케이션 이름은 Amazon DocumentDB 인스턴스에 대한 연결 문자열에 지정되어 있습니다. Unknown
은 애플리케이션 필드가 지정되지 않았음을 나타냅니다.
예를 들어 다음 대시보드에서 CPU 대기 시간은 대부분의 DB 로드를 차지합니다. 상위 쿼리에서 상위 쿼리를 선택하면 데이터베이스 로드 차트의 범위가 선택 쿼리로 인해 발생한 가장 많은 로드를 집중적으로 표시합니다.