DB 인스턴스에 대한 성능 인사이트 지표 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

DB 인스턴스에 대한 성능 인사이트 지표

Performance Insights는 다음 섹션에서 설명하는 것처럼 다양한 유형의 지표를 모니터링합니다.

데이터베이스 부하

데이터베이스 로드 (DBLoad) 는 데이터베이스의 활동 수준을 측정하는 Performance Insights의 주요 지표입니다. 1초마다 수집되어 Amazon에 자동으로 게시됩니다.CloudWatch. 이는 SQL 쿼리를 동시에 실행하는 세션 수인 평균 활성 세션 (AAS) 에서의 DB 인스턴스 활동을 나타냅니다. 더DBLoad지표는 대기, SQL, 호스트, 사용자 및 데이터베이스의 다섯 가지 차원 중 하나를 사용하여 해석할 수 있다는 점에서 다른 시계열 지표와 다릅니다. 이러한 차원은 다음과 같은 하위 범주입니다.DBLoad미터법. 다음과 같이 사용할 수 있습니다.슬라이스 바이데이터베이스 로드의 다양한 특성을 나타내는 범주 데이터베이스 부하를 계산하는 방법에 대한 자세한 설명은 을 참조하십시오.데이터베이스 로드아마존 RDS 설명서에서 확인할 수 있습니다.

다음 화면 그림은 성능 인사이트 도구를 보여줍니다.

성능 인사이트 도구의 데이터베이스 로드

측정기준

  • 대기 이벤트데이터베이스 세션이 리소스 또는 다른 작업이 완료될 때까지 대기하여 처리를 계속하는 조건입니다. 다음과 같은 SQL 문을 실행하는 경우SELECT * FROM big_table이 테이블이 할당된 InnoDB 버퍼 풀보다 훨씬 크면 세션이 대기할 가능성이 높습니다.wait/io/file/innodb/innodb_data_file대기 이벤트는 데이터 파일의 물리적 I/O 작업으로 인해 발생합니다. 대기 이벤트는 성능 병목 현상이 발생할 수 있음을 나타내므로 데이터베이스 모니터링의 중요한 차원입니다. 대기 이벤트는 세션 내에서 실행 중인 SQL 문이 대기 시간을 가장 많이 소비하는 리소스 및 작업을 나타냅니다. 예를 들어,wait/synch/mutex/innodb/trx_sys_mutex이벤트는 트랜잭션 수가 많은 데이터베이스 활동이 많을 때 발생하며,wait/synch/mutex/innodb/buf_pool_mutex이벤트는 스레드가 InnoDB 버퍼 풀의 잠금을 획득하여 메모리의 페이지에 액세스할 때 발생합니다. 모든 MySQL 및 MariaDB 대기 이벤트에 대한 자세한 내용은 을 참조하십시오.대기 이벤트 요약 테이블MySQL 설명서에서 확인할 수 있습니다. 기기 이름을 해석하는 방법을 이해하려면 을 참조하십시오.성능 스키마 인스트루먼트 명명 규칙MySQL 설명서에서 확인할 수 있습니다.

  • SQL전체 데이터베이스 부하에 가장 많이 기여하는 SQL 문을 보여 줍니다. 더상단 치수테이블은 아래에 있습니다.데이터베이스 로드Amazon RDS 성능 인사이트의 차트는 대화형입니다. SQL 문의 막대를 클릭하면 SQL 문과 관련된 대기 이벤트의 세부 목록을 볼 수 있습니다.웨이트별 로드 (AAS)기둥. 목록에서 SQL 문을 선택하면 Performance Insights는 관련 대기 이벤트를 목록에서 표시합니다.데이터베이스 로드차트 및 SQL 명령문 텍스트SQL 텍스트섹션. SQL 통계는 오른쪽에 표시됩니다.상단 치수표.

  • 호스트연결된 클라이언트의 호스트 이름을 표시합니다. 이 차원은 데이터베이스로 대부분의 부하를 보내는 클라이언트 호스트를 식별하는 데 도움이 됩니다.

  • 사용자데이터베이스에 로그인한 사용자별로 DB 부하를 그룹화합니다.

  • 데이터베이스클라이언트가 연결된 데이터베이스의 이름을 기준으로 DB 로드를 그룹화합니다.

카운터 지표

