Skip to main content

MySQL

Single View는 실시간으로 특정 하나의 데이터베이스에 대해 다양한 관점에서 성능 상태를 확인할 수 있습니다.

  • CPU 및 Connection 정보를 확인합니다.
  • Slow Query를 분석합니다.
  • 데이터베이스 성능 지표의 Trend를 확인합니다.
  • 최근 10분 동안 급증한 SQL, Event 지표를 확인합니다.
  • Table/Index Scan 비율을 확인합니다.
  • 사용자 Alert, Vacuum, Replication, Checkpoint 등 주요 관리 포인트를 확인합니다.
  • Temp, Tablespace Size, 변경된 Parameter, 통계정보 등 추가 관리 포인트를 확인합니다.
순번항목내용
1Grouping Summary데이터베이스 지표, Event통계, SQL 실행 정보, Object scan type별 집계 등 다양한 관점의 집계된 데이터를 통해 장애 원인을 추적할 수 있습니다.
2Overview데이터베이스 전체 Connection에 대한 사용 패턴과 각 사용 상태에 대한 Backends 정보, CPU, Memory사용률을 제공합니다.
3Real Time Monitor데이터베이스의 활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링을 할 수 있습니다.
기본적으로 4개의 주요 성능 지표에 대해 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능 지표로 변경 및 확장이 가능합니다.

Grouping Summary

데이터베이스 지표, Event통계, SQL 실행 정보, Object scan type별 집계 등 다양한 관점의 집계된 데이터를 통해 장애 원인을 추적할 수 있습니다.

1) Statistics & Event Overview나 Trend 항목에서 비정상적인 상황을 인지했을 때, Statistics & Events 항목에서 최근 급증한 데이터베이스 지표를 확인하여 원인을 추적할 수 있습니다.

Statistics : MySQL에서 제공하는 성능지표 Event : MySQL에서 제공하는 대기 관련지표

1-1) Top Diff Statistics(Sum) for 10 min 최근 10분 데이터를 비교하여 변화량을 기준으로 비율이 가장 높은 지표 Top 5를 보여줍니다. 지표명/변동 비율/변동값 순으로 정보를 확인할 수 있습니다.

Statistics row 클릭 시 성능지표의 30분 이전부터 현재 시간까지의 1분 Summary max, avg 값을 팝업 차트로 볼 수 있습니다.

1-2) Top Event for 10 min 성능 스키마의 events_waits_summary_global_by_event_name 테이블에서 수집한 데이터 중 최근 10분동안의 총 대기 시간 변화가 큰 event Top5를 보여줍니다. 순위/event 명/event 발생 횟수/event 총 대기 시간 변화량 순으로 정보를 확인할 수 있습니다.

event row 클릭 시 총 대기 시간 변화가 큰 event 목록을 볼 수 있습니다.

● Grid

순번항목내용
1Rank순위
2Event Name가장 대기시간이 많은 순으로 정렬된 Event 명
3CountEvent 발생 Count
4Wait Time (sec)초당 Event Wait time 합계
5Avg Wait Time (sec)초당 Event Wait time 평균 값

2) SQL & Query Error 최근 10분 데이터를 비교하여, 기본 event 대기시간의 변화량과 오류 또는 경고 횟수를 기준으로 TOP SQL을 확인할 수 있습니다.

2-1) Top SQL for 10min Order By Total Latency 성능스키마의 events_statements_summary_by_digest 테이블에서 수집한 데이터 중 최근 10분 동안 정렬 조건 기준으로 변화량이 큰 SQL top5를 보여줍니다. 순위/Digest/SQL 호출 횟수/SQL 총 대기시간 변화량 순으로 정보를 확인할 수 있습니다.

Total Latency를 클릭 시 정렬 조건을 변경할 수 있고, 정렬 조건에 따라 데이터가 변경됩니다.

performance_schema 설정이 필요합니다. Top SQL 정렬 기준: Total Latency, Max Latency, Tmp Disk Tables, Sort Merge Passes

Top SQL row클릭 시 SQL 성능정보, SQL Text 및 Plan 정보를 확인 할 수 있는 ‘SQL Detail’ 슬라이드로 연계 됩니다.

2-2) Top SQL for 10min Order By Error Count 최근 10분 동안 정렬 조건 기준으로 변화량이 큰 SQL을 보여줍니다. Digest / 명령문 실행 횟수 순으로 정보를 확인할 수 있습니다.

Error Count를 클릭 시 정렬 조건을 변경할 수 있고, 정렬 조건에 따라 데이터가 변경됩니다.

performance_schema 설정이 필요합니다. Top SQL 정렬 기준: Error Count, Warn Count

Top SQL row 클릭 시 Error Count 변화량이 큰 SQL을 확인할 수 있는 ‘Top 10 SQL List Order by Warn Count’ 팝업창으로 연계됩니다.

● Grid

