MySQL DB 리소스 사용량

 

MySQL에서 DB 리소스 사용량을 확인해 볼 수 있는 방법은 크게 세 가지가 있다.

 

1) show status

 

show status 명령어는 시스템의 현재 상태 정보를 표시해준다. 대부분의 지표는 현 시점의


상태 정보를 나타내거나 DB 기동 이후 현재까지의 누적 상태 값을 표시하고 있다.


 

현 시점의 상태 값을 표시하는 지표란 바이너리 로그의 시점 정보나, 세션 연결에 사용된 스레드의


개수와 같이 show status 명령을 수행했을 때 표시되는 값이다. 반면 DB 기동 이후 현재까지의


누적 상태 값을 표시하는 지표란, DB 구동 후 지금까지 수행된 INSERT 구문의 횟수나


DB 구동 후 지금까지 연결을 맺은 세션의 총 개수와 같은 값을 표시해준다.

 

show status 명령으로 확인 가능한 값은 information_schema.status 테이블에서도 동일하게 확인할 수 있다.


 show status 명령을 세분화하여 확인하고자 할 경우 like절을 사용할 수 있고, information_schema.status 테이블을


이용하면 SQL 구문에 사용할 수 있는 일반적인 모든 절을 사용할 수 있다.

 

status 값은 메모리 상에만 존재하는 값이며, 대부분의 지표는 DB를 재기동 하는 순간 초기화된다.


또한 성능 모니터링을 위해 참고할 수 있는 대부분의 지표는 누적 값이기 때문에

 


 

특정 시간대의 세세한 모니터링을 위해서는 증분량을 직접 계산해야 한다.

 

2) performance_schema

 

performance_schema MySQL 5.5 버전부터 추가된 동적 성능 뷰이다. 스토리지 엔진 형태로 추가 되었기에,


 performance_schema 환경 변수를 이용해 기능을 On/Off 할 수 있다.

 

이 기능이 처음 등장했을 땐 따로 활성화해 주지 않으면 performance_schema 사용할 수 없었는데,


 MySQL 5.6 버전 이후로는 기본적으로 켜져 있는 상태이다. PERFORMANCE_SCHEMA 스토리지 엔진은 인 메모리 스토리지 엔진이기 때문에,


 performance_schema에 저장되는 값은 DB가 재기동 되면 초기화 된다.

 

performance_schema에는 다음과 같은 테이블들이 존재한다.

 

status 값이 현재 상태나 누적 사용량과 같은 정보성 지표를 가지고 있다면, performance_schema는 어떤 기능을


수행하기 위해 대기한 횟수, Lock 정보, 세부 세션 정보 등 보다 세세한 성능 지표들을 수집하고 있다.


이 때 조회 가능한 지표들은 instrumentation point라는 값을 사용해 이벤트가 수집되는데, setup_instruments 테이블을 조회해보면 현재


수집 기능이 활성화 되어있는 instrumentation값들을 확인해 볼 수 있다.

 

 

performance_schema 내에 테이블이 존재하더라도 수집 기능이 활성화 되어 있지 않다면,

 

실제로 데이터는 수집되지 않는다. , 수집 지표를 늘릴수록 전체 시스템에 부하가 증가하게 될 것이니 주의가 필요하다.

 

3) show engine innodb status

 

 

 

show engine innodb status InnoDB 스토리지 엔진의 사용 정보를 표시해주는 명령이다.

  

이는 MySQL 엔진에서 수집되는 정보가 아니라, InnoDB 스토리지 엔진 레벨에서 수집된 정보를 표시해주는

것이기 때문에 InnoDB의 외적인 부분에 대해서는 확인이 불가능하다.

 

명령을 다음과 같은 정보를 확인할 수 있다.

 

세마포어, 최근 발생한 FK에러 정보, 최근 발생한 DeadLock 정보, 수행중인 트랜잭션 정보,

 

파일 I/O정보, 메모리 사용 정보, 리두 로그 사용 정보, 작업량과 같은 세부적인 성능 지표를 비교적

보기 쉬운 형태로 확인 가능하다. InnoDB에 한정해서는 그 어떤 명령어보다 쉽게 많은 정보를 수집할 수 있는 명령어이다.

 

4) Query Log

 

슬로우 쿼리 로그와 제너럴 쿼리 로그는 성능 관련 이슈를 확인하는데 사용 가능하다.

 

 

Log

 

설명

 

 

 

 

 

슬로우 쿼리

 

일정 시간(초 단위) 이상으로 수행된 쿼리 정보를 기록한다. , 오래 수행된

 

로그

 

쿼리를 찾아내는데 사용할 수 있다.

 

 

 

 

 

 

 

제러널 로그를 켜면 수행되는 모든 쿼리를 로그로 남기게 된다.

 

 

 

슬로우 쿼리 로그는 일정 시간 이상 돌아간 쿼리만 수집하기 때문에, 수행

 

제너럴 쿼리

 

시간은 짧지만 빈번하게 수행되는 악성 쿼리를 찾기에는 적절하지 않다. 이럴

 

 

때 잠시 제너럴 로그를 켜두면, 수행 시간이 짧은 쿼리까지 모두 수집할 수

 

로그

 

 

 

있다. 다만, 수행되는 모든 쿼리를 기록하기 때문에 로그 파일의 사이즈가

 

 

 

 

 

 

순식간에 증가할 수 있으며, 로그 파일을 작성하기 위한 I/O 리소스 사용량도

 

 

 

커지게 되므로 주의해야 한다.

 

 

 

 

 

 

 

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 사이버몰의 이용약관 바로가기

'DB - MySQL' 카테고리의 다른 글

MySQL my.cnf 파일 설정  (0) 2017.03.23
MySQL Isolation LEVEL  (0) 2017.03.22
MySQL 모니터링 툴  (0) 2017.03.06
MySQL DB 리소스 사용량  (0) 2017.03.06
MySQL 이중화 방식 - MHA 구성 방법  (0) 2017.03.06
MySQL 이중화 방식 - replication 구성 방법  (0) 2017.03.06

+ Recent posts