2010년 7월 8일 목요일

[MySQL 모니터링 및 서버 최적화]서버 모니터링

퍼포먼스 모니터링

 

 - OS자체 도구
   리눅스/유닉스 :vmstat, iostat, mpstat
   윈도우 : 작업관리자 성능 탭
  
 - MySQL자체 도구
   기동 후 메모리 상의 성능 수치를 추적
   SHOW STATUS 커맨드로 확인 가능
   Cricket, SNMP 또는 자체 제작 스크립트 사용 가능
   MySQL Administrator 사용 가능(GUI형태)
  
 - 쿼리는 MySQL 로그를 통해서 추적
   General Log :
     일반적으로 사용안함(IO증가량이 높음, 5.0이전은 설정변경시 재기동 필요),
     모든 사용자의 입력을 로깅,
     액션전에 저장되어 유용
   Slow Query Log :
     느린 쿼리에 대한 로그

 


MySQL에서 Thread 모니터링
 - MySQL은 Thread기반 서버
     SHOW FULLPROCESSLIST
     STATE컬럼을 통해 각 쿼리가 현재 어떻게 수행되고 있는지를 확인가능
 - 성능관련 문제는 아래 작업을 통해 확인 가능
     Processlist 모니터링
     SHOW STATUS의 내용을 확인
 - 급박한 문제는 쓰레드 KILL을 통해 제거 가능
     잘못된 쓰레드는 Processlist로 확인
     해당 프로세스 ID를 KILL

 

 

MySQL STATUS

 - 동작 상태에 대한 항목 수집

 - 서버의 현재 동작 상태를 모니터링

 - 서버를 최적화 할때 가이드로 이용

 - Status항목은 아래 두가지 방법으로 확인 가능

설치경로/bin/mysqladmin extended-status
MySQL Administrator - GUI형태로 제공


기본적인 STATUS 모니터링

 - mysqladmin은 기본적인 관리툴 : 10초마다 갱신

설치경로/bin/mysqladmin -i 10 extended-status 

 

 

3rd Party 모니터링 툴 - MyTOP

 - MySQL의 정보를 TOP과 같이 보여주는 툴

 - 전체 쓰레드 리스트를 보여줌

 - Database나 Host별 필터링 가능

 - 커넥션에 대한 kill을 쉽게 수행

 - QPS를 쉽게 확인 가능

 

3rd Party 모니터링 툴 - innotop

 - InnoDB엔진에 대한 Status는 "show engine innodb status"로 확인 가능

 - 그 결과를 해석하기 편하게 정리해주는 툴

 - http://www.xaprb.com/blog/2006/07/02/innotopmysql-innodb-monitor/

 

 

기본 STATUS 항목

 - 서버의 시작후 동작시간은 uptime으로 확인 가능

 - com_xxx항목은 서버시작 이후 xxx관련 명령이 얼마나 수행되었는지 나타냄

 - Questions는 서버로 전송된 총 쿼리 수를 나타냄

 - 이러한 전체 동작 양상과 select와 U/D/I 비율 등을 추출할 수 있음

 

 

 

 

댓글 없음:

댓글 쓰기