MySQL Tuning for innodb #1
간만에 연락을 받고 디비를 튜닝하게 되었습니다.
혹시나 같은 삽질을 하지 않을까 하여 그 기록을 남겨둡니다.
== Chapter 1. 접속 ==
서비스에 대한 개략적인 개요를 듣고 루트를 받고 디비서버에 접속을 하였습니다.
기본적으로 시스템을 보게 되면 다음과 같은 것을 봅니다.
1. 이 시스템에서 도는 서비스는 어떤 것이 있는가?
2. 서비스별로 어떤 디렉토리와 애플리케이션을 쓰는가
3. 어디에 의존성이 걸려 있는가.
먼저 파악한 서비스 이외의 서비스는 다 죽여줍시다.
레드헷의 경우 chkconfig --list 로 확인가능합니다.
== Chapter 2. top, vmstat , free , iostat , mysqladmin 확인 ==
시스템의 전체적인 환경을 보기 위해 top 을 띠워봅시다.
대부분 mysql 전용이면 디비만 딸랑 제일 위에 있을 확률이 높습니다.
명령은 2가지만 보면 됩니다. "P" 와 "M" 입니다.
"P" 는 CPU 사용률 별로 소팅해줍니다.
"M" 은 메모리 사용률별로 소팅해줍니다.
vmstat 을 띠워봅시다. 알아먹기 힘듭니다. -_-; 그냥 참고 합시다.
free 를 띠워봅시다.
[dj@iz4u ~]$ free -mt total used free shared buffers cached Mem: 1518 1396 121 0 182 749 -/+ buffers/cache: 464 1053 Swap: 258 0 258 Total: 1777 1396 380
처음의 total 은 전체 메모리입니다. used 는 현재 사용양입니다.
total = free + used 가 됩니다.
그럼 used 는 다음과 같습니다. buffers + cached + 실제 사용량
cached 와 buffers 는 io 나 프로그램을 위한 부분입니다.
즉 현재 시스템의 절반은 프로그램이 돌고 있고 나머지는 캐쉬로 사용중일꺼다 라는 것을 알수 있습니다.
그럼 iostat 을 봅시다. 깔려져 있지 않다면 sysstat 패키지를 까시기 바랍니다.
iostat -d 1 을 쳐봅시다.
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 19.00 0.00 552.00 0 552 sda1 0.00 0.00 0.00 0 0 sda2 69.00 0.00 552.00 0 552
1초마다 시스템의 io 상황을 보여줍니다.
딱 보면 보이듯이.. 쓰기가 읽어나고 있죠. 캐슁이 많이 된 상태라면 대부분
쓰기만 일어납니다.
그럼 이제 mysqladmin 을 봅시다.
2가지 커맨드만 보시면 됩니다.
mysqladmin processlist
mysqladmin status
먼저 processlist 를 봅시다.
mysqladmin processlist | grep -v Sleep 이라고 칩니다.
[root@XXXXX ~]# mysqladmin processlist | grep -v Sleep +------+--------+-----------------------+--------+---------+-------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +------+--------+-----------------------+--------+---------+-------+----------------------+------------------------------------------------------------------------------------------------------+ | 3779 | xxxxxx | 123.13.13.13 | xxxxxxxxxxxxxxx | Query | 4 | Copying to tmp table | SELECT users.*, favorite.* FROM users, favorite WHERE (fav | | 4320 | root | localhost | | Query | 0 | | show processlist | +------+--------+-----------------------+--------+---------+-------+----------------------+------------------------------------------------------------------------------------------------------+
상태를 보시면 아시겠지만.. 현재 4초가 걸리는 쿼리가 있군요.
status 를 봅시다. Copying to tmp table 입니다. 이것은 대부분 조인시에 결과값을
새로운 테이블을 만들어서 거기서 select를 하기 떄문입니다.
mysql 의 innodb 는 기본적으로 배포판에서 설정이 최소값으로 되어 있습니다. 이러한 부분들 떄문에
어느정도 접속이 있는 디비들에서는 설정값을 바꾸어주어야합니다.
mysqladmin 의 status 를 봅시다.
[root@xxxxx ~]# mysqladmin status Uptime: 120059 Threads: 73 Questions: 11404688 Slow queries: 1329 Opens: 416 Flush tables: 2 Open tables: 230 Queries per second avg: 94.992
현재 얼마나 돌아가는지나오구요 중요한것은..
Questions 와 Slow queries 입니다. 저 값은 현재 살짝 튜닝이 된 상태라 적게 나오는 편입니다.
다음 이시간에는 기본설정값변경과 그 여파에 대해서 알아봅시다.
댓글
다음시간이
다음시간이 기대되는군요;;
laziness, impatience, hubris
不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.
laziness, impatience, hubris
不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.
진짜 기대됨
MySQL에대한 튜닝글은 처음보는 것이라서..^^
딱 보고 실무에 바로
딱 보고 실무에 바로 써먹을 수 있는 이런 문서 정말 좋아합니다. +_+
--->
데비안 & 우분투로 대동단결!
--->
데비안 & 우분투로 대동단결!
MySQL도 튜닝을 하는
MySQL도 튜닝을 하는 군요....
-----------------------------------------------------------------------------
simple is the best, http://jedison.tistory.com
-----------------------------------------------------------------------------
simple is the best, http://jedison.tistory.com
튜닝을 해야되지요
튜닝을 해야되지요 mysql도 설정에 따라 성능 차이가 많이 납니다. ^^
----------------------------------------------------------------------
웃는 얼굴 헤죽 헤죽
----------------------------------------------------------------------
웃는 얼굴 헤죽 헤죽
MySQL 의 경우 적절한
MySQL 의 경우 적절한 튜닝에 따라 성능이 100% 심하면 1000% 까지 차이 나는경우도 있습니다.
절대 Default 옵션으로 쓰는걸 추천 하지 않습니다.
하드웨어 사양과 그리고 그에 맞은 i/O 옵션 등등 관과 해선 않될 문제가 많습니다.
--------------------------------------------------------
세상에서 나의 존재는 하나이다.
그러므로 세상에서 나는 특별한 존재이다.
-
책망과 비난은 변화가 아니다.
생각만으로 바뀌는것은 아무것도 없다.
--------------------------------------------------------
세상에서 나의 존재는 하나이다.
그러므로 세상에서 나는 특별한 존재이다.
-
책망과 비난은 변화가 아니다.
생각만으로 바뀌는것은 아무것도 없다.
댓글 달기