순번항목내용
1Rank순위
2Query실행 Query
3Exec Count실행 횟수
4ErrorsError 발생 횟수
5Error PercentError 발생 횟수 비율
6WarningsWarning 발생 횟수
7Warnings PercentWarning 발생 횟수 비율
8DigestDigest

3) Scan Type 성능지표를 확인하여 Table Full Scan과 Index를 효율적으로 사용하지 못한 부분에 대한 추이를 제공합니다. 차트 변화를 통해 테이블에 적절한 인덱스가 있는지 판단할 수 있습니다.

차트 클릭 시 SQL scan 정보를 볼 수 있는 ‘Top 10 SQL Full Scan List’ 팝업창으로 연계됩니다.

● Grid

순번항목내용
1Rank순위
2DigestDigest
3Query실행 Query
4DBDB 이름
5Sum No Index Used인덱스를 사용하지 않고 테이블 스캔을 수행한 경우1, 그렇지 않은 경우 0
6Sum No Good Index Used좋은 인덱스를 찾지 못한 경우 1, 그렇지 않은 경우 0
7Exec Count실행 횟수
8 Err Count오류 발생 횟수
9Warn Count경고 발생 횟수
10Avg Latency (sec)평균 수행 시간 (초)
11Total Latency (sec)총 수행 시간 (초)
12Max Latency (sec)최대 수행 시간 (초)
13Lock Latency (sec)테이블 Lock 경과 시간의 총 시간 (초)
14Rows Sent명령문에 의해 반환된 행 수
15Rows Affected명령문의 영향을 받는 행 수
16Rows Examined서버 계층에서 검사한 행 수(스토리지 엔진 내부의 처리는 포함하지 않음)
17Tmp Tables명령문을 실행하는 동안 서버에서 생성한 임시 테이블 수
18Tmp Disk Tables명령문을 실행하는 동안 디스크에서 생성한 임시 테이블 수
19Sort Merge PassesSort buffer 크기보다 정렬 데이터가 큰 경우 Disk Temp 영역을 사용해 여러 조각으로 나누어서 처리한 수

4) Trend Summary 최근 데이터를 Summary해서 분석된 정보를 제공합니다. 해당 영역을 통해 지표의 추이가 고르게 분포되어 있는지, 평소와는 다른 패턴으로 사용된 지표가 있는지 등을 판단하여 전반적인 서버의 상태를 확인할 수 있습니다.

막대 그래프 클릭 시 해당 지표의 30분 동안의 추이를 확인할 수 있습니다.

  클릭 시 원하는 지표로 변경할 수 있습니다.


5) Overview 데이터베이스의 전체 Connection에 대한 사용 패턴과 각 사용 상태에 대한 Thread정보, CPU, Memory 사용률을제공 합니다.

5-1) Connection View Connection View를 통해 데이터베이스의 전체 Thread가 어떻게 사용되고 있는지 한눈에 파악할 수 있습니다. 사용 비율을 표현한 벌집 뷰에서 각 Thread 상태에 맞는 색 변화를 통해 데이터베이스의 상태를 파악할 수 있습니다.

Long 상태의 Connection은 노란색, Lock 상태의 Connection은 빨간색으로 표시됩니다.

평소와 다른 패턴으로 커넥션의 비율이 급증하여 벌집뷰의 칸이 갑자기 늘어난다면 Thread상태를 클릭하여 상세 내역을 확인할 수 있는 ‘Thread’ 팝업창에서 Thread 목록을 확인할 수 있습니다.

5-2) Core Alert, Sorting, Replication, Redo Log File Size 등 4가지의 인프라 관련 주요 관리 포인트를 표시합니다.

순번항목내용
1Alert현재 Alert 이 발생하고 있는 알람 발생 카운트를 표시합니다.
해당 영역을 클릭하면 Alert 발생 정보를 확인할 수 있는 Admin Reference 영역의 Alert Logs 항목이 펼쳐집니다.
2SortingSort Merge Passes 발생여부를 확인하여 IO 성능에 문제가 있는지 확인할 수 있습니다. Sort를 많이 사용하는 SQL을 ‘Top 10 Sorting List’ 팝업창을 통해 확인할 수 있습니다.
Sort Merge Passes: Sort buffer 크기보다 정렬 데이터가 큰 경우 Temp 영역을 사용해 여러 조각으로 나누어서 처리한 수
Sort Range: Index Scan을 통해 수행되는 Sort 횟수
Sort Scan: Table Scan을 통해 수행되는 Sort 횟수
Sort Rows: Sort되는 Rows의 개수
3ReplicationReplication으로 구성된 서버의 Primary, Standby 간 Log 파일과 시간 차이를 표시합니다.
차이가 많이 나는 경우 네트워크, SQL, 설정 등 지연의 원인을 파악해야 합니다.
4Redo Log File Size트랜잭션이 DB에서 오래 수행되면 DB Lock 발생을 초래하여 문제가 발생할 수 있습니다. Old Transaction에 대해 Top-10 목록을 제공하여 어떤 트랜잭션이 Redo Log를 유발하고 있는지 유추해보고 불필요한 Transaction을 Kill 할 수 있습니다
Replication으로 구성된 서버의 Primary, Stand
Usage: Redo Log 사용량(100%에 가까워질수록 장애가 발생할 확률이 높음)
CheckPoint: prev checkpoint와 cur checkpoint의 차이
MB Per Sec: 초 당 Redo Log File 사용량. Checkpoint 영역의 Gap이 벌어질 경우 해당 지표를 통해 실제로 대량의 Redo Log를 사용했는지 확인

