Cloud SQL 성능 캡처 개요

MySQL용 Cloud SQL 성능 캡처는 MySQL 데이터베이스의 복잡하고 일시적인 성능 문제를 진단하고 해결하는 데 도움이 됩니다.

인스턴스에서 데이터베이스 속도 저하 또는 정지와 같은 성능 저하가 발생할 때 표준 측정항목은 근본 원인을 파악하는 데 충분하지 않을 수 있습니다. 성능 캡처는 문제가 감지되는 순간에 데이터베이스의 자세한 특정 시점 스냅샷을 캡처하여 이 문제를 해결합니다. 구성 가능한 트리거를 사용하여 일시적인 문제가 발생할 때 시스템 전체 스냅샷을 생성하고 장기 실행 트랜잭션을 감지할 수 있습니다.

사용 사례

이 섹션에는 인스턴스에서 성능 캡처를 사용 설정한 후 이를 사용하는 방법의 사용 사례가 나와 있습니다.

데이터베이스 멈춤 진단

문제: 인스턴스가 몇 분 동안 응답하지 않지만 측정항목에는 초당 쿼리 수 (QPS) 감소와 연결 수 증가만 표시됩니다.

사용 예: runningThreadsThreshold를 사용하여 기준점 트리거를 정의합니다. 성능 캡처 로그에 세마포어 대기가 많이 표시되므로 특정 뮤텍스 경합 (예: 적응형 해시 색인)이 근본 원인으로 식별됩니다.

쿼리 성능 저하 분석

문제: 쿼리 성능이 갑자기 시스템 전체에서 저하됩니다.

사용 예: 성능 캡처 로그에 실행취소 로그가 대량으로 누적된 단일 장기 실행 트랜잭션이 표시됩니다. 로그는 장기 실행 트랜잭션, 사용자, 쿼리 텍스트를 식별합니다.

복제 지연 조사

문제: 읽기 복제본이 소스보다 크게 지연됩니다.

사용 예: secondsBehindSourceThreshold의 높은 값 트리거 기준을 구성합니다. 성능 캡처 로그를 확인하여 지연을 일으키는 특정 GTID를 파악할 수 있습니다.

장기 실행 트랜잭션 관리

문제: 배치 작업 또는 사용자 쿼리가 과도한 시간 동안 실행되어 잠금이 유지됩니다.

사용 예: transactionDurationThreshold의 임곗값 트리거를 구성합니다. 성능 캡처 로그는 기준점을 초과하는 트랜잭션을 식별합니다. 이 정보를 사용하여 조사할 수 있습니다.

실적 데이터가 캡처되는 방식

성능 캡처는 인스턴스를 모니터링하는 에이전트 기반 서비스로 작동합니다. 성능 캡처를 사용 설정하면 Cloud SQL 인스턴스에서 성능 데이터를 캡처하기 위해 다음 작업을 실행합니다.

  1. 에이전트는 데이터베이스 구성을 프로브하여 정의한 트리거를 읽습니다. 그러면 에이전트가 구성 가능한 간격으로 데이터베이스의 측정항목을 프로브합니다. 기본적으로 30초로 설정됩니다.

  2. 문제가 감지되고 트리거의 기준점을 초과하면 에이전트가 데이터베이스의 라이브 상태를 규칙과 계속 비교합니다. 일시적인 급증으로 인한 오경보를 방지하기 위해 에이전트는 연속된 여러 프로브에서 문제를 감지한 경우에만 전체 성능 캡처를 트리거합니다. 예를 들어 에이전트는 연속된 세 번의 프로브에서 스레드 수가 높다고 감지되면 성능 캡처를 트리거할 수 있습니다.

  3. 성능 캡처가 트리거되면 에이전트가 데이터베이스에 연결하고 일련의 진단 명령어를 실행하여 자세한 스냅샷을 캡처합니다.

  4. 캡처된 정보는 로그 항목으로 형식이 지정되고 mysql-performance-capture.log라는 특정 로그 스트림 아래의 Cloud SQL 인스턴스에 대해 프로젝트의 Cloud Logging으로 직접 전송됩니다.

구성 가능한 트리거

성능 캡처를 위해 다음 트리거를 구성할 수 있습니다.

  • runningThreadsThreshold: 기본 인스턴스에서 실행 중인 활성 스레드 수가 지정된 값을 초과할 때 트리거됩니다. 예를 들어 활성 실행 스레드 수가 100을 초과하는 경우 성능 캡처를 실행하도록 기준을 구성할 수 있습니다.

  • secondsBehindSourceThreshold: 복제 지연이 지정된 시간(초)을 초과할 때 복제본에 대해 트리거됩니다. 예를 들어 읽기 복제본 지연 시간이 300초를 초과하는 경우 성능 캡처를 실행하도록 임계값을 구성할 수 있습니다.

  • transactionDurationThreshold: 지정된 시간보다 오래 실행되는 개별 트랜잭션의 로깅을 트리거합니다. 예를 들어 10분 이상 실행되는 단일 트랜잭션을 로깅하도록 트리거를 설정할 수 있습니다.

성능 캡처 후 대기 기간

지속적인 성능 이벤트 중에 과도한 로깅과 시스템 오버헤드를 방지하기 위해 성능 캡처는 스냅샷 캡처가 성공한 후 30분의 쿨다운 기간을 구현합니다. 이 쿨다운 기간은 시스템이 확장된 문제 상태에 있는 동안 에이전트가 중복된 새로운 캡처를 트리거하지 못하도록 자동으로 활성화됩니다.

가격 책정

성능 캡처는 Cloud Logging에 로그를 저장하므로 추가 스토리지 비용이 발생할 수 있습니다.

Logging에 로그를 저장하는 가격에 대한 자세한 내용은 가격 책정을 참고하세요.

제한사항

  • 성능 캡처를 사용하려면 쿼리 통계가 사용 설정되어 있어야 합니다. 쿼리 통계를 사용 중지하면 성능 캡처도 사용 중지됩니다.
  • 성능 캡처는 MySQL용 Cloud SQL 5.7 이상에서만 사용할 수 있습니다.

다음 단계