활성 쿼리 모니터링

이 페이지에서는 데이터베이스에서 활성 상태로 있는 쿼리를 모니터링하고 문제를 해결하는 방법을 설명합니다. 이러한 쿼리를 모니터링하면 시스템 지연 시간 및 높은 CPU 사용량에 대한 원인을 파악하는 데 도움이 될 수 있습니다.

쿼리 통계 대시보드에서 연관된 쿼리 및 통계와 함께 활성 트랜잭션 요약 및 트랜잭션 목록을 볼 수 있습니다. 트랜잭션은 트랜잭션 시작 시간으로 표시됩니다. 실행 중인 쿼리 수가 많으면 결과에 총 쿼리 중 일부만 표시될 수 있습니다.

시작하기 전에

활성 쿼리를 모니터링하려면 Cloud SQL Enterprise 버전이나 Cloud SQL Enterprise Plus 버전을 사용하면 됩니다.

활성 쿼리에서 세션이나 장기 실행 트랜잭션을 종료하려면 Cloud SQL 인스턴스에 Cloud SQL Enterprise Plus 버전을 사용해야 합니다.

Cloud SQL 버전에 대한 자세한 내용은 Cloud SQL 버전 소개를 참조하세요.

필수 역할 및 권한

활성 쿼리를 보는 데 필요한 권한을 얻으려면 관리자에게 Cloud SQL 인스턴스를 호스팅하는 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 활성 쿼리를 보는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

활성 쿼리를 보려면 다음 권한이 필요합니다.

  • 데이터베이스 활동 요약 및 장기 실행 트랜잭션 보기:
    • databaseinsights.activeQueries.fetch
    • databaseinsights.activitySummary.fetch

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

활성 쿼리 사용 설정

Cloud SQL Enterprise 버전 인스턴스의 활성 쿼리를 사용 설정하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 구성 타일에서 구성 수정을 클릭합니다.
  4. 인스턴스 맞춤설정 섹션에서 쿼리 통계를 확장합니다.
  5. 쿼리 통계 사용 설정이 사용 설정되어 있는지 확인합니다.
  6. 활성 쿼리 분석을 선택합니다.
  7. 저장을 클릭합니다.

Cloud SQL Enterprise Plus 버전 인스턴스의 활성 쿼리를 사용 설정하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 구성 타일에서 구성 수정을 클릭합니다.
  4. 인스턴스 맞춤설정 섹션에서 쿼리 통계를 확장합니다.
  5. 쿼리 통계 사용 설정이 사용 설정되어 있는지 확인합니다.
  6. Enterprise Plus 기능 사용 설정을 선택합니다.
  7. 활성 쿼리 분석을 선택합니다.
  8. 저장을 클릭합니다.

활성 쿼리에서 세션이나 장기 실행 트랜잭션을 종료하려면 Cloud SQL Enterprise Plus 버전의 쿼리 통계를 사용해야 합니다.

활성 쿼리 사용 중지

Cloud SQL Enterprise 버전이나 Cloud SQL Enterprise Plus 버전 인스턴스에서 활성 쿼리를 사용 중지하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 구성 타일에서 구성 수정을 클릭합니다.
  4. 인스턴스 맞춤설정 섹션에서 쿼리 통계를 확장합니다.
  5. 활성 쿼리 분석 체크박스를 선택 취소합니다.
  6. 저장을 클릭합니다.

활성 쿼리 보기

활성 쿼리를 보려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.

  3. 다음 중 하나를 수행하여 쿼리 통계 대시보드를 표시합니다.

    • 쿼리 통계 탭을 선택합니다.
    • 쿼리 통계로 이동하여 쿼리 및 성능에 대한 자세한 정보 보기를 클릭합니다. 쿼리 통계 대시보드가 열립니다. 상단에 인스턴스 세부정보가 표시됩니다.
  4. 활성 쿼리 탭을 클릭합니다.

    여기에서 가장 오래 실행 중인 트랜잭션 테이블에 표시되는 쿼리 정보를 수정할 수 있습니다.

    • 데이터베이스: 특정 데이터베이스 또는 모든 데이터베이스에서 쿼리 로드를 필터링합니다.
    • 사용자: 특정 사용자 계정의 쿼리 부하를 필터링합니다.
    • 모든 활성 쿼리의 요약 스코어카드: 다음 파라미터를 기준으로 총 연결을 표시하여 모든 활성 쿼리의 개요를 제공합니다.

      1. 연결 상태로 분류된 활성 연결 분포
      2. 트랜잭션 상태 기반의 활성 트랜잭션 분포
      3. 쿼리 기간 분포
    • 가장 오래 실행 중인 트랜잭션: 내림차순 실행 시간을 기준으로 실행 중인 쿼리(활성트랜잭션 유휴 상태) 상위 50개의 개요를 제공합니다. 테이블에서 활성 쿼리를 필터링하고 정렬할 수 있습니다.

정규화된 활성 쿼리 보기

쿼리 통계 대시보드에서 정규화된 활성 쿼리와 함께 오래 실행 중인 상위 트랜잭션 목록을 볼 수 있습니다. 정규화된 활성 쿼리는 민감한 정보를 삭제하고 다이제스트를 반환합니다. 다이제스트는 다음 예시에 사용된 여러 값 모두 동일합니다.

  • 정규 쿼리

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • 다이제스트 또는 정규화된 쿼리

    • select * from test_table where id=?;

다른 세션에서 실행되는 쿼리는 대시보드에 다른 항목으로 표시됩니다.

가장 오래 실행 중인 트랜잭션 보기

쿼리 통계 대시보드의 가장 오래 실행 중인 트랜잭션 테이블에는 다음 열이 포함됩니다.