6) Admin Reference Session/Global Temp Usage, Tablespace Size, Changed parameter등 주요 관리 포인트를 표시합니다.

6-1) Temp Usage Global Temp Tablespace, Session Temp Tablespace 영역 별로 Temp 사용량을 확인할 수 있습니다.

MySQL 8.0.13 버전부터 session영역의 Temp Tablespace 사용량에 대한 모니터링이 가능합니다.

Session Temp Tablespace: 사용자가 생성한 Temp Table 및 Optimizer가 내부적으로 생성하는 Temp Table의 내용을 저장 Global Temp Tablespace: 사용자가 생성한 Temp Table의 변경사항에 대한 Rollback Segment를 저장

MariaDB인 경우 Global Temp Tablespace 영역에 대해서만 모니터링이 가능하며, MariaDB 10.3 버전부터는 Temp Tablespace 모니터링을 지원하지 않습니다.

6-2) Additional Information open table사용량, 파라미터 변경사항, Tablespace크기 등을 확인할 수 있습니다.

Open Tables open tables가 많이 열린 경우 과도한 메모리 낭비가 발생할 수 있으므로 설정된 open tables cache 값 대비 open table을 얼마나 쓰고있는지 확인할 수 있습니다.

Parameter 2시간 이내에 변경된 파라미터를 표시합니다.

확장 버튼 클릭 시 ‘Parameter’ 팝업창으로 나타납니다. 변경된 파라미터의 변경 전, 변경 후, 변경된 정보를 수집한 시간 값을 확인할 수 있습니다.

● Grid

순번항목내용
1Name파라미터 명
2Before Value변경 전 값
3After Value변경 후 값
4TimeexemONE에서 수집한 시간

Top Tablespace Size MySQL에서는 Database가 곧 Schema이고 Table마다 Tablespace를 갖고 있기 때문에 Schema 단위로 Tablespace 크기를 확인할 수 있습니다.

해당 영역을 클릭하면 ‘Top 10 Tablespace List’ 팝업창으로 연계됩니다. 지난 20분간 수집한 total size or diff size가 큰 object top 10을 보여줍니다.

● Grid

순번항목내용
1Database Name데이터베이스 이름
2Table Name테이블 이름
3Data Length(MB)데이터 크기(MB)
4Index Lenth(MB)인덱스 크기(MB)
5Free(MB)할당되었지만 사용되지 않은 크기(MB)

6-3) Alert Logs 사용자가 설정한 Alert의 발생 이력을 확인합니다.

Rule Name 클릭 시, Alert Detail Slide로 발생 정보를 확인할 수 있습니다.


7) Real Time Monitor

7-1) Slow Query SQL의 수행시간을 Scatter 차트로 확인할 수 있습니다. (상세 내용은 4-1) Slow Query 참고)

7-2) Trend Chart 데이터베이스의 활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링 화면을 제공합니다. 기본적으로 4개의 주요 성능 지표에 대한 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능지표로 변경 및 확장이 가능합니다. (상세 내용은 4-2) Trend Chart 참고)


8) Session Tab Single View 화면 하단 Session Tab 버튼을 클릭하면 슬라이드 아웃 형태로 Backend 목록을 확인할 수 있습니다. Overveiw나 Trend Chart를 통해 데이터베이스의 비정상적인 상태를 인지했을 때, Session Tab에서 현재 SQL을 실행하고 있는 Active Thread, Lock Thread 정보를 확인하여 원인이 되는 Thread를 찾을 수 있고, 필요하다면 강제로 종료할 수 있습니다.

8-1) Thread 현재 실행중인 Tread 목록을 확인할 수 있습니다. (상세 내용은 5-1) Thread 참고)

8-2) Lock Tree 현재 Lock 상태의 Thread 목록을 확인할 수 있습니다. (상세 내용은 5-2) Lock Tree 참고)

8-3) Meta Lock Tree 현재 Meta Lock 상태의 Thread 목록을 확인할 수 있습니다. (상세 내용은 5-3) Meta Lock Tree 참고)

8-4) Session Detail 특정 Thread 또는 Lock Tree를 더블 클릭하면 Session Detail 팝업창이 나타나며 세부 정보와 실행중인 SQL 정보를 확인할 수 있습니다.  버튼을 통해 현재 실행중인 Session을 종료할 수 있습니다.