시스템 통계를 사용하여 시스템 성능 향상

이 페이지에서는 Cloud SQL 시스템 통계 대시보드를 사용하는 방법을 설명합니다. 시스템 통계 대시보드는 인스턴스가 사용하는 리소스에 대한 측정항목을 표시하고 시스템 성능 문제를 감지하고 분석하는 데 도움이 됩니다.

Databases의 Gemini 지원을 사용하여 MySQL용 Cloud SQL 리소스를 관찰하고 문제를 해결할 수 있습니다. 자세한 내용은 Gemini 지원을 통한 관찰 및 문제 해결을 참조하세요.

시스템 통계 대시보드 보기

시스템 통계 대시보드를 보려면 다음을 수행합니다.

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

    Cloud SQL 인스턴스로 이동

  2. 인스턴스 이름을 클릭합니다.
  3. 왼쪽의 SQL 탐색 패널에서 시스템 통계 탭을 선택합니다.

시스템 통계 대시보드가 열립니다.

측정항목 및 이벤트 타임라인을 보여주는 대시보드 이미지

시스템 통계 대시보드에는 다음 정보가 표시됩니다.

  1. 인스턴스 세부정보

  2. 이벤트 타임라인: 시스템 이벤트를 시간순으로 표시합니다. 이 정보는 시스템 이벤트가 인스턴스의 상태 및 성능에 미치는 영향을 평가하는 데 도움이 됩니다.

  3. 요약 카드: CPU 사용률, 디스크 사용률, 로그 오류 측정항목에 대한 최신 값과 집계된 값을 표시하여 인스턴스 상태 및 성능에 대한 개요를 제공합니다.

  4. 측정항목 차트: 처리량, 지연 시간, 비용과 같은 여러 문제에 대한 유용한 정보를 얻는 데 도움이 되는 운영체제 및 데이터베이스 측정항목에 대한 정보를 표시합니다.

대시보드는 다음과 같은 간략한 옵션을 제공합니다.

  • 맞춤설정된 대시보드를 만들려면 대시보드 맞춤설정을 클릭합니다.
  • 대시보드를 최신 상태로 유지하려면 자동 새로고침 옵션을 사용 설정합니다. 자동 새로고침을 사용 설정하면 대시보드 데이터가 1분마다 업데이트됩니다.

  • 기본적으로 시간 선택기에는 선택된 1 day가 표시됩니다. 기간을 변경하려면 사전 정의된 다른 기간 중 하나를 선택하거나 커스텀을 클릭하고 시작 및 종료 시간을 정의합니다. 지난 30일 동안의 데이터가 제공됩니다.

  • 대시보드의 절대 링크를 만들려면 링크 복사 버튼을 클릭합니다. 같은 권한이 있는 다른 Cloud SQL 사용자와 이 링크를 공유할 수 있습니다.

요약 카드

다음 표에서는 시스템 통계 대시보드 상단에 표시되는 요약 카드를 설명합니다. 이러한 카드에서는 선택한 기간 동안의 인스턴스 상태 및 성능에 대한 간략한 개요를 제공합니다.

요약 카드설명
CPU 사용률 - P50 P50 CPU 사용률 값입니다.
CPU 사용률 - P99 P99 CPU 사용률 값입니다.
디스크 사용률 최신 디스크 사용률 값입니다.
로그 오류 로깅된 오류 수입니다.

측정항목 차트

각 차트 카드의 툴바는 다음과 같은 표준 옵션 집합을 제공합니다.

  • 선택한 기간의 특정 시점에 대한 측정항목 값을 보려면 커서를 차트 위로 이동합니다.

  • 전체 화면 모드로 차트를 보려면 을 클릭합니다. 전체 화면 모드를 종료하려면 Esc를 클릭합니다.

  • 차트를 확대/축소하려면 차트를 클릭하고 x축을 따라 가로로 또는 y축을 따라 세로로 드래그합니다. 확대/축소 작업을 되돌리려면 를 클릭합니다. 확대/축소 작업은 대시보드의 모든 차트에 동시 적용됩니다.

  • 추가 옵션을 보려면 를 클릭합니다. 대부분의 차트에서 다음 옵션을 제공합니다.

    • PNG 이미지 다운로드

    • 측정항목 탐색기에서 보기. 측정항목 탐색기에서 측정항목을 봅니다. Cloud SQL 데이터베이스 리소스 유형을 선택하면 측정항목 탐색기에서 다른 Cloud SQL 측정항목을 볼 수 있습니다.

다음 표에서는 Cloud SQL 시스템 통계 대시보드에 기본적으로 표시되는 Cloud SQL 측정항목을 설명합니다.

측정항목 이름 및 유형설명
쿼리 지연 시간
dbinsights.googleapis.com/
aggregate/latencies

