반응형

show processlist;

show full processlist;

mytop -u root -p


qps 및 프로세스 확인

mysqladmin -uroot -p proc stat 

mysqladmin -uroot -p proc stat -i 1


show status like '%connect%';

+------------------------+-------+

| Variable_name               | Value |

+------------------------+-------+

| Aborted_connects          | 47      |     실패한 연결 수

| Connections                 | 4841   |      총 연결 수

| Max_used_connections  | 54      |     최대 연결 수

| Threads_connected       | 1        |     현재 열려 있는 연결 숫자. 


show status like '%Threads%';

+------------------------+-------+

| Variable_name              | Value |

+------------------------+-------+

| Delayed_insert_threads  |   0      |     사용 중에 있는 INSERT DELAYED 핸들러 쓰레드 숫자

| Slow_launch_threads     |  0      |      slow_launch_time 시간보다 더많은 생성 시간이 필요한 쓰레드의 숫자.

| Threads_cached            |  7      |     쓰레드 캐시에 있는 쓰레드의 숫자.

| Threads_connected        |  2      |     현재 열려 있는 연결 숫자. 

| Threads_created            | 57      |     연결을 처리하기 위해 생성된 쓰레드의 숫자

| Threads_running            | 1       |      슬리핑 (sleeping) 상태가 아닌쓰레드의 숫자.

+------------------------+-------+


dstat 

cpu -> dstat -c

memory -> dstat -m

disk -> dstat -d

network -> dstat -n


dstat -c -m -n -d


mysql> show processlist;

* 현재 process의 snapshot이며, 현재 걸려 있는 쿼리를 볼 수 있다.

* slow query가 있는 경우 processlist로 확인해 볼 수 있다.

* processlist 테이블은 information_schema DB에 있다.

 

SELECT user,LEFT(host, instr(host,':')-1) IP , count(*) 

FROM INFORMATION_SCHEMA.PROCESSLIST 

WHERE user not in ('admin','repl','agent','system user') 

GROUP BY LEFT(host, instr(host,':')-1);

* 현재 process의 snapshot을 접속된 client별로 집계해서 보여준다.

* 각 client별로 세션을 몇개 열었는지 알 수 있다.

mysql> show global status;

* 수행되는 쿼리 종류에 따라서 mysql status에 카운트가 누적됨.

* show global status로 com_select, com_update, com_delete ... 이 값을 1분 단위로 추출해서... "증가값 / 60" -> 초당 처리량(qps)을 계산할 수 있다.

* slow_query 값도 모니터링할 수 있다.




yum install -y dstat

show engin innodb status

show processlist

mysqladmin -uroot -p'rpdlaqlf' extended-status -r -i 1 | grep -E 'Com_select |Com_update |Com_insert |Com_delete '




sar -ur -o cpu.log 1 300

sar -f cpu.log


mpstat 1 300



cpu / io check

iostat -c 3


memory check

free -s 2




dstat 

cpu -> dstat -c

memory -> dstat -m

disk -> dstat -d

network -> dstat -n


dstat -c -m -n -d




SHOW STATUS / SHOW VARIABLES 


쿼리 캐쉬 히트율

Qcache_hits / (Qcache_hits + Com_select)



MyISAM

캐쉬 적중률

100 - ((Key_reads * 100) / Key_read_requests)


버퍼 사용률

100 - ((Key_blocks_unused * key_ cache_block_size) * 100 / key_buffer_size)





테이블 잠금 확인

SHOW OPEN TABLES FROM DB명;

SHOW OPEN TABLES FROM DB명 LIKE 'Table명';



잠금 대기 체크

SELECT 

r.trx_id waiting_trx_id,

r.trx_mysql_thread_id waiting_thread,

r.trx_query waiting_query,

b.trx_id blocking_trx_id,

b.trx_mysql_thread_id blocking_thread,

b.trx_query blocking_query

FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS w

INNER JOIN INFORMATION_SCHEMA.INNODB_TRX b ON b.trx_id = w.blocking_trx_id

INNER JOIN INFORMATION_SCHEMA.INNODB_TRX r ON r.trx_id = w.requesting_trx_id;





slowquery 확인

mysqldumpslow -r -s c slow-query.log > parsed_slowquery.log


쿼리 실행 횟수(-s c)를 역순(-r) 

"mysqldumpslow -r -s c" 


쿼리의 잠금 시간

"mysqldumpslow -r -s l"(테이블 수준의 잠금만 해당)


쿼리로 조회한 레코드(row sent)

"mysqldumpslow -r -s r"



tail -f mysql-slow.log | mysql_slow_log_filter -T 0.5 -R 1000

- 0.5초 이상 걸리거나 행을 1000개 이상 access 하는 쿼리만 추출

반응형

'연구개발 > MYSQL' 카테고리의 다른 글

mysql 로그 삭제하기  (0) 2014.09.19
STATUS Variable  (0) 2014.09.16
기초 Admin 10장 테스트  (0) 2014.09.16
기초 Admin 9장 테스트  (0) 2014.09.16
기초 Admin 4장 테스트  (0) 2014.09.16

+ Recent posts