본문 바로가기

Database

[MySQL] show processlist 모니터링 하기

안녕하세요 

마푸입니다. 


Mysql을 쓰다보면 점검을 시작하고나서 얼마 지나지 않았을때라던지 문득 트래픽이 올라가는데 지금 수행되는 쿼리가 궁금하게 되면 가장 먼저 실행하는 명령어가 아마도 


show processlist 


라고 생각합니다. 


해당 명령어를 수행하면 아래와 같이 1회 출력하게 됩니다. 

(* 잠깐.. 여기서 에이 머야 모니터링이 안되네 라고 하시는분.. 끝까지 읽어보세요 ㅋ;


아래는 G 옵션을 줘서 row를 이쁘게 찍은 상태입니다. 

G 옵션이 없다면 우리가 흔히 볼 수 있는 테이블 형태로 출력합니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 1030455
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 1004
State: Has read all relay log; waiting for the slave
       I/O thread to update it
Info: NULL
cs


문제는 이게 한번만 출력이 된다는 거지요


이 processlist를 무한으로 출력하게 할 수 있습니다. 바로 아래와 같이 말이죠 ^^


명령어 :

mysqladmin -uroot -puserpass processlist -i 1

 

지켜보기 힘들지만 이기능을 이용하여 동작 형태를 분석 할수 있다..

 

tip..지켜보다가 간혹 지나칠때도 있기때문에

 mysqladmin -uroot -puserpass processlist -i 1 > output.txt

 tail -f output.txt

 

를 이용하여 파일을 작성하면서 모니터링을 해야한다. ㅋ

반응형