사용자 및 데이터베이스당 P99, P95, P50 기준별로 집계된 쿼리 지연 시간 분포입니다.

쿼리 통계가 사용 설정된 인스턴스에서만 사용할 수 있습니다.

데이터베이스/사용자/클라이언트 주소당 데이터베이스 로드
dbinsights.googleapis.com/
aggregate/execution_time

데이터베이스, 사용자 또는 클라이언트 주소별로 누적된 쿼리 실행 시간입니다. 쿼리 실행과 관련된 모든 프로세스에 대한 CPU 시간, I/O 대기 시간, 잠금 대기 시간, 프로세스 컨텍스트 전환, 예약의 합계입니다.

쿼리 통계가 사용 설정된 인스턴스에서만 사용할 수 있습니다.

CPU 사용률
cloudsql.googleapis.com/
database/cpu/utilization

현재 CPU 사용률로, 현재 사용 중인 예약된 CPU의 비율로 표시됩니다.

MySQL 연결
cloudsql.googleapis.com/
database/network/connections

데이터베이스 인스턴스가 보유한 연결 수입니다.

인그레스/이그레스 바이트

cloudsql.googleapis.com/
database/network/received_bytes_count


cloudsql.googleapis.com/
database/network/sent_bytes_count

인스턴스와 주고받은 각 인그레스 바이트 수(수신된 바이트) 및 이그레스 바이트 수(전송된 바이트) 측면에서의 네트워크 트래픽입니다.

메모리 구성요소

cloudsql.googleapis.com/
database/memory/components

데이터베이스에서 사용, 캐시, 사용 가능한 메모리로 사용할 수 있는 메모리 구성요소입니다. 각 메모리 구성요소의 값은 데이터베이스에서 사용할 수 있는 총 메모리의 비율로 계산됩니다.
MySQL 쿼리
cloudsql.googleapis.com/
database/mysql/queries
서버에서 실행한 구문의 수입니다. 여기에는 저장 프로시저 및 함수와 같이 저장된 프로그램 내에서 실행되는 문이 포함됩니다.
MySQL 질의
cloudsql.googleapis.com/
database/mysql/questions
서버에서 실행한 구문의 수입니다. 여기에는 저장된 프로그램 내에서 실행되는 문이 아닌 클라이언트에서 서버로 전송한 문만 포함됩니다.
MySQL 네트워크 트래픽
cloudsql.googleapis.com/
database/mysql/received_bytes_count

cloudsql.googleapis.com/
database/mysql/sent_bytes_count
클라이언트에서 수신하고 클라이언트로 전송한 바이트 수입니다.
InnoDB 페이지

  • InnoDB 더티 페이지
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_dirty
  • InnoDB 무료 페이지
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_free
  • InnoDB 총 페이지
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_total

InnoDB 버퍼 풀의 더티, 무료 페이지, 총 페이지 수입니다. InnoDB 버퍼 풀의 더티 페이지는 메모리에서 수정되었지만 디스크에 다시 쓰여지지 않은 페이지입니다. InnoDB 버퍼 풀의 빈 페이지는 데이터가 포함되어 있지 않고 사용되지 않는 페이지입니다.
InnoDB fsync 호출

cloudsql.googleapis.com/
database/mysql/innodb_data_fsyncs

InnoDB fsync 작업 수입니다.
InnoDB 로그 fsync 호출

cloudsql.googleapis.com/
database/mysql/innodb_os_log_fsyncs

InnoDB 재실행 로그 파일에서 실행된 fsync 작업 수입니다.
InnoDB 페이지 읽기/쓰기

cloudsql.googleapis.com/
database/mysql/innodb_pages_read


cloudsql.googleapis.com/
database/mysql/innodb_pages_written
읽고 쓴 InnoDB 페이지의 수입니다.
MySQL 테이블 열기 캐시

cloudsql.googleapis.com/
database/mysql/open_tables


cloudsql.googleapis.com/
database/mysql/opened_table_count
open_tables는 현재 열려 있는 테이블의 수입니다.
opened_table_count는 마지막 샘플 이후 데이터베이스가 연 테이블 수입니다.
opened_table_count 값이 지속적으로 높은 경우 table_open_cache 값을 늘리는 것이 좋습니다.
MySQL 테이블 정의 캐시

cloudsql.googleapis.com/database/
mysql/open_table_definitions


cloudsql.googleapis.com/database/
mysql/opened_table_definitions_count
open_table_definitions는 현재 열려 있는 테이블 정의의 수입니다. opened_table_definitions_count는 마지막 샘플 이후 데이터베이스가 테이블 정의를 연 횟수입니다. opened_table_definitions_count 값이 지속적으로 높은 경우 table_definition_cache 값을 늘리는 것이 좋습니다.
InnoDB 데이터 사전 메모리 사용량

