MySQL/MariaDB Handler 모니터링
- Version : MySQL 5.7.21, Ubuntu 16.0.4
MySQL 서버에서 Handler 모니터링 하는 방법에 대해서 알아본다. Handler(핸들러)의 역할은 각 스토리지 엔진에 대해 읽기 또는 쓰기를 요청 한다. 핸들러 모니터링을 통해서 MySQL 쿼리가 스토리지 엔진의 데이터에 접근하는 방식과 패턴을 알 수 있기 때문에 성능 최적화를 위해 필요한 모니터링 지표 이다.
아래 스크립트를 실행하면 핸들러에 대한 모니터링 지표를 확인할 수 있다.
show status where variable_name like ‘handler%’ |
Variable Name |
Comment |
Handler_commit |
커밋 수 |
Handler_delete |
행을 삭제 하기 위한 요청 횟수 |
Handler_discover |
NDBCLUSTER 스토리지 엔진에 요청하여 테이블 이름을 요청한 횟수 |
Handler_external_lock |
|
Handler_mrr_init |
테이블 액세스에 다중 범위 읽기 구현을 사용한 횟수 |
Handler_prepare |
2단계 커밋 작업을 준비한 횟수 |
Handler_read_first |
인덱스의 첫 번째 키 값을 패치(fetch)한 횟수 |
Handler_read_key |
단일 행의 인덱스 키 값을 읽은 횟수. |
Handler_read_last |
인덱스의 마지막 키를 읽은 횟수 |
Handler_read_next |
인덱스의 후속 행의 키를 읽은 횟수 |
Handler_read_prev |
인덱스의 이전 행의 키를 읽은 횟수 |
Handler_read_rnd |
고정된 위치의 특정 행을 읽은 횟수 |
Handler_read_rnd_next |
고정된 위치의 특정 행에 대한 후속 행 읽기 횟수 |
Handler_rollback |
스토리지 엔진이 롤백 요청을 받은 횟수 |
Handler_savepoint |
Savepoint를 요청한 횟수 |
Handler_savepoint_rollback |
Savepoit 지점으로 롤백을 요청한 횟수 |
Handler_update |
행을 업데이트 하기 위한 요청 횟수 |
Handler_write |
행을 삽입 하기 위한 요청 횟수 |
Handler_read_first의 값은 index full scan 발행한 횟수와 동일하다. Handler_read_next 는 인덱스 키 순서에 따라 다음 행을 읽은 횟수로 인덱스를 스캔하거나 제한적으로 범위 검색이 발생할 때 기록된다. Handler_read_first 수치가 예상보다 높게 나타난다면index full scan을 발생시키는 쿼리가 있는지 확인하여 적절하게 인덱스를 사용할 수 있도록 튜닝해야 한다.
Handler_read_rnd는 테이블 스캔이나 인덱스 범위 스캔이 발생할 때 데이터 파일의 고정된 위치의 행을 읽은 횟수로 대상 테이블에 적절한 인덱스가 없는 경우 발생할 수 있다. 또한 인덱스를 사용하지 않는 조인이 발생하거나 정렬 연상이 발생한 경우도 증가하기 때문에 이 수치가 높다면 요청 쿼리에 대해 적절한 인덱스가 있는지 확인 해야 한다.
2018-04-10 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com
MySQL, handler,핸들러 모니터링,스퇴리지 모니터링, mysql handler, MySQL튜닝, access pattern, 액세스 패턴, ,스토리지 사용 패턴
'MySQL, MariaDB' 카테고리의 다른 글
MySQL/MariaDB Replication 모니터링 (0) | 2019.03.24 |
---|---|
Run the MySQL with Docker (0) | 2019.03.24 |
MySQL/MariaDB Connection 모니터링 (0) | 2019.03.24 |
MySQL/MariaDB QPS(Query per second) 모니터링 (0) | 2019.03.24 |
MySQL/MariaDB Binlog Cache and Binlog Cache Size (0) | 2019.03.24 |