열 이름 설명
프로세스 ID 연결 또는 스레드 ID의 고유 식별자입니다.
쿼리 SQL 쿼리 텍스트입니다.
상태 연결의 상태입니다.
세션 시간 실행 중인 마지막 세션의 기간입니다.
트랜잭션 기간 실행 중인 활성 트랜잭션의 기간입니다.
쿼리 기간 해당 트랜잭션에서 실행 중인 마지막 쿼리의 기간입니다.
대기 이벤트 유형 발생한 대기 이벤트의 대기 이벤트 유형입니다.
대기 이벤트 발생 중인 대기 이벤트입니다.
데이터베이스 이 연결이 실행되는 데이터베이스 이름입니다.
애플리케이션 이름 이 연결이 실행되는 애플리케이션 이름입니다.
사용자 이름 데이터베이스에 연결된 사용자의 이름입니다.
클라이언트 주소 쿼리를 보낸 클라이언트의 특정 IP 주소입니다.
작업 트랜잭션을 종료하기 위한 링크가 포함됩니다.

디스플레이가 60초마다 자동으로 새로고침됩니다.

프로세스 종료

활성 쿼리에서 프로세스나 장기 실행 트랜잭션을 종료하려면 Cloud SQL Enterprise Plus 버전을 사용하고 활성 쿼리 분석Cloud SQL Enterprise Plus 버전의 쿼리 통계 모두 사용 설정해야 합니다.

장기 실행 작업이 종료되는 데 시간이 오래 걸릴 수 있습니다.

쿼리 또는 트랜잭션을 종료하려면 다음 단계를 수행합니다.

  1. 가장 오래 실행 중인 트랜잭션 테이블에서 쿼리를 선택합니다.
  2. 작업 열에서 연결 종료를 클릭합니다.
  3. 연결 종료 창에서 확인을 클릭합니다.

시스템에서 쿼리 또는 트랜잭션 종료가 성공하면 성공 메시지가 나타납니다. 또한 필요한 경우 시스템에서 롤백이 수행됩니다.

차단된 활성 쿼리

특정 활성 쿼리가 차단되거나 예상보다 훨씬 오래 실행되면 해당 활성 쿼리가 종속된 다른 쿼리를 차단할 수 있습니다.

Cloud SQL에서는 장기 실행되거나 차단된 특정 활성 쿼리를 종료할 수 있습니다.

차단된 활성 쿼리 분석 사용 설정

기본적으로 Google Cloud 콘솔에는 차단된 활성 쿼리가 표시되지 않습니다. 차단된 활성 쿼리를 분석하려면 먼저 인스턴스에서 Cloud SQL Enterprise Plus 버전과 활성 쿼리를 모두 사용 설정해야 합니다.

차단된 활성 쿼리 분석을 사용 설정하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 수정을 클릭합니다.
  4. 쿼리 통계를 펼칩니다.
  5. Enterprise Plus 기능 사용 설정활성 쿼리 분석을 모두 선택합니다. 두 설정 모두 필요합니다.
  6. 차단된 쿼리 분석을 선택합니다.
  7. 저장을 클릭합니다.

차단된 활성 쿼리 식별 및 종료

다음 단계에서는 다른 쿼리를 차단할 수 있는 특정 활성 쿼리를 식별하고 종료하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. SQL 탐색 메뉴에서 쿼리 통계를 클릭합니다.
  4. 활성 쿼리 탭을 클릭합니다.

    실행 중인 활성 쿼리가 아직 없는 경우 Cloud SQL Studio로 이동하여 조사하려는 쿼리를 실행합니다.

  5. 가장 오래 실행 중인 트랜잭션 섹션으로 이동합니다. 가장 오래 실행 중인 활성 쿼리를 최대 50개까지 확인할 수 있습니다.

    표시되는 각 항목에는 다음 정보가 포함됩니다.

    • 프로세스 ID: 쿼리의 프로세스 ID입니다. 펼치기를 클릭하여 항목을 확인합니다. 다음 두 아이콘 중 하나가 표시됩니다.
      • 모래시계 아이콘: 이 아이콘은 프로세스가 다른 쿼리가 완료될 때까지 기다리고 있음을 나타냅니다. 아이콘 옆에 숫자가 포함된 경우 숫자는 이 프로세스가 완료되기를 기다리는 종속 쿼리의 수를 나타냅니다.
      • 차단 기호 아이콘: 이 아이콘은 프로세스를 완료할 수 없으며 다른 쿼리를 차단할 수 있음을 나타냅니다.
    • 쿼리 유형: 실행 중인 쿼리 유형입니다(예: SELECT 또는 UPDATE).
    • 상태: 활성 쿼리의 상태입니다(예: ACTIVE).
    • 세션 시간(초): 현재 세션의 시간(초)입니다.
    • 트랜잭션 시간(초): 현재 활성 트랜잭션의 시간(초)입니다.
    • 쿼리 기간(초): 현재 활성 쿼리의 시간(초)입니다.
    • 대기 이벤트 유형: 쿼리 실행 중에 현재 발생한 대기 이벤트 유형입니다(예: 시간 초과 또는 잠금).
    • 대기 이벤트: 쿼리 실행 중에 현재 발생한 대기 이벤트입니다.
    • 작업: 연결 종료와 같이 취할 수 있는 조치입니다.

    조사할 프로세스 ID를 클릭하여 펼칩니다. 조사 트리에서 기본 프로세스를 최대 3개 수준까지 확장할 수 있습니다.

  6. 차단된 특정 쿼리를 식별한 다음 연결 종료를 클릭합니다. 연결을 종료한 후 Cloud SQL Studio로 이동하여 활성 쿼리를 다시 실행할 수 있습니다.

다음 단계