본문으로 건너뛰기

MySQL 지표

데이터베이스 지표(메트릭스)는 데이터베이스의 작업량과 리소스 사용량을 포괄적으로 수집합니다. 와탭 모니터링 서비스는 지속적으로 지표를 수집하여 데이터베이스의 병목 현상을 확인하고, 성능 문제의 근본 원인을 식별하는 데 도움이 되는 데이터를 제공합니다.

지표에 대한 자세한 내용은 다음 문서를 참조하세요.

agent_status_summary

에이전트 상태와 관련한 지표를 10초 간격으로 수집한 카테고리입니다.

Fields

FieldUnitDescriptionAdditional Info
inActTime밀리초(ms)에이전트가 비활성화된 상태로 유지된 시간-
isActive-현재 에이전트의 활성 상태 여부true / false
isRestart-에이전트가 최근에 재시작되었는지 여부true / false
lastActTime밀리초(ms)마지막으로 에이전트가 활성화된 상태의 시각0: 비활성화된 경우
oid-프로젝트에 포함된 각 에이전트의 고유 식별자-
startTime밀리초(ms)에이전트가 시작된 시점의 타임스탬프-

db_mysql_counter

Tags

db_mysql_counter 카테고리에 수집되는 태그값에 대한 안내입니다.

TagsDescriptionAdditional Info
agentIp에이전트 별 IP 주소-
dbIsMultiMultitenant 지원 여부-
dbName데이터베이스 이름-
dbType데이터베이스 종류-
dbVersion이용 중인 데이터베이스의 버전-
oname에이전트 이름고유값

Field

db_mysql_counter 카테고리에 수집되는 필드값에 대한 안내입니다.

MetricCategory / UnitDescription
aborted_clientsConnection비정상적으로 종료된 클라이언트 연결 횟수
access_denied_errorsConnection로그인 실패 횟수
- 잘못된 사용자명/비밀번호 사용 시 증가
active_sessionsConnection쿼리를 실행 중인 세션 수
- threads_running과 동일
active_transactionsThroughputActive Transaction 수
bytes_receivedThroughput / Byte클라이언트로부터 수신한 총 바이트 수
- 값이 높으면 쓰기 작업 중심 서버로 추정
bytes_sentThroughput / Byte클라이언트에게 전송한 총 바이트 수
- 값이 높으면 읽기 작업 중심 서버로 추정
- Questions, Uptime과 함께 분석 시 유용
com_commitThroughputCOMMIT 명령을 실행한 횟수
com_deleteThroughputDELETE 명령을 실행한 횟수
com_insertThroughputINSERT 명령을 실행한 횟수
com_rollbackThroughputROLLBACK 명령을 실행한 횟수
com_selectThroughputSELECT 명령을 실행한 횟수
com_updateThroughputUPDATE 명령을 실행한 횟수
connectionsConnection클라이언트가 MySQL 서버에 연결을 시도한 횟수
created_tmp_disk_tablesPerformance디스크에 생성된 임시 테이블 수
- 조인/정렬/그룹핑 시 메모리 부족으로 발생
- tmp_table_size, max_heap_table_size 조정 고려
created_tmp_filesPerformance생성된 임시 파일 수
created_tmp_tablesPerformance서버에 의해 생성된 내부 임시 테이블
- UNION ALL, ORDER BY, GROUP BY 등에서 사용
- 디스크 임시 테이블 비율 10% 미만 권장
innodb_buffer_pool_pages_freeInnoDB전체 버퍼 풀에서 사용하지 않은(사용 가능한) 페이지 수
innodb_buffer_pool_pages_totalInnoDB전체 버퍼 풀의 페이지 수
innodb_buffer_pool_read_requestsInnoDB버퍼 풀에서 읽기 시도된 페이지 수
- Buffer Hit Ratio = (1 - (innodb_buffer_pool_reads / innodb_buffer_pool_read_requests)) * 100
- 90% 이상 권장, 낮으면 innodb_buffer_pool_size 증설 고려
innodb_buffer_pool_readsInnoDB디스크에서 읽은 페이지 수
- 값이 높으면 버퍼 풀 적중률이 낮음
innodb_buffer_pool_wait_freeInnoDB버퍼 풀에서 빈 페이지가 없어서 디스크 플러시를 기다린 횟수
innodb_log_waitsInnoDB로그 버퍼가 가득 차서 디스크 쓰기를 기다린 횟수
- Redo log 경합 비율 = innodb_log_waits / innodb_log_writes
- 1 미만을 권장하며 값이 높으면 innodb_log_buffer_size 증설 고려
innodb_rows_deletedInnoDBInnoDB 테이블에서 삭제된 행 수
innodb_rows_insertedInnoDBInnoDB 테이블에 삽입된 행 수
innodb_rows_readInnoDBSELECT에서 처리된 행 수
innodb_rows_updatedInnoDBInnoDB 테이블로 업데이트된 행 수
innodb_rows_writesInnoDB쓰기 작업 처리된 행 수
- innodb_rows_inserted + innodb_rows_updated + innodb_rows_deleted
innodb_row_lock_timeInnoDB / msrow lock 획득에 소비된 총 시간 (milliseconds)
innodb_row_lock_waitsInnoDBrow lock을 대기한 횟수
- 값이 급증하면 쿼리 튜닝 필요
lock_wait_sessionsPerformancerow lock을 대기 중인 세션 수
- innodb_row_lock_current_waits와 동일
max_connectionsConnection최대 동시 클라이언트 연결 횟수
- 커넥션 수 부족 시 Too Many Connection 에러 발생 가능
queriesThroughput전체 실행된 SQL 문 개수
- Stored program 내에서 실행된 statement 포함
questionsThroughputMySQL 서버에서 실행한 명령문 수
- Stored program 내에서 실행된 statement 제외
replication_delayPerformance / secreplication 지연 시간 (초)
- Slave DB에서 측정됨
select_full_joinPerformance인덱스를 사용하지 않고 full join이 발생한 횟수
- 값이 크면 인덱스 누락 검토 필요
select_scanPerformance인덱스를 사용하지 않고 풀 테이블 스캔한 횟수
- 실행 계획에서 type = ALL 쿼리 점검 필요
slow_queriesPerformancelong_query_time 이상 걸린 쿼리 수
- 값이 급증하면 slow query log 확인 필요
sort_merge_passesPerformancesort merge pass 횟수
- 값이 높으면 쿼리 색인 개선 또는 sort_buffer_size 증설 고려
table_locks_waitedPerformance다른 잠금이 이미 해당 테이블을 사용하고 있어 기다린 횟수
- 잠금 대기 비율 = table_locks_waited / (table_locks_immediate + table_locks_waited) * 100
- 값이 높으면 쿼리 최적화 및 테이블 분할/복제 고려
table_open_cache_missesPerformance테이블을 열려고 시도했으나 캐시에 없어 열린 횟수
threads_connectedConnection현재 연결된 클라이언트 수
- 갑자기 증가하면 커넥션 누수 여부 점검 권장
threads_runningThroughput현재 실행 중인 스레드 수
- 지속적으로 높다면 병목 가능성 있음
trx_rseg_history_lenPerformanceUndo 레코드 저장공간 사용량
- 계속 증가하면 성능 저하 가능성 있음
uptimePerformanceMySQL 서버 실행 이후 경과 시간 (초)

