Search Results for '-- STuDy --/MY SQL'

1 POSTS

  1. 2019.01.07 [모니터링] 성능모니터링

[모니터링] 성능모니터링

Posted 2019. 1. 7. 08:57


참조블로그 : http://experiences.tistory.com/24



show global status;

show global status like 'aborted_connects'



MySQL process running 

 측정

  내용 

 알림

mysqld process count 

  올바른 바이러니 데몬 프로세스 실행 

 mysqld 의 count 정상여부 ( /user/sbin/mysqld !=1)



SystemMetrics on a SQL Server 

병목이 발샐하면 아래의 내용을 살펴보시면 됩니다. 

 측정

 내용 

 알림

 Load

 An all-in-one performance metric. 

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages


uptime이나 top 명령어 통해 3 실수 값으로 표현 
load average: 0.00,0.01,0.05  1분,5분,15분 동안 실행 대기 중인 프로세스의 평균 갯수

싱글코어 일때 1.00은 cpu가 100%점유 된 상태 

 부하발생할때 > (코어수 *  1 )


 

 CPU usage

 임계치에 넘지 않는  cpu 사용량은 나쁜것은 아니다. 

 

 Memory usage

 Mysql  사용가능한 메모리를 활당 , 다른프로세스 위해 충분히 남겨 둬야한다.  

 

 Swap usage

 스왑은 응급 상황일때 사용 되며 사용해서는 안된다.

 사용된 스왑 > 128MB

 NetWork bandwidth

 백업하지않는한 방대한 양의 데이터 전송 할때 병목 현상이 없어야 한다. 

 

 Disk usage

 새로 생성된 파일,임시파일 ,스냅샷 또는 백업을위한 여유공간이 있는 확인 

 데이터베이스,로그 그리고 temp  > 85% 


Disk Monitoring
가장 보편적인 병목 현상 중 하나 입니다. 

디스크 성능 세부적인 측정 항목 들을 주의 깊게 확인 하셔야 합니다. 

성능 확인 tool iostat , pt-diskstats 이용하세요 

 측정

 내용

 알림

 Read/Write requests

  IOPS (input/Output operations per second) 

  

 IO Queue length

 디스크 액세스를 기다리수 ,

데이터가 캐시에  있으면 디스크 작업이 발생하지  않습니다. 

데이터가  캐시에 없으면  (즉 미스)  디스크 작업 발생

 

 Average IO Wait

 대기열 작업 ( 디스크 액세스를 대기 해야 할 평균시간) 

 

 Average Read/Write time

 디스크 액세스가 완료 되는데 걸리는 시간 

 

 Read /Write bandwidth

 데이터가 디스크로  전송 양  

 


MySQL  가용성 및 connection 모니터링 

측정 

 내용

 알림

 uptime

 서버가 시작된 이후의 시간 (초), respawns를 탐지 하기위해 사용 

 uptime < 180

 Threads_connected 

 현재 연결된 클라이언트 수 , 없거나 넘 높으면 문제 있음 

 

 Max_used_connections

 서버가 시작된후 최대 연결수 

 (max_used_connection /Max_connections)
connection 슬롯들 다 쓸수 있는지 나타남

 사용하고 있는 Connection > 85% 

 Aborted_connects 

 연결실패 수 , 자주 발생시 연결정보 오류 또는 공격일수도 있습니다. 

분당 연결실패수가 > 3 
(공개 되지 않은 서버에 대해서) 


Mysql Errors 

측정 

 내용

 알림

 Errors 

 mysql.log 파일에 오류가 있습니까?

 

 Log Files Size

 모든 로그파일이 순환(Rotated) 되고 있습니까?

 

 Deleted log files

 로그파일이 삭제 되었지만 파일설명자(File descriptor) 열려 있습니까?

 

 Backup space

 백업할 Disk공간이 충분합니까 ?

 






Monitoring Mysql Queries 

측정 

 내용

 알림

 Questions(/s)

 클라이언트가 보낸 쿼리 수 

 

 Queries

실행된 쿼리문 수 (저장프로시저 포함) 

 

 Read/Writes

Reads: select  + cache hits 

Writes:  insert  + updates+ deletes 

 


 

서버성능에 영향을 미치는 쿼리들 추적   

측정 

 내용

 알림

 slow_queries

 long_query_time초 보다 오래 걸린 쿼리 
느리쿼리는 과도한 디스크 , 메모리 및  cpu를 사용 합니다. 
Slow_query_log 를 확인 필요 

 

 select_full_join

 퀴리에 사용되는 전체 조인수 (높을경우 인덱스 및 스키마 디자인 고려) 

 

 Created_tmp_disk_tables

 디스크에 저장되는 임시 테이블 수 

 

 (full table scans)

Handler_read%

 데이블의 인덱스 첫번째 row읽는 수 (full scan 수 ) 
순차 읽기는 인덱스를 잘 활용 하지 못한다. 

 


Monitoring MySQL caches,buffers, and locks

캐시 버퍼의 최적화 및 트랙잭션 잠김 감시 


측정 

 내용

 알림

 innodb_row_lock_waits

innoDB가 행을 잠그기전에 기다린 수

 

 innodb_buffer_pool_wait_free

innoDB가 메모리 페이지 플러시 될때가 기다린수 
횟수가 높으면 innodb_buffer_pool_size 를 증가 해야 한다. 

 

 open_tables

 현재 열려있는 테이블수 

open_tables 낮고 table_cache 높으면 캐시 크기를 줄일수 있습니다. 

반대 일경우 

table_cache 높이고 mysql 사용자가 사용가능한 파일수도 증가 해야 한다. 

 

 long running transactions

너무 많은 트랙잭션들 때문에 다른 트랜잭셕들이 대기 하는지 추적 해야 합니다. 
innoDB에 문제 때문에 발생할수 있습니다. 

 

 Deadlocks

 교착 상태 , 어플리케이션에서 해결 되어야 합니다.