[모니터링] 성능모니터링
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 실수 값으로 표현 싱글코어 일때 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 > 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초 보다 오래 걸린 쿼리 |
|
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가 메모리 페이지 플러시 될때가 기다린수 |
|
open_tables | 현재 열려있는 테이블수 open_tables 낮고 table_cache 높으면 캐시 크기를 줄일수 있습니다. 반대 일경우 table_cache 높이고 mysql 사용자가 사용가능한 파일수도 증가 해야 한다. |
|
long running transactions | 너무 많은 트랙잭션들 때문에 다른 트랜잭셕들이 대기 하는지 추적 해야 합니다. |
|
Deadlocks | 교착 상태 , 어플리케이션에서 해결 되어야 합니다. |
|
- Filed under : -- STuDy --/MY SQL