WhaTap Database Monitoring 2019.06.27 Copyright 2019 Whatap Developed by WhaTap Labs Inc.
Session Database Monitoring 기능개선및신규기능 발표자 목차 와탭랩스 박명규 1. 기능개선및신규기능 2. 문의사항 & 활용법 3.MySQL 모니터링 4. 이벤트활용 5. 연계모니터링
기능개선및신규기능실시간모니터링 Database 의 Stat 지표, 수행중인쿼리, 이벤트정보를실시간모니터링하며, 사용자관점의뷰를제공합니다. Stat 지표를사용자관점의뷰로설정할수있으며, 카테고리구분및프리뷰기능을통해선택의편리성제공 - 3 -
기능개선및신규기능실시간모니터링 Database 의 Stat 지표, 수행중인쿼리, 이벤트정보를실시간모니터링하며, 사용자관점의뷰를제공합니다. 발생된이벤트항목클릭시 발생시점전후 1 시간의트랜드페이지를통해 당시의 Stat 지표와수행되었던쿼리정보를바탕으로 문제점과현상에대한분석을할수있음 - 4 -
기능개선및신규기능멀티인스턴스 다수 Database 의상태, 로드밸런스, Stat 지표, 수행중인쿼리, 이벤트정보를실시간모니터링하며, 사용자관점의뷰를제공합니다. 실시간모니터링의기능과 다수의 Database 간상태와 로드밸런스를확인할수있음 - 5 -
기능개선및신규기능트랜드 Database 의 Stat 지표, 수행쿼리정보를통해트랜드를확인할수있으며, 사용자관점의뷰를제공합니다. Stat지표를클릭시당시의수행중인쿼리를확인할수있으며, 보고자하는컬럼을선택할수있음 - 6 -
Session Database Monitoring 문의사항 & 활용법 발표자 목차 와탭랩스 박명규 1. 기능개선및신규기능 2. 문의사항 & 활용법 3.MySQL 모니터링 4. 이벤트활용 5. 연계모니터링
문의사항 & 활용법문의사항 + 문의사항 - Active Sessions 이벤트가발생된무렵성능저하가있었는데분석방법을알고싶어요. - DB서버작업전 / 후의성능을확인하고싶어요. - SQL Elapsed Time 에실제수행시간과 Wait Time을구분해서보고싶어요. - SQL 응답시간이느려졌고, DB서버의 CPU가올라간건확인을했습니다. 이유를알수있을까요? - 배치수행이느려진이유를알고싶어요. - 어제발생된성능저하에대해분석하고싶어요. - 업무별데이터베이스사용비중을알고싶어요. - 업무별문제가되는 SQL을뽑고싶습니다. - 중점서비스시간동안 5초이상수행된 SQL을확인하고싶어요. - 평소점검을위해수행하는쿼리를활용할수있을까요? - 8 -
문의사항 & 활용법활용법 - Active Sessions 이벤트가발생된무렵성능저하가있었는데분석방법을알고싶어요. 메뉴 : 이벤트 -> 이벤트기록 1. 이벤트기록을조회 2. 관련이벤트가최초발생된항목을클릭 3. 발생시간 1 시간전후의트랜드에서주요 Stat 지표를통해이상지표및장애시간확인 4. Active Session List 를통해장애시간직전수행했던쿼리중이상여부확인 - 9 -
문의사항 & 활용법활용법 - DB 서버작업전 / 후의성능을확인하고싶어요. 메뉴 : 트랜드 -> 트랜드비교 1. 위선택항목에 DB 서버작업전 / 후로설정하고조회 2. 비교하고자하는항목을선택하여주요변경사항을비교 이때 DB 에따라 수행중인쿼리수, 읽은데이터량, 쿼리수, CPU, I/O, 이벤트정보를선택하여비교 - 10 -
문의사항 & 활용법활용법 - SQL Elapsed Time 에실제수행시간과 Wait Time 을구분해서보고싶어요. Oracle, Tibero, PostgreSQL 에대해 Wait Time 을수집 1. SQL 통계 - elapse sum (sec) - elapse wait (sec) 2. 액티브세션 - wait_time - 11 -
문의사항 & 활용법활용법 - SQL 응답시간이느려졌고, DB 서버의 CPU 가올라간건확인을했습니다. 이유를알수있을까요? - 배치수행이느려진이유를알고싶어요. - 어제발생된성능저하에대해분석하고싶어요. 메뉴 : 분석 -> 트랜드 1. 당시의 Stat 지표를통해상황확인 (CPU, Page lookups/sec 등 ) 2. 액티브세션을통해 당시수행중인쿼리정보에서 CPU 관련정보및리소스사용량관련정보확인 - 12 -
문의사항 & 활용법활용법 - 업무별데이터베이스사용비중을알고싶어요. 메뉴 : SQL 통계 1. 대상기간을설정하고조회 2. SCHEMANAME 탭을선택 3. SCHEMANAME 별사용량조회를통한비중확인 - 13 -
문의사항 & 활용법활용법 - 업무별문제가되는 SQL 을뽑고싶습니다 - I 메뉴 : SQL 통계 1. 대상기간을설정하고 sql elapse max 정렬로조회 2. SCHEMANAME 탭을선택 3. 해당업무의 SCHEMANAME 선택 4. 조회된내역을통해가장수행시간이길었던쿼리의수행주기및리소스사용량에대한통계데이터확인 5. 해당 SQL 및 Plan 정보확인 - 14 -
문의사항 & 활용법활용법 - 업무별문제가되는 SQL 을뽑고싶습니다 - II 메뉴 : 분석 -> 락트리 1. lock 구간을클릭하여조회 2. 락모드와가해자쿼리를확인하고업무적인특징확인 - 15 -
문의사항 & 활용법활용법 - 중점서비스시간동안 5 초이상수행된 SQL 을확인하고싶어요. 메뉴 : SQL 통계 1. 중점서비스시간을설정하고 sql elapse max, execute count 로정렬하여조회 2. 다양한구분으로원하는데이터추출 - 16 -
문의사항 & 활용법활용법 - 평소점검을위해수행하는쿼리를활용할수있을까요? 메뉴 : 분석 -> 스크립트 1. 사용하고자하는 sql 파일을 DBX Agent 디렉토리로복사하여등록 ex) {DBXHome}/scripts/ {DB 구분 }/{SQL 파일 } 2. 복사된파일명이왼쪽메뉴로리스트업되며우측 실행 버튼을통해실행 - 17 -
Session Database Monitoring MySQL 모니터링 발표자 목차 와탭랩스 박명규 1. 기능개선및신규기능 2. 문의사항 & 활용법 3.MySQL 모니터링 4. 이벤트활용 5. 연계모니터링
MySQL 모니터링주요지표확인 + 주요지표 설명 Threads_connected Total session counts Threads_running Active session counts Questions Execution counts Com_select Select counts Writes Insert + Delete + Update counts Innodb_buffer_pool_read_requests Logical reads Innodb_buffer_pool_reads Physical reads Bytes_sent, Bytes_received data 전송량 Innodb_buffer_pool Innodb_buffer_pool_pages_(data,free,dirty,total) - 19 -
MySQL 모니터링 Active Sessions List 확인 실시간모니터링, 멀티인스턴스, 트랜드를통해 Active Sessions List 를확인할수있으며, MySQL 에서제공하는 SHOW PROCESSLIST 와동일한내용을보여줍니다. 1. 문제가발생한시점의 Stat 지표와 Active Sessions List 확인을통해문제점을분석하게됩니다. 2. time 이높은 session 이부하가클가능성이높으며, State(Thread State) 참고 3. 쿼리를확인하며부하유발가능성을유추 - 20 -
MySQL 모니터링 innodb_buffer_pool 모니터링 - I + 지표설명 Innodb_buffer_pool_pages_data - 21 - 전체버퍼풀에서현재사용중인버퍼풀페이지수 Innodb_buffer_pool_pages_dirty 버퍼풀의데이터중변경된페이지수 ( 더티페이지수 ) Innodb_buffer_pool_pages_flushed Innodb_buffer_pool_pages_free Innodb_buffer_pool_pages_total Innodb_buffer_pool_bytes_data 버퍼풀에서플러시한페이지수 전체버퍼풀에서사용하지않은 ( 사용가능한 ) 페이지수 전체버퍼풀의페이지수 전체버퍼풀에서현재사용중인버퍼풀바이트수 Innodb_buffer_pool_bytes_dirty 버퍼풀의데이터중변경된바이트수 ( 더티데이터수 ) Innodb_buffer_pool_dump_status Innodb_buffer_pool_load_status Innodb_buffer_pool_pages_misc Innodb_buffer_pool_read_ahead_evicted 버퍼풀에보관된페이지를기록한상태 버퍼풀이이전시점에해당하는페이지를읽음으로워밍업을진행한페이지수 Row lock, hash index 와같이오버헤드에할당되어사용된버퍼풀의페이지수 버퍼풀에미리읽어들인페이지중사용되지않고제거된페이지수
MySQL 모니터링 innodb_buffer_pool 모니터링 - II + 지표설명 Innodb_buffer_pool_read_ahead_rnd Innodb_buffer_pool_read_ahread Innodb_buffer_pool_read_requests Innodb_buffer_pool_reads Innodb_buffer_pool_resize_status Innodb_buffer_pool_wait_free Innodb_buffer_pool_write_requests 지표관련참고자료 > - 22 - 랜덤으로미리읽기가발생한페이지수 미리읽기백그라운드스레드가버퍼풀로미리읽어들인페이지수 버퍼풀에서논리적인읽기요청횟수 버퍼풀에데이터가없어서디스크에서직접읽은논리적수 버퍼풀의크기를동적으로조정하는작업상태 페이지를읽거나생성할때사용가능한클린페이지가없을경우 InnoDB 가더티페이지를비우고그작업이끝나기를기다리는값 버퍼풀에대한쓰기횟수 1. MySQL : https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html 2. MariaDB : https://mariadb.com/kb/en/library/server-status-variables/
Session DBX 모니터링 이벤트활용 발표자 목차 와탭랩스 박명규 1. 기능개선및신규기능 2. 문의사항 & 활용법 3.MySQL 모니터링 4. 이벤트활용 5. 연계모니터링
이벤트활용이벤트설정 각 Stat 지표별 Warning/Critical 이벤트설정이가능하며, 개별적용 or 전체적용하여이벤트알람을받을수있습니다. 메뉴 : 이벤트 -> 이벤트설정 1. 우측상단의 Add 2. 이벤트대상 Stat 지표선택 3. Warning / Critical 임계치설정 4. 이벤트박스우측상단의 On/Off 를선택 5. 좌측하단의 Save/Revert 6. 선별적적용 or 전체적용 - 24 -
이벤트활용이벤트수신설정 프로젝트멤버를대상으로이벤트알람을수신받는조건을다양하게설정가능하며, Telegram / Slack 등의 SNS 도활용할수있습니다. 메뉴 : 이벤트 -> 이벤트수신설정 1. 상단알람설정에서이벤트수신대상에대한정보설정 2. 중간써드파티플러그인통해서 Telegram / Slack 연동설정 - 25 -
이벤트활용이벤트기록 이벤트기록을통해과거의이벤트를조회하거나, 실시간이벤트정보를수신할수있으며, 이벤트클릭시트랜드를통해전후 Stat 지표및수행중이었던쿼리정보를분석할수있습니다. 메뉴 : 이벤트 -> 이벤트기록 1. 기간설정후조회 2. 조회된이벤트를클릭하여트랜드페이지로이동 3. 이벤트발생당시의 Stat 지표및액티브세션으로발생원인분석 - 26 -
Session DBX 모니터링 연계모니터링 발표자 목차 와탭랩스 박명규 1. 기능개선및신규기능 2. 문의사항 & 활용법 3.MySQL 모니터링 4. 이벤트활용 5. 연계모니터링
연계모니터링통합대쉬보드 통합대쉬보드를통해 APM/Server/DBX 프로젝트를한화면에서동시모니터링이가능합니다. 1. 좌측 APM 을구성 2. 우측 DB 의주요 Stat 지표구성 3. 고객서비스에문제발생시관련영향도를한눈에파악 - 28 -
연계모니터링 APM 연계분석 APM Hitmap 의트랜잭션응답시간분포패턴과 DB 의지표패턴이유사한내역을찾아원인을추적하는연계분석방법입니다. - 29 -
감사합니다. 이문서의저작권은 ( 주 ) 와탭랩스에있습니다. 이문서는 ( 주 ) 와탭랩스의서면동의없이어떤형태로도재생산, 배포, 변경할수없습니다.