MySQL 프로세스 관리

2010/08/03 12:48

MySQL 프로세스 관리

MySQL 의 프로세스를 관리하는 방법입니다. 동시 다발적으로 수행되는 서버에서 특정 프로세스가 MySQL 의 자원을 모두 차지하거나 , 테이블 잠김 등으로 실행중인 MySQL 프로세스를 제거하는 방법입니다.

우선 MySQL 에서 수행중인 프로세스를 보는 방법입니다.
mysql> SHOW PROCESSLIST;
+---------+------+-----------+------+---------+------+-------+------------------+
| Id      | User | Host      | db   | Command | Time | State | Info             |
+---------+------+-----------+------+---------+------+-------+------------------+
| 4491638 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
+---------+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
위와 같은 방법으로 MySQL 프로세스 리스트를 확인 할 수 있습니다.
프로세스의 상태를 주기적으로 확인 하려면 아래와 같이 사용 할 수 있습니다.
$ mysqladmin -u root -p processlist -i 1
Enter password:
+---------+------+-----------+----+---------+------+-------+------------------+
| Id      | User | Host      | db | Command | Time | State | Info             |
+---------+------+-----------+----+---------+------+-------+------------------+
| 4491638 | root | localhost |    | Sleep   | 127  |       |                  |
| 4493243 | root | localhost |    | Query   | 0    |       | show processlist |
+---------+------+-----------+----+---------+------+-------+------------------+
여기서 마지막 -i 옵션은 갱신 주기 입니다. 초단위로 설정 할 수 있습니다.

ID : 프로세스 ID입니다.
User : 해당 프로세스 (쿼리)를 실행시킨 MySQL 사용자 입니다.
Host : 접속 호스트입니다.
Db : 현재 수행되고 있는 프로세스의 DB입니다.
Command : 현재 프로세스의 상태 입니다.
Time : 프로세스가 실행된 시간입니다. (초단위)
State : 현재 상태입니다.
Info : 프로세스가 실행된 질의어입니다.

프로세스를 제거 하기 위해서 KILL 을 사용할 수 있습니다. Process list 상에 나온 ID 를 이용하여 프로세스를 제거 할 수 있습니다.
mysql> KILL 4491638;
Query OK, 0 rows affected (0.00 sec)

위와 같이 사용할 수 있습니다.

"MySQL" 카테고리의 다른 글