티스토리 뷰

워드프레스로 구축한 웹사이트의 성능 개선을 위해 MySql을 실시간으로 모니터링 할 수 있는 툴이 필요했다. 그러다가 찾은 것이 비교적 간단하게 설치하고 사용할 수 있는 MyTop이라는 툴이다.  MySql과 동일한 엔진을 사용하는 MariaDB에서도 사용이 가능하다고 한다.

 

MyTop은 Jeremy Zawodny라는 사람이 Perl로 작성한 오픈소스 모니터링 프로그램이다. 리눅스의 시스템 리소스 모니터링 툴인 top과 그 UI가 매우 흡사하다는 점에서, top에 익숙한 사용자에게는 좀 더 친숙할 것이다. 

 

MyTop의 MySQL 모니터링 GUI
top의 시스템 모니터링 GUI

 

MyTop 설치하기

설치 방법은 Ubuntu16.04 기준이다. 기본적으로 전체 과정은 여기를 참고했다. 다른 리눅스 환경에서의 설치 방법도 설명이 되어 있다. 

 

터미널에서 아래 명령어를 통해 설치 할 수 있다.

$ sudo apt install mytop

 

설치가 완료되고 프로그램을 실행하기 위해서는 당연히 MySql의 비밀번호가 필요하다. 로그인 할 때마다 비번을 입력하고 들어가는 방법이 있지만 번거로우니 아예 처음부터 설정을 해주자. 아래 명령어로 홈 디렉토리에 .mytop이라는 파일을 만들어 준다. .mytop 파일을 만들어주면 프로그램이 자동으로 파일 안의 설정값을 읽게 되어 있다.

 

$sudo nano ~/ .mytop

에디터는 꼭 nano가 아니더라도 자신에게 편한 것으로 사용하면 된다. 

그리고 아래 처럼 입력해주고 저장해준다. 

<설명>

user=mysql 사용자

pass = 비밀번호

host=대부분 localhost일 것이다.

db=모니터링 하고자 하는 db의 이름

delay=화면을 refresh하는 주기(초) 

port=mysql의 기본 port는 3306이지만 변경해서 사용중이라면 맞게 입력하면 된다.

socket=mysql.sock의 위치를 입력한다. 

 

여기서 socket의 위치가 나와 다를 수 있다. 나의 경우 bitnami의 설정값을 그대로 사용하고 있기 때문에 많은 설정 파일들의 위치가 좀 다르다. 자신의 소켓 위치를 검색해서 정확한 위치를 넣어주면 된다. 

 

MyTop 실행

모든 입력이 끝났다면 터미널에서 간단하게 mytop 이라고 입력하면 프로그램이 실행될 것이다. 그러면 아래와 비슷한 화면이 나타날 것이다.

MyTop의 GUI (거의 사용하지 않는 서버의 MySQL 모니터링 화면이다.)

자세히 보면 위에서 설정한대로 1초 간격으로 화면이 업데이트 되고 있을 것이다. 

 

MyTop 사용방법

먼저 간단한 명령어부터 알아보자. 

T(대문자): 다른 화면으로 이동했을 때 위 화면으로 돌아오는 명령어

q: 프로그램 종료

?: 단축키 설명

 

기타 매뉴얼을 보려면

$ man mytop

 

MyTopd의 GUI는 크게 위/아래 두 부분으로 나눌 수 있다. 

먼저 위 부분의 첫 번째 줄(아래)은 서버의 호스트네임인 localhost와 현재 실행되고 있는 MySQL의 버전을 표시해주고 있다.

두 번째 줄(아래)은 서버에서 처리한 총 쿼리의 숫자, 초당 평균적으로 처리하는 쿼리 개수, 초당 평균 슬로우 쿼리 수를 나타낸다. 그리고 마지막의 Se/In/Up/De 부분은 SELECT, INSERT, UPDATE, DELETE 쿼리문이 차지하는 각각의 백분율을 나타내고 있다. 

세 번째 줄(아래)는 실시간으로 처리하는 초당 평균 쿼리 개수, 실시간 초당 평균 슬로우 쿼리 개수를 나타내고 마지막으로는 활성화되었거나 캐싱된 스레드를 표시해주고 있다. 

네 번째 줄(아래)의 Key Efficiency MySQL이 시스템 상에서 얼마나 원활하게 쿼리릴 처리해주고 있느냐를 나타내는 것으로 보인다. 시스템 상에서 MySQL이 차지하는 메모리가 적음으로 인해 쿼리 처리가 원활하지 못할 경우에는 이 백분율의 값이 떨어지는 것 같다. (확실하지 않다.) 그리고 그 옆은 처리하는 데이터(byte)의 평균 In/Out 양, 그리고 마지막은 실시간 데이터 In/Out양을 표시해주고 있다. 

아래 부분은 실행 중인 스레드를 표시해주고 있다. (스레드 id, User name, Host, database name, idle 시간(초), 실행 중인 커맨드 이름, 그리고 쿼리등을 기준으로 표시해준다.) 

 

간단하게 MyTop의 설치방법과 GUI에 대한 설명을 적었다. 그리고 이외에도 여러 툴을 추천하는 링크가 있으니 참고해보면 좋을 것 같다.

댓글