cloudsql.googleapis.com/
database/mysql/innodb/dictionary_memory

InnoDB 데이터 사전 캐시의 메모리 사용량입니다. InnoDB에는 테이블, 열, 색인, 외래 키 등 데이터베이스 객체에 대한 정보를 저장하기 위한 자체 캐시가 있습니다. table_definition_cache는 이 캐시의 테이블 수에 대한 소프트 한도를 설정합니다. 그러나 외래 키 관계가 있는 테이블은 데이터베이스가 종료되거나 다시 시작될 때까지 캐시에 유지됩니다. 인스턴스에 외래 키 관계가 있는 테이블이 많은 경우 이 캐시는 상당한 양의 메모리를 소비할 수 있습니다.
유형별 디스크 스토리지
cloudsql.googleapis.com/
database/disk/bytes_used_by_data_type
data, binlog, tmp_data 등 데이터 유형별 인스턴스 디스크 사용량의 분류입니다. 이 측정항목을 사용하면 스토리지 비용을 파악할 수 있습니다. 스토리지 사용 비용에 대한 자세한 내용은 스토리지 및 네트워킹 가격 책정을 참조하세요.

PITR(point-in-time recovery)에서는 바이너리 로그를 사용합니다. Cloud SQL은 정기적으로 새 로그를 생성하며 이러한 로그는 저장공간을 사용합니다. Cloud SQL은 바이너리 로그와 연결된 자동 백업을 자동으로 삭제합니다. 일반적으로 transactionLogRetentionDays에 설정된 보관 값이 충족된 후에 발생합니다. transactionLogRetentionDays는 Cloud SQL이 트랜잭션 로그를 보관하는 일수입니다. 값의 범위는 1부터 7까지입니다.

PITR을 사용하는 동안 예기치 않은 저장용량 문제가 발생하지 않도록 스토리지 자동 증가를 사용 설정하는 것이 좋습니다.

디스크 읽기/쓰기 작업

cloudsql.googleapis.com/
database/disk/read_ops_count


cloudsql.googleapis.com/
database/disk/write_ops_count
read_ops_count는 디스크 읽기 I/O 작업의 델타 수를 나타냅니다. 이 측정항목을 사용하여 인스턴스 크기가 사용자 환경에 맞게 지정되었는지 파악할 수 있습니다. 필요한 경우 더 큰 머신 유형으로 전환하여 캐시에서 더 많은 요청을 처리하고 지연 시간을 줄일 수 있습니다.

write_ops_count는 디스크 쓰기 I/O 작업의 델타 수를 나타냅니다. Cloud SQL 인스턴스(복제본 제외)는 약 1초 간격으로 시스템 테이블에 쓰기를 수행합니다.
Cloud Logging

logging.googleapis.com/
log_entry_count
오류 및 경고에 대한 총 로그 항목 수를 표시합니다.

자세한 내용은 Cloud SQL 측정항목을 참조하세요.

이벤트 타임라인

대시보드에는 다음 이벤트의 세부정보가 표시됩니다.

이벤트 이름설명작업 유형
Instance restart Cloud SQL 인스턴스를 다시 시작합니다. RESTART
Instance failover 기본 인스턴스가 되는 고가용성(HA) 기본 인스턴스를 대기 인스턴스로 수동 장애 조치를 시작합니다. FAILOVER
Instance maintenance 인스턴스가 현재 유지보수 중임을 나타냅니다. 유지보수로 인해 일반적으로 1~3분 동안 인스턴스를 사용할 수 없습니다. MAINTENANCE
Instance backup 인스턴스 백업을 실행합니다. BACKUP_VOLUME
Instance update Cloud SQL 인스턴스의 설정을 업데이트합니다. UPDATE
Promote replica Cloud SQL 복제본 인스턴스를 승격합니다. PROMOTE_REPLICA
Start replica Cloud SQL 읽기 복제본 인스턴스에서 복제를 시작합니다. START_REPLICA
Stop replica Cloud SQL 읽기 복제본 인스턴스에서 복제를 중지합니다. STOP_REPLICA
Recreate replica Cloud SQL 복제본 인스턴스에 대한 리소스를 다시 만듭니다. RECREATE_REPLICA
Create replica Cloud SQL 복제 인스턴스를 만듭니다. CREATE_REPLICA
Data import Cloud SQL 인스턴스로 데이터를 가져옵니다. IMPORT
Instance export Cloud SQL 인스턴스에서 Cloud Storage 버킷으로 데이터를 내보냅니다. EXPORT
Restore backup Cloud SQL 인스턴스의 백업을 복원합니다. 이 작업으로 인스턴스가 다시 시작될 수 있습니다. RESTORE_VOLUME

다음 단계