[출처] http://www.ihelpers.co.kr/programming/lec.php?CMD=view&TYPE=1&KEY=&SC=S&&CC=&PAGE=1&IDX=254
MySQL DataBase 서버 튜닝 - MySQL Administrator
앞의 강좌에서 기본적인 모니터링 방법 및 Conection, Memory 튜닝에 대하여 소개하였습니다. 그러나 show status, show variables 명령어 만으로는 지속적으로 MySQL DB Server 상태를 모니터링 하기에는 불편한 점이 많습니다.
그래서 이번 강좌에는 "MySQL Administrator" 프로그램을 이용하여 효과적으로 모니터링하는 방법에 대하여 소개하도록 하겠습니다.
가. 설치
- http://www.mysql.com/products/tools/ 에서 MySQL Administrator 프로그램을 다운로드 받는다.
이번 강좌에서는 모니터링에 대한 설명이기 원도우용을 다운로드 받아 개인 PC에 설치하도록 하겠습니다. 서버에 직접 설치할 경우는 서버 OS에 맞는 버전을 다운로드 받아 설치하시면 됩니다.
- 다운로드 받은 mysql-administrator-x.x.x-win.msi 를 실행시킨다.
- 설치마법사에 따라서 설치한다.
- 설치가 완료되면 "시작 > 프로그램 > MySQL > MySQL Administrator" 메뉴가 생성되고 이를 통해 MySQL Administrator 실행한다.
- 접속하려는 MySQL Server의 Server Host, Username,Password를 입력한다.
- MySQL Administrator를 통해서 접속한 MySQL 서버에 대한 Server Information, User Administration, Health 등의 정보를 보실 수 있습니다.
나. MySQL DB Server 상태 모니티링
MySQL Administrator는 Health 메뉴를 통해 Connection Health, Memory Health 정보를 Graph로 동적으로 조회하여 볼 수 있는 기능과 Status Variables, System Variables를 계층적으로 구성해 놓아 손쉽게 해당 정보를 조회하여 볼 수 있습니다.
1. Connection Health
- Connection Usage : 최대 동시 접속자 대비 현재 접속율( threads_connected / max_connections )
- Traffic : Status 중 bytes_sent 값에 대한 정보
- Number of SQL Queries: Status 중 com_select 값에 대한 정보
※ 각 Graph에 대한 자세한 정보는 Graph위에서 마우스 오른쪽키를 클릭 후 "Edit Graph" 을 이용하시면 됩니다.
2. Memory Health
- Query Cache Hitrate : SQL 구문 및 결과에 대한 Query Cache의 재 사용률로써, Hitrate가 높을수록 성능이 좋다고 생각하시면 됩니다.
- Key Efficiency : 수직바는 key buffer의 사용량( [Key_blocks_used]*[key_cache_block_size] ) 이며, 선 그래프는 100-(^[Key_reads]/^[Key_read_requests])*100 로써 Hitrate가 작을수록 효율이 좋은 것입니다.
3. System Variables & System Variables
다. 사용자 Health 그래프 만들기
Cache Miss Rate(%) = Threads_created / Connections * 100 을 Graph를 통해서 모니터링 해 보겠습니다.
- "Connection Health" 탭을 선택한다.
- 아래와 같이 마우스오른쪽키를 이용하여 "Add Group" 을 통해 그룹을 생성한다. Group Cation은 Cache Miss Rate로 입력한다.
- 2번과 동일한 방법으로 해당 Group 위에서 마우스오른쪽키를 이용하여 "Add Graph" 를 클릭한다.
- 아래와 같이 Value formula 와 Max. Formula 등의 값을 설정해 준다.
- Cache Miss Rate(%) 값을 모니터링 후에 thread_cache_size 값을 최적화 시킨다.
|