XOS 관련 지표

XOS 에이전트로부터 수집되는 지표들에 대한 설명입니다.

MetricUnitDescription
cpu(xos)pctCPU 사용률
cpu_user + cpu_sys + cpu_iowait의 합
cpu_idle(xos)pctCPU가 유휴 상태인 시간
cpu_iowait(xos)pctCPU가 I/O 작업을 대기한 시간
cpu_sys(xos)pctCPU가 커널 코드 실행에 사용된 시간
cpu_user(xos)pctCPU가 사용자 코드 실행에 사용된 시간
disk_read_bytes(xos)byte디스크에서 읽은 데이터 양
disk_reads(xos)block디스크에서 읽은 블록 수
disk_write_bytes(xos)byte디스크에 기록된 데이터 양
disk_writes(xos)block디스크에 기록된 블록 수
mem(xos)pct메모리 사용률
mem_available(xos)MB가용한 메모리 크기
mem_buffcache(xos)MBbuff/cache 용도로 사용 중인 메모리 크기
mem_free(xos)MB사용 중이지 않은 메모리 크기
mem_swapfree(xos)MB사용되지 않은 스왑 영역 크기
스왑은 디스크 공간을 사용하므로, 사용 시 성능 저하 가능성 있음
mem_swaptotal(xos)MB전체 스왑(Swap) 크기
물리 메모리 부족 시 사용
mem_total(xos)MB전체 메모리 크기
mem_used(xos)MB사용 중인 메모리 크기
net_recv_bytes(xos)byte네트워크에서 수신한 데이터 양
net_recv_packets(xos)count네트워크에서 수신한 패킷 수
net_send_bytes(xos)byte네트워크로 전송한 데이터 양
net_send_packets(xos)count네트워크로 전송한 패킷 수