성능 캡처 로그 보기

성능 캡처는 인스턴스 측정항목 데이터를 수집하여 mysql-performance-capture.log 파일의 Cloud Logging으로 전송합니다.

Cloud Logging에서 로그를 보는 방법에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 보기를 참고하세요.

시작하기 전에

성능 캡처 로그를 보려면 프로젝트 및 인스턴스의 Cloud Logging에서 로그를 볼 수 있는 적절한 권한이 있어야 합니다.

필수 역할 및 권한

성능 캡처 로그를 보는 데 필요한 권한을 얻으려면 관리자에게 인스턴스의 프로젝트에 대한 로그 뷰어 (roles/logging.viewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

성능 캡처 로그 보기

성능 캡처 로그를 보려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Logging 페이지로 이동합니다.

    Cloud Logging으로 이동

  2. 모든 리소스를 클릭한 다음 Cloud SQL 데이터베이스를 선택합니다.
  3. Cloud SQL 인스턴스를 선택합니다.
  4. 로그 이름으로 필터링:

    logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"

    PROJECT_ID를 프로젝트 ID로 바꿉니다.

    로그 페이로드는 문자열 형식이며 여러 로그 줄에 걸쳐 캡처된 SHOW ENGINE INNODB STATUS와 같은 명령어의 출력을 포함합니다.

성능 캡처 로그의 데이터 검토

각 성능 캡처 로그는 인스턴스에 대해 정의한 성능 이벤트에 의해 트리거됩니다. 다음 표에서는 성능 캡처 로그 항목을 구성 임계값과 연관시키고 항목 로그에서 볼 수 있는 성능 데이터 보고서에 대한 설명을 제공합니다.

성능 캡처 로그 항목 설명 기준점 트리거 보고서 이름
활성 쿼리 상태별로 그룹화된 연결 및 트랜잭션 수, 런타임 기간별로 버킷화된 활성 쿼리 수 (<2초, 2~10초, ≥10초), 가장 오래 실행된 상위 50개 트랜잭션 또는 쿼리에 대한 세부정보를 비롯한 데이터베이스 로드 측정항목을 캡처합니다. 이 보고서는 부하가 높은 기간을 파악하고 느린 특정 쿼리를 정확하게 파악하는 데 도움이 됩니다.

InnoDB 트랜잭션 및 프로세스에 관한 데이터를 해석하는 방법에 관한 자세한 내용은 MySQL 문서의 INFORMATION_SCHEMA INNODB_TRX 테이블processlist 테이블을 참고하세요.
  • runningThreadsThreshold(Cloud SQL Admin API)
  • running-threads-threshold (gcloud CLI)
activequeries
InnoDB 상태 성능 이벤트 발생 시 InnoDB 스토리지 엔진의 상태에 관한 정보를 제공합니다. 이는 잠금 경합, 트랜잭션 문제, 버퍼 풀 문제, 기록 목록 길이 증가를 진단하는 데 매우 중요합니다. 찾아야 할 키워드:
  • TRANSACTIONS (장기 실행 트랜잭션, 잠금 대기)
  • SEMAPHORES (뮤텍스 경합)
  • LATEST DETECTED DEADLOCK
  • BUFFER POOL AND MEMORY
  • HISTORY LIST LENGTH
InnoDB 표준 모니터 출력에 대한 자세한 내용은 MySQL 문서의 InnoDB 표준 모니터 및 잠금 모니터 출력을 참고하세요.
  • runningThreadsThreshold(Cloud SQL Admin API)
  • running-threads-threshold (gcloud CLI)
innodbstatus
복제 분석 SHOW REPLICA STATUS 출력, GTID 세트, 성능 스키마 도구의 세부정보를 비롯한 복제 진단 정보가 포함되어 있습니다. 보고서에는 성능 이벤트 시점의 실행 위치를 따르는 릴레이 로그의 처음 5개 이벤트도 포함됩니다. 이 보고서는 복제 오류 또는 지연을 진단하는 데 사용할 수 있습니다.

SHOW REPLICA STATUS 출력 및 복제본 적용자 스레드에 대한 자세한 내용은 MySQL 문서의 SHOW REPLICA STATUS 문 복제본 적용자 작업자 스레드 모니터링을 참고하세요.
  • secondsBehindSourceThreshold(Cloud SQL Admin API)
  • seconds-behind-source-threshold (gcloud CLI)
replicastatus
거래 감시자 데이터 추적 중인 장기 실행 거래에 대한 세부정보입니다.

InnoDB 트랜잭션에 관한 데이터를 해석하는 방법에 관한 자세한 내용은 MySQL 문서의 INFORMATION_SCHEMA INNODB_TRX 테이블을 참고하세요.
  • transactionDurationThreshold(Cloud SQL Admin API)
  • transaction-duration-threshold (gcloud CLI)
LongRunningTransactions

성능 캡처 로그에서 데이터 필터링

성능 캡처에서 Cloud SQL 인스턴스에 구성된 기준에 따라 문제를 감지하면 모니터링 에이전트가 인스턴스 및 보고서 유형과 연결된 라벨이 지정된 로그 항목을 Cloud Logging으로 전송합니다.

로그를 분류하고 로그 항목을 인스턴스에서 관찰된 성능 문제와 연관시키는 데 도움이 되도록 라벨별로 성능 캡처 로그 항목을 필터링할 수 있습니다.

각 로그 항목에는 다음 두 라벨이 지정됩니다.

  • 이벤트 시간 또는 labels.EVENT_TIME: 성능 캡처 항목 로그의 시간을 나타냅니다. 형식은 고유한 타임스탬프 문자열 YYYY-MM-DDTHH:MM:SSZ입니다. 예를 들면 2025-10-16T13:12:07Z입니다.

  • 파일 이름 또는 labels.FILE_NAME: 보고서 유형과 성능 이벤트에 의해 트리거된 성능 캡처 로그 항목의 시퀀스 넘버를 식별합니다. 형식은 INSTANCE_TYPE_SEQUENCE_NUMBER_REPORT_TYPE입니다. 예를 들어 활성 쿼리 보고서의 첫 번째 성능 캡처 로그 항목인 primary_1_activequeries가 있습니다.

필터 예시

이 섹션에서는 분석을 위해 특정 로그 항목에 대해 mysql-performance-capture.log 파일을 필터링하는 방법을 보여주는 예를 제공합니다.

다음 예시에서 다음을 바꿉니다.

  • PROJECT_ID: Cloud SQL 인스턴스의 프로젝트 ID
  • TIMESTAMP: YYYY-MM-DDTHH:MM:SSZ 형식의 트리거링 실적 이벤트의 타임스탬프입니다. 예를 들면 2025-10-16T13:12:07Z입니다.

특정 실적 이벤트로 필터링

특정 성능 이벤트로 필터링하려면 labels.EVENT_TIME 라벨을 사용하여 관련 로그 항목을 찾습니다.

예를 들어 특정 성능 이벤트에 대한 보고서를 가져오려면 로깅 로그 탐색기 쿼리 빌더에서 다음 쿼리를 사용합니다.

특정 이벤트의 모든 신고 가져오기

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.EVENT_TIME="TIMESTAMP"

특정 이벤트의 InnoDB 보고서 가져오기

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.EVENT_TIME="TIMESTAMP"
labels.FILE_NAME=~"innodbstatus"

특정 이벤트의 모든 보고서 유형에 대한 첫 번째 로그 항목만 가져오기

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.EVENT_TIME="TIMESTAMP"
labels.FILE_NAME=~"_1_"

파일 이름으로 필터링

모든 이벤트에서 모든 activequeries 보고서 가져오기

이 일반 쿼리는 성능 이벤트 중에 활성 쿼리가 어떻게 표시되는지 확인하는 데 유용합니다.

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.FILE_NAME=~"activequeries"

다음을 바꿉니다.

  • PROJECT_ID: Cloud SQL 인스턴스의 프로젝트 ID

특정 이벤트의 첫 번째 및 세 번째 innodbstatus 보고서 비교

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.EVENT_TIME="TIMESTAMP"
(labels.FILE_NAME="primary_1_innodbstatus" OR labels.FILE_NAME="primary_3_innodbstatus")

다음을 바꿉니다.

  • PROJECT_ID: Cloud SQL 인스턴스의 프로젝트 ID
  • TIMESTAMP: YYYY-MM-DDTHH:MM:SSZ 형식의 트리거링 실적 이벤트의 타임스탬프입니다. 예를 들면 2025-10-16T13:12:07Z입니다.

특정 시간 이후에 발생한 이벤트의 첫 번째 activequeries 보고서 찾기

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.FILE_NAME="primary_1_activequeries"
timestamp > "TIMESTAMP"

다음을 바꿉니다.

  • PROJECT_ID: Cloud SQL 인스턴스의 프로젝트 ID
  • TIMESTAMP: YYYY-MM-DDTHH:MM:SSZ 형식의 타임스탬프입니다. 예를 들면 2025-10-16T13:12:07Z입니다.

InnoDB 상태 보고서 내에서 특정 텍스트 검색

logName="projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fmysql-performance-capture.log"
labels.FILE_NAME=~"innodbstatus"
textPayload:"SEARCH_TEXT"

다음을 바꿉니다.

  • PROJECT_ID: Cloud SQL 인스턴스의 프로젝트 ID
  • SEARCH_TEXT: 검색할 텍스트입니다. 예를 들면 SEMAPHORE WAITS입니다.