카운터 지표는 DB 인스턴스가 다시 시작될 때만 값이 증가하거나 0으로 재설정될 수 있는 누적 지표입니다. 카운터 메트릭의 값은 이전 값으로 줄일 수 없습니다. 이러한 지표는 단조롭게 증가하는 단일 카운터를 나타냅니다.

  • 네이티브 카운터Amazon RDS가 아닌 데이터베이스 엔진에서 정의하는 지표입니다. 예시:

    • SQL.Innodb_rows_insertedInnoDB 테이블에 삽입된 행 수를 나타냅니다.

    • SQL.Select_scan첫 번째 테이블의 전체 스캔을 완료한 조인 수를 나타냅니다.

    • Cache.Innodb_buffer_pool_readsInnoDB 엔진이 버퍼 풀에서 검색할 수 없어 디스크에서 직접 읽어야 했던 논리적 읽기 횟수를 나타냅니다.

    • Cache.Innodb_buffer_pool_read_requests논리적 읽기 요청 수를 나타냅니다.

    모든 기본 지표에 대한 정의는 를 참조하십시오.서버 상태 변수MySQL 설명서에서 확인할 수 있습니다.

  • 네이티브 카운터가 아닌 카운터아마존 RDS에 의해 정의됩니다. 특정 쿼리를 사용하여 이러한 지표를 얻거나 계산에 둘 이상의 기본 지표를 사용하여 지표를 도출할 수 있습니다. 기본 카운터 메트릭이 아닌 다른 카운터 메트릭은 지연 시간, 비율 또는 적중률을 나타낼 수 있습니다. 예시:

    • Cache.innoDB_buffer_pool_hitsInnoDB가 디스크를 사용하지 않고 버퍼 풀에서 검색할 수 있는 읽기 작업 수를 나타냅니다. 네이티브 카운터 메트릭에서 다음과 같이 계산됩니다.

      db.Cache.Innodb_buffer_pool_read_requests - db.Cache.Innodb_buffer_pool_reads
    • IO.innoDB_datafile_writes_to_disk디스크에 대한 InnoDB 데이터 파일 쓰기 작업 수를 나타냅니다. 데이터 파일에 대한 작업만 캡처하며 이중 쓰기 또는 재실행 로깅 쓰기 작업은 캡처하지 않습니다. 다음과 같이 계산됩니다.

      db.IO.Innodb_data_writes - db.IO.Innodb_log_writes - db.IO.Innodb_dblwr_writes

성능 인사이트 대시보드에서 직접 DB 인스턴스 지표를 시각화할 수 있습니다. 선택해 주세요지표 관리, 선택데이터베이스 지표탭을 누른 다음 다음 그림과 같이 관심 지표를 선택합니다.

성능 인사이트에서 DB 인스턴스 지표 선택

선택해 주세요그래프 업데이트버튼을 클릭하면 다음 그림과 같이 선택한 지표가 표시됩니다.

성능 인사이트에서 DB 인스턴스 지표 보기

SQL 통계

Performance Insights는 쿼리가 실행되는 매 초 및 각 SQL 호출에 대해 SQL 쿼리에 대한 성능 관련 메트릭을 수집합니다. 일반적으로 퍼포먼스 인사이트는 다음과 같은 정보를 수집합니다.SQL 통계명세서 및 다이제스트 수준에서 그러나 MariaDB 및 MySQL DB 인스턴스의 경우 통계는 다이제스트 수준에서만 수집됩니다.

  • 다이제스트 통계는 패턴은 같지만 결국 리터럴 값이 다른 모든 쿼리의 복합 지표입니다. 다이제스트는 특정 리터럴 값을 변수로 바꿉니다. 예를 들면 다음과 같습니다.

    SELECT department_id, department_name FROM departments WHERE location_id = ?
  • 통계를 나타내는 지표가 있습니다.초당다이제스트된 각 SQL 문에 대해 예를 들어,sql_tokenized.stats.count_star_per_sec초당 호출 수 (즉, SQL 문이 실행된 초당 횟수) 를 나타냅니다.

  • 성과 인사이트에는 다음을 제공하는 지표도 포함됩니다.통화당SQL 명령문에 대한 통계 예를 들어,sql_tokenized.stats.sum_timer_wait_per_call호출당 SQL 문의 평균 지연 시간을 밀리초 단위로 보여 줍니다.

SQL 통계는 성능 인사이트 대시보드의상위 SQL의 탭상단 치수표.

SQL 통계