Azure Database for MySQL - 유연한 서버 모니터링
적용 대상: Azure Database for MySQL - 유연한 서버
참고 항목
이 문서에는 Microsoft에서 더 이상 사용하지 않는 용어인 슬레이브라는 용어에 대한 참조가 포함되어 있습니다. 소프트웨어에서 용어가 제거되면 이 문서에서 해당 용어가 제거됩니다.
Azure Database for MySQL 유연한 서버는 Azure Monitor를 통해 서버 모니터링을 제공합니다. 서버에 대한 데이터를 모니터링하면 워크로드에 대한 문제를 해결하고 최적화할 수 있습니다.
이 문서에서는 유연한 서버의 동작에 대한 인사이트를 제공하는 다양한 메트릭과 서버 로그에 대해 알아봅니다.
메트릭
메트릭은 특정 시점의 서버 리소스의 일부 측면을 설명하는 숫자 값입니다. 서버의 리소스를 모니터링하면 가장 중요한 사항을 모니터링하여 문제를 해결하고 워크로드를 최적화하는 데 도움이 됩니다. 올바른 메트릭을 모니터링하면 서버와 애플리케이션의 성능, 신뢰성, 가용성을 유지하는 데 도움이 됩니다.
Azure Database for MySQL 유연한 서버는 워크로드의 성능을 이해하는 데 도움이 되는 다양한 메트릭을 제공합니다. 이 데이터를 기반으로 서버 및 애플리케이션에 미치는 영향을 이해할 수 있습니다.
모든 Azure 메트릭의 빈도는 1분이고 각각 30일의 기록을 제공합니다. 메트릭에 대한 경고를 구성할 수 있습니다. 경고 설정 방법을 참조하세요. 다른 작업에는 자동화된 작업 설정, 고급 분석 수행 및 기록 보관이 포함됩니다. 자세한 내용은 Azure 메트릭 개요를 참조하세요.
문제 해결 메트릭
일부 경우 Azure Metrics Explorer에서 차트를 만들거나, 사용자 지정하거나, 해석하는 데 문제가 발생할 수 있습니다.
다양한 요인으로 인해 데이터가 표시되지 않는 차트가 발생할 수 있습니다. 여기에는 Microsoft Insights 리소스 공급자가 구독에 등록되어 있지 않거나 Azure Database for MySQL - 유연한 서버에 대한 적절한 액세스 권한이 없는 경우 등이 포함될 수 있습니다. 그 밖의 가능한 요인으로는 리소스가 선택한 기간 내에 메트릭을 생성하지 않았거나 선택한 기간 범위가 30일을 초과하는 상황을 들 수 있습니다.
다음과 같은 몇 가지 이유로 인해 이 동작이 발생할 수 있습니다.
- Microsoft.Insights 리소스 공급자가 지원되지 않음: 메트릭을 살펴보려면 Microsoft.Insights 리소스 공급자가 구독에 등록되어 있어야 합니다. Azure 리소스 공급자 및 유형에 설명된 단계에 따라 서버를 수동으로 등록합니다.
- 리소스에 대한 액세스 권한이 부족함: 메트릭을 탐색하는 Azure Database for MySQL - 유연한 서버에 대한 충분한 권한이 있는지 확인합니다. 선택한 시간 범위 동안 리소스가 메트릭을 내보내지 않습니다. 차트 시간을 더 넓은 범위로 변경합니다. Azure에서 Azure RBAC(역할 기반 액세스 제어)는 메트릭에 대한 액세스를 제어합니다. 리소스의 메트릭을 탐색하려면 모니터링 읽기 권한자, 모니터링 기여자 또는 기여자의 구성원이어야 합니다.
- 선택한 시간 범위 동안 리소스가 메트릭을 내보내지 않음: 이는 여러 가지 이유 때문일 수 있습니다. 한 가지 가능한 요인으로는 리소스가 선택한 시간 프레임 내에 메트릭을 생성하지 않았을 수 있습니다. 차트의 시간을 더 넓은 범위로 변경하여 문제가 해결되는지 확인합니다. 이 문제 해결에 대한 자세한 내용은 Azure Monitor 메트릭 문제 해결 가이드를 참조하세요.
- 시간 범위가 30일을 초과함: 시간 선택의 시작 날짜와 종료 날짜 간의 차이가 30일 간격을 초과하지 않는지 확인합니다. 메트릭 문제 해결에 대한 자세한 내용은 Azure Monitor 메트릭 문제 해결 가이드를 참조하세요.
- 파선 표시: Azure Monitor에서 파선은 알려진 시간 단위 데이터의 두 지점 사이에 데이터의 간격, 즉 “null 값”이 있음을 나타냅니다. 이는 누락된 데이터 요소를 감지하는 데 도움이 되는 의도적인 설계입니다. 차트에 파선이 표시되면 누락된 데이터를 나타냅니다. 자세한 내용은 문서를 참조하세요.
메트릭 문제 해결에 대한 자세한 내용은 Azure Monitor 메트릭 문제 해결 가이드를 참조하세요.
참고 항목
사용되지 않음으로 표시된 메트릭은 Azure Portal에서 제거될 예정입니다. Azure Database for MySQL 유연한 서버를 모니터링할 때 이러한 메트릭을 무시해야 합니다.
메트릭 목록
이러한 메트릭은 Azure Database for MySQL 유연한 서버에 사용할 수 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
MySQL 작동 시간 | 작동 시간 | 초 | 이 메트릭은 MySQL 서버가 실행된 시간을 나타냅니다. |
호스트 CPU 백분율 | cpu_percent | 퍼센트 | 호스트 CPU 백분율은 선택한 기간 동안 서버의 모든 작업을 처리하기 위한 CPU의 총 사용률입니다. 이 메트릭에는 Azure Database for MySQL 유연한 서버 인스턴스 및 Azure MySQL 프로세스의 워크로드가 포함됩니다. CPU 백분율이 높으면 데이터베이스 서버에 처리할 수 있는 것보다 많은 워크로드가 있는지 확인하는 데 도움이 될 수 있습니다. 이 메트릭은 총 CPU 사용률과 동일하며 모든 가상 머신의 CPU 사용률과 유사합니다. |
사용된 CPU 크레딧 | cpu_credits_consumed | Count | 버스트 가능 계층 전용입니다. CPU 크레딧은 워크로드를 기반으로 계산됩니다. 자세한 내용은 B 시리즈 버스트 가능 가상 머신 크기를 참조하세요. |
CPU 크레딧 남음 | cpu_credits_remaining | Count | 버스트 가능 계층 전용입니다. 남은 CPU는 워크로드를 기반으로 계산됩니다. 자세한 내용은 B 시리즈 버스트 가능 가상 머신 크기를 참조하세요. |
호스트 네트워크 입력 | network_bytes_ingress | 바이트 | 선택한 기간 동안 서버에서 들어오는 네트워크 트래픽의 총 합계입니다. 이 메트릭에는 모니터링, 로그 등과 같은 데이터베이스 및 Azure Database for MySQL 유연한 서버 기능에 대한 트래픽이 포함됩니다. |
호스트 네트워크 출력 | network_bytes_egress | 바이트 | 선택한 기간 동안 서버에서 나가는 네트워크 트래픽의 총합입니다. 이 메트릭에는 모니터링, 로그 등과 같은 데이터베이스 및 Azure Database for MySQL 유연한 서버 기능의 트래픽이 포함됩니다. |
활성 연결 | active_connection | Count | 서버에 대한 활성 연결 수 활성 연결은 서버에 연결된 총 스레드 수이며 여기에는 azure_superuser의 스레드도 포함됩니다. |
스토리지 IO 백분율 | io_consumption_percent | 퍼센트 | 선택한 기간 동안 사용된 IO의 백분율입니다. IO 백분율은 읽기 및 쓰기 IOPS 모두에 대한 것입니다. |
스토리지 IO 수 | storage_io_count | Count | 서버의 분당 총 I/O 작업 수(읽기 및 쓰기 모두)입니다. |
메모리 백분율 | memory_percent | 퍼센트 | 이 메트릭은 Azure MySQL(mysqld) 서버 프로세스에서 차지하는 메모리의 비율을 나타냅니다. 이 메트릭은 Azure Database for MySQL 유연한 서버에서 사용할 수 있는 총 메모리 크기(GB)에서 계산됩니다. |
총 연결 | total_connections | Count | Azure Database for MySQL 유연한 서버 인스턴스에 대한 클라이언트 연결 수입니다. 총 연결 수는 선택한 기간 동안 TCP/IP 프로토콜을 사용한 클라이언트 연결의 합계입니다. |
중단된 연결 | aborted_connections | Count | Azure Database for MySQL 유연한 서버 인스턴스에 연결하지 못한 총 시도 횟수(예: 잘못된 자격 증명으로 인해 연결 실패)입니다. 중단된 연결에 대한 자세한 내용은 이 설명서를 참조하세요. |
쿼리 | 쿼리 | Count | 서버에서 분당 실행된 총 쿼리 수입니다. 데이터베이스 워크로드 및 Azure MySQL 프로세스에서 서버에 대한 분당 총 쿼리 수입니다. |
Slow_queries | slow_queries | Count | 선택한 시간 범위에서 서버에 대한 느린 쿼리의 총 수입니다. |
Active Transactions | active_transactions | Count | 이 메트릭은 MySQL 내의 총 트랜잭션 수를 나타냅니다. 활성 트랜잭션에는 시작되었지만 아직 커밋되거나 롤백되지 않은 모든 트랜잭션이 포함됩니다. |
스토리지 내역 메트릭
스토리지 분석 메트릭은 Azure Database for MySQL 유연한 서버의 스토리지 사용에 대한 중요한 인사이트를 제공합니다. 이러한 메트릭을 통해 저장 한도, 스토리지 비율, 사용된 스토리지, 사용된 데이터 스토리지, 사용된 ibdata1 스토리지, 사용된 binlog 스토리지, 사용된 기타 스토리지, 사용된 백업 스토리지에 대한 자세한 내역을 확인할 수 있습니다. 이러한 메트릭을 모니터링하여 스토리지 리소스를 효과적으로 관리하고 스토리지 할당을 최적화하며 서버의 스토리지 용량을 효율적으로 활용할 수 있습니다. 스토리지 분석 메트릭을 이해하면 Azure Database for MySQL 유연한 서버의 성능 및 가용성을 유지하기 위해 정보에 입각한 결정을 내릴 수 있습니다.
아래 표에는 Azure Database for MySQL 유연한 서버에 사용할 수 있는 스토리지 분석 메트릭이 나와 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
스토리지 제한 | storage_limit | 바이트 | 이 서버에 대해 구성된 최대 스토리지 크기입니다. |
스토리지 비율 | storage_percent | 퍼센트 | 사용 가능한 서버의 최대 스토리지에서 사용된 스토리지의 비율입니다. |
사용한 스토리지 | storage_used | 바이트 | 사용 중인 스토리지의 양 서비스에서 사용되는 스토리지에는 데이터베이스 파일, 트랜잭션 로그 및 서버 로그가 포함될 수 있습니다. |
사용된 데이터 스토리지 | data_storage_used | 바이트 | 데이터베이스 파일을 저장하는 데 사용된 스토리지 양입니다. |
사용된 ibdata1 스토리지 | ibdata1_storage_used | 바이트 | 시스템 테이블스페이스(ibdata1) 파일을 저장하는 데 사용된 스토리지 양입니다. |
사용된 Binlog 스토리지 | binlog_storage_used | 바이트 | 이진 로그 파일을 저장하는 데 사용된 스토리지 양입니다. |
사용된 기타 스토리지 | other_storage_used | 바이트 | 다른 구성 요소 및 메타데이터 파일에 사용되는 스토리지 양입니다. |
사용된 백업 스토리지 | backup_storage_used | 바이트 | 사용된 백업 스토리지 양. |
복제 메트릭
복제 메트릭은 Azure Database for MySQL 유연한 서버의 복제 성능 및 상태에 대한 중요한 인사이트를 제공합니다. 이러한 메트릭을 사용하면 복제 지연을 모니터링하고, 복제본 및 HA IO/SQL 스레드의 상태를 확인하고, 복제 대기 시간을 측정할 수 있습니다. 이러한 메트릭을 추적하여 복제 설정의 안정성과 효율성을 보장하고, 잠재적인 문제 또는 지연을 식별하고, 데이터 일관성 및 가용성을 유지하기 위해 적절한 조치를 취할 수 있습니다. Azure Database for MySQL 유연한 서버에 사용할 수 있는 다양한 복제 메트릭을 살펴보겠습니다.
아래 표에는 Azure Database for MySQL 유연한 서버에 사용할 수 있는 복제 메트릭이 나와 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
복제 지연 | replication_lag | 초 | 복제 지연은 원본 서버에서 받은 트랜잭션을 재생할 때 복제본이 지연되는 시간(초)입니다. 이 메트릭은 “SHOW SLAVE STATUS” 명령의 “Seconds_behind_Master”에서 계산되며 복제 서버에서만 사용할 수 있습니다. 자세한 내용은 "복제 대기 시간 모니터링"을 참조하세요. |
복제본 IO 상태 | replica_io_running | State(상태) | 복제본 IO 상태는 복제 I/O 스레드의 상태를 나타냅니다. 메트릭 값은 I/O 스레드가 실행되면 1, 실행되지 않으면 0입니다. |
복제본 SQL 상태 | replica_sql_running | State(상태) | 복제본 SQL 상태는 복제 SQL 스레드의 상태를 나타냅니다. 메트릭 값은 SQL 스레드가 실행되면 1, 실행되지 않으면 0입니다. |
HA IO 상태 | ha_io_running | State(상태) | HA IO 상태는 HA 복제 상태를 나타냅니다. 메트릭 값은 I/O 스레드가 실행되면 1, 실행되지 않으면 0입니다. |
HA SQL 상태 | ha_sql_running | State(상태) | HA SQL 상태는 HA 복제 상태를 나타냅니다. 메트릭 값은 SQL 스레드가 실행되면 1, 실행되지 않으면 0입니다. |
HA 복제 지연 | ha_replication_lag | 초 | HA 복제 지연은 원본 서버에서 받은 트랜잭션을 재생할 때 HA 대기 서버가 지연되는 시간(초)입니다. 이 메트릭은 “SHOW SLAVE STATUS” 명령의 “Seconds_behind_Master”에서 계산되며 HA 대기 서버에서만 사용할 수 있습니다. |
향상된 메트릭
Azure Database for MySQL 유연한 서버에서 제공하는 표준 메트릭 외에도 향상된 메트릭을 사용하여 서버 성능에 대한 심층적인 정보를 얻을 수 있습니다. 이러한 향상된 메트릭은 워크로드의 특정 측면에 대한 더 자세한 정보를 제공합니다.
DML 통계
DML(데이터 조작 언어) 통계 메트릭을 사용하면 서버에서 실행되는 선택, 업데이트, 삽입 및 삭제 문의 수를 확인할 수 있습니다. 이러한 메트릭을 모니터링하여 데이터베이스 작업의 사용 및 성능을 추적하고 잠재적인 병목 상태 또는 비효율성을 식별할 수 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
Com_select | Com_select | Count | 선택한 시간 범위에서 서버에서 실행된 select 문의 총 개수입니다. |
Com_update | Com_update | Count | 선택한 시간 범위에서 서버에서 실행된 update 문의 총 개수입니다. |
Com_insert | Com_insert | Count | 선택한 시간 범위에서 서버에서 실행된 insert 문의 총 개수입니다. |
Com_delete | Com_delete | Count | 선택한 시간 범위에서 서버에서 실행된 delete 문의 총 개수입니다. |
DDL 통계
DDL(데이터 정의 언어) 통계 메트릭은 데이터베이스를 만들고, 데이터베이스를 삭제하고, 테이블을 만들고, 테이블을 삭제하고, 서버에서 실행되는 테이블 문을 변경할 수 있는 빈도에 대한 정보를 제공합니다. 이러한 메트릭을 통해 데이터베이스의 스키마 변경 빈도와 영향을 파악하여 데이터베이스 설계를 최적화하고 전반적인 성능을 개선할 수 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
Com_create_db | Com_create_db | Count | 선택한 시간 범위에서 서버에서 실행된 created database 문의 총 개수입니다. |
Com_drop_db | Com_drop_db | Count | 선택한 시간 범위에서 서버에서 실행된 drop database 문의 총 개수입니다. |
Com_create_table | Com_create_table | Count | 선택한 시간 범위에서 서버에서 실행된 create table 문의 총 개수입니다. |
Com_drop_table | Com_drop_table | Count | 선택한 시간 범위에서 서버에서 실행된 drop table 문의 총 개수입니다. |
Com_Alter | Com_Alter | Count | 선택한 시간 범위에서 서버에서 실행된 alter table 문의 총 개수입니다. |
Innodb 메트릭
Innodb 메트릭은 Azure Database for MySQL 유연한 서버의 기본 엔진인 InnoDB 스토리지 엔진의 성능에 초점을 맞춥니다. 이러한 메트릭에는 InnoDB 행 잠금 시간, InnoDB 행 잠금 대기, Innodb 버퍼 풀 읽기, Innodb 버퍼 풀 읽기 요청 등이 포함됩니다. 이러한 메트릭을 모니터링하면 데이터베이스의 스토리지 및 캐싱 메커니즘의 효율성과 효과에 대한 인사이트를 얻을 수 있습니다.
이러한 향상된 메트릭은 워크로드를 최적화하고 Azure Database for MySQL 유연한 서버의 성능을 향상시키기 위한 중요한 정보를 제공합니다. 이러한 메트릭을 사용하면 데이터베이스 운영의 확장성, 신뢰성, 효율성을 향상하는 데이터 기반 의사 결정을 내릴 수 있습니다.
메트릭 표시 이름 | 메트릭 | 단위 | 설명 |
---|---|---|---|
InnoDB 행 잠금 시간 | innodb_row_lock_time | 밀리초 | InnoDB 행 잠금 시간은 InnoDB 행 수준 잠금에 대한 시간(밀리초)을 측정합니다. |
InnoDB 행 잠금 대기 | innodb_row_lock_waits | Count | InnoDB 행 잠금 대기 메트릭은 쿼리가 InnoDB 행 수준 잠금을 기다려야 했던 횟수를 계산합니다. |
Innodb_buffer_pool_reads | Innodb_buffer_pool_reads | Count | InnoDB 엔진이 Innodb 버퍼 풀에서 충족할 수 없어 디스크에서 가져와야 했던 논리 읽기의 총 개수입니다. |
Innodb_buffer_pool_read_requests | Innodb_buffer_pool_read_requests | Count | Innodb 버퍼 풀에서 읽을 논리적 읽기 요청의 총 수입니다. |
Innodb_buffer_pool_pages_free | Innodb_buffer_pool_pages_free | Count | InnoDB 버퍼 풀에서 사용 가능한 페이지의 총 개수입니다. |
Innodb_buffer_pool_pages_data | Innodb_buffer_pool_pages_data | Count | 데이터를 포함하는 InnoDB 버퍼 풀의 총 페이지 수입니다. 이 숫자에는 더티 페이지와 클린 페이지가 모두 포함됩니다. |
Innodb_buffer_pool_pages_dirty | Innodb_buffer_pool_pages_dirty | Count | 더티 페이지를 포함하는 InnoDB 버퍼 풀의 총 페이지 수입니다. |
MySQL 기록 목록 길이 | trx_rseg_history_len | Count | 이 메트릭은 데이터베이스의 변경 횟수, 특히 이전 변경 내용을 포함하는 레코드 수를 계산합니다. 데이터 변경률과 관련되어 새 행 버전이 만들어집니다. 기록 목록 길이가 증가하면 데이터베이스의 성능에 영향을 줄 수 있습니다. |
MySQL 잠금 시간 제한 | lock_timeouts | Count | 이 메트릭은 잠금으로 인해 쿼리 시간이 초과된 횟수를 나타냅니다. 이는 일반적으로 쿼리가 다른 쿼리가 보유한 행이나 테이블의 잠금을 innodb_lock_wait_timeout 설정보다 오래 기다릴 때 발생합니다. |
MySQL 잠금 교착 상태 | lock_deadlock | Count | 이 메트릭은 선택한 기간 동안 Azure Database for MySQL 유연한 서버 인스턴스의 교착 상태 수를 나타냅니다. |
서버 로그
Azure Database for MySQL 유연한 서버에서 사용자는 문제 해결 작업을 지원하기 위해 서버 로그를 구성하고 다운로드할 수 있습니다. 이 기능을 사용하도록 설정하면 Azure Database for MySQL 유연한 서버 인스턴스가 선택한 로그 유형의 이벤트 캡처를 시작하고 파일에 씁니다. 그런 다음, Azure Portal 및 Azure CLI를 사용하여 파일을 다운로드하여 작업할 수 있습니다. 서버 로그 기능은 기본적으로 사용하지 않도록 설정되어 있습니다. 서버 로그를 사용하도록 설정하는 방법에 대한 자세한 내용은 Azure Database for MySQL 유연한 서버에 서버 로그를 사용하도록 설정하고 다운로드하는 방법을 참조 하세요.
서버 로그는 느린 쿼리 로그와 오류 로그의 활성화 및 다운로드를 지원합니다. 데이터의 기록 분석을 수행하려면 Azure Portal의 서버에 대한 진단 설정 창에서 로그 분석 작업 영역, Azure Storage 또는 이벤트 허브로 로그를 보내는 진단 설정을 추가합니다. 자세한 내용은 진단 설정을 참조하세요.
서버 로그 보존
Azure Database for MySQL 유연한 서버 인스턴스에 대한 로깅을 사용하도록 설정하면 로그를 만든 후 최대 7일까지 사용할 수 있습니다. 사용 가능한 로그의 전체 크기가 7GB를 초과하면 여유 공간이 생길 때까지 가장 오래된 파일이 삭제됩니다. 서버 로그에 대한 7GB 스토리지 제한은 무료로 사용할 수 있으며 확장할 수 없습니다. 로그는 24시간마다 또는 500MB마다 순환됩니다(먼저 도달하는 쪽이 적용됨).