본문으로 건너뛰기

exemONE Database MySQL 성능 분석

1. 개요

메뉴 경로: Performance Analysis > Database > MySQL

MySQL 인스턴스의 SQL 성능, 추이, 세션, 오브젝트 공간 분석 등을 제공하는 화면입니다.

버전별 전제 조건 안내 (중요) | MySQL/MariaDB 버전 | 주의사항 | |-------------------|---------| | 5.5 이하 | PA > Top N Analysis, Search SQL, Search Session 모니터링 불가 | | 5.6 | PA > Search Session 모니터링 불가 / PA > Trend Analysis > Threads, Meta Lock Tree, Long Active Thread 모니터링 불가 | | 5.7 이상 | 전체 기능 사용 가능 (일부 항목 제한 있음, 주의사항 참고) |


2. Top N Analysis (상위 SQL 분석)

2-1. 개요

메뉴 경로: Performance Analysis > Database > MySQL > SQL Analysis > Top N Analysis

Stacked Area Chart를 활용하여 특정 기간 동안의 Top SQL을 조회하는 기능을 제공합니다.

조회 기간 제한: 최소 20분 / 최대 32일 (초 단위 설정 불가)

2-2. 기본 뷰 화면 설명

순번항목설명
1Search Panel버튼 클릭 시 검색 패널이 나타납니다.
2Search Result검색 패널에서 선택한 조건은 상단에 텍스트로 표시됩니다.
3Chart검색 조건에 따른 일자별 Trend Chart를 보여줍니다.
4Top N SQL검색 패널의 Group By 조건에 따라 상위 10건 또는 20건을 보여줍니다. Order By 조건 내림차순으로 정렬됩니다.
5Top 5 Schema검색 패널에서 Group By=Schema 선택 시 상위 5건을 보여줍니다.
6Full Text상위 N SQL Grid에서 선택한 행의 SQL Full Text 정보를 보여줍니다. 클릭 시 텍스트 복사 가능합니다.

2-3. 상세 기능 설명

2-3-1. Search Panel

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Time기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. 최대 32일, 최소 20분입니다.
4FiltersGroup By: Digest (Default) / Schema 중 선택. Order By: Total Latency (Default) / Avg Latency / Max Latency / Rows Examined / Tmp Disk 중 선택.

2-3-2. Chart

순번항목설명
1마우스 오버마우스 오버 시 툴팁과 인디케이터를 보여줍니다.

2-3-3. Top N SQL Grid 항목

항목설명
Rank순위
Schema쿼리를 실행했던 사용자의 이름
DigestDigest (쿼리 식별자) (클릭 시 SQL 디테일 슬라이드 오픈)
SQL Text수행된 쿼리 SQL Text
Total Latency (sec)총 수행 시간 (초)
Avg Latency (sec)평균 수행 시간 (초)
Max Latency (sec)최대 수행 시간 (초)
Rows Sent명령문에 의해 반환된 행 수
Rows Sent (Avg)반환된 행 수 평균 (Rows Sent / Executions)
Rows Examined명령문의 영향을 받는 행 수
Rows Examined (Avg)영향을 받는 행 수 평균 (Rows Examined / Executions)
Tmp Disk Tables명령문을 실행하는 동안 서버에서 생성한 내부 디스크 임시 테이블 수
Tmp Disk Tables (Avg)디스크 임시 테이블 수 평균 (Tmp Disk Tables / Executions)
Sort Merge PassesSort Buffer보다 정렬 데이터가 큰 경우 Temp 영역을 사용해 여러 조각으로 나누어 처리한 수
Sort Merge Passes (Avg)Sort Merge Passes 평균 (Sort Merge Passes / Executions)
Executions명령문이 실행된 횟수
Ratio (%)Top SQL 대비 총 대기 시간 비율 (100 * total_latency / sum(total_latency))

2-3-4. Top-5 Schema Grid 항목

Group By = Schema 선택 시 나타나며, 상위 5개 스키마 정보를 보여줍니다.

항목설명
Rank순위
Schema스키마 이름
Total Latency (sec)총 수행 시간 (초)
Rows Sent명령문에 의해 반환된 행 수
Rows Examined명령문의 영향을 받는 행 수
Executions명령문이 실행된 횟수
Latency/Exec (sec)수행 횟수 1개당 수행 시간
Rows Examined/Exec (sec)수행 횟수 1개당 영향을 받는 행 수
Tmp Disk Tables내부 디스크 임시 테이블 수
Sort Merge PassesSort Merge Passes 수
Total Latency (%)해당 스키마의 Total Latency 비율
Rows Examined (%)해당 스키마의 Rows Examined 비율
Executions (%)해당 스키마의 Executions 비율

3. Trend Analysis (성능 추이 분석)

3-1. 개요

메뉴 경로: Performance Analysis > Database > MySQL > Performance Analysis > Trend Analysis

날짜별, 시간별 성능 추이 확인이 가능한 화면으로, 특정 시점의 정밀한 성능 분석 기능을 제공합니다. 하단 Grid에서 Threads, Lock Tree, Meta Lock Tree, Top SQL, Top Event, Long Active Thread, User Connection Info, Alert, Slow Query 등 다양한 관점에서 장애 원인 분석이 가능합니다.

조회 기간 제한: 최소 1일 / 최대 2일 (분초 단위 설정 불가)

3-2. 기본 뷰 화면 설명

순번항목설명
1Search Panel버튼 클릭 시 검색 패널을 보여줍니다.
2Search Result검색 패널에서 선택한 조건은 상단에 텍스트로 표시됩니다.
3Trend Chart데이터베이스 주요 지표 Trend를 표시하며 주요 성능 지표에 대한 모니터링이 가능합니다.
4GridChart에서 클릭 시점에 수집된 Threads, Lock Tree, Meta Lock Tree, Top SQL, Top Event, Long Active Thread, User Connection Info, Alert, Slow Query를 보여줍니다.

Search Panel

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Time조회 기간 설정. Yesterday / Today 버튼 제공. 최대 2일, 최소 1일입니다.

Alert Summary

순번항목설명
1Chart특정 시간 범위를 드래그하여 부하가 높은 시간대를 집중적으로 분석합니다.
2TooltipChart에 마우스 오버 시 툴팁이 나타납니다.

Trend Chart

순번항목설명
1Chart검색 패널에서 조회한 대상, 기간에 맞춰 차트를 보여줍니다. 인디케이터가 위치한 시점의 날짜와 시간을 툴팁으로 보여줍니다.
2Stat Change각 차트명 우측 상단 아이콘을 클릭하여 지표를 변경합니다. 차트명 클릭 시 'Stat Chart Option' 팝업창이 나타납니다.

3-3. 상세 기능 설명

3-3-1. Threads (스레드 정보)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Threads 탭

클릭 시점에 수집된 Threads 정보 확인이 가능합니다.

전제 조건: MySQL/MariaDB 5.5 및 5.6에서는 모니터링 불가합니다.

순번항목설명
1GridTrend Chart에서 드래그한 조회 기간 정보를 Grid 형태로 보여줍니다.
2Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Threads Grid 항목:

항목설명
Thread IDThread ID
Process ID서버 Process ID
User사용자 이름
Host사용자 Host
DB데이터베이스
DigestDigest (쿼리 식별자)
SQL TextSQL Text
Elapsed Time (sec)수행 시간 (초)
Query Start Time쿼리 시작 시간
CommandSQL 수행 상태
State현재 Tablespace 사용 여부 (Active / Inactive)
PID사용자 Process ID
Program Name사용자 프로그램 이름
Statement Latency (sec)명령문이 실행된 기간 (초)
Progress각 행에 대한 단계 진행률 (100 * WORK_COMPLETED / WORK_ESTIMATED)
Lock Latency (sec)lock을 대기하는데 소요된 시간 (초)
Rows Examined스토리지 엔진에서 읽은 행 수
Rows Sent명령문에서 반환된 행 수
Rows Affected명령문의 영향을 받는 행 수
Tmp Tables명령문을 실행하는 동안 서버에서 생성한 임시 테이블 수
Tmp Disk Tables명령문을 실행하는 동안 서버에서 생성한 내부 디스크 임시 테이블 수
Full Scan명령문에서 수행한 전체 테이블 스캔 수
Last Statement Latency (sec)마지막 명령문이 실행된 시간 (초)
Current MemoryThread가 할당한 바이트 수
Last WaitThread에 대한 가장 최근의 대기 이벤트 이름
Last Wait Latency (sec)Thread에 대한 가장 최근 대기 이벤트의 대기 시간 (초)
Source이벤트를 생성한 계측 코드가 포함된 소스 파일 및 줄 번호
Trx Latency (sec)Thread에 대한 현재 트랜잭션의 대기 시간
Trx StateThread에 대한 현재 트랜잭션의 상태
Trx Autocommit현재 트랜잭션이 시작될 때 자동 커밋 모드가 활성화되었는지 여부

3-3-2. Lock Tree (잠금 트리)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Lock Tree 탭

클릭 시점에 수집된 Lock Tree 정보 확인이 가능합니다.

순번항목설명
1GridTrend Chart에서 드래그한 조회 기간 정보를 Grid 형태로 보여줍니다.
2Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Lock Tree Grid 항목:

항목설명
Start Time세션 시작 시간
Collect Time수집 시간
Lock Wait Time (sec)Wait session의 대기 소요 시간
Lock StatusLock session 상태
Blocking Engine Transaction IDLock 트랜잭션 ID
Engine Transaction ID트랜잭션 ID
Thread IDThread ID
Processlist ID서버 프로세스 ID
SQL Text수행된 쿼리 SQL Text
NameMySQL Lock Name
Lock TypeMySQL Lock 타입
Processlist User스레드와 연관된 사용자명
Processlist Host스레드와 연관된 호스트 정보
Processlist DB스레드의 데이터베이스 사용자명
Processlist Command스레드가 실행한 명령 유형
Processlist Time (sec)스레드가 현재 상태로 변경된 시간
Processlist State스레드 동작, 이벤트 상태
Parent Thread ID해당 스레드가 하위 스레드인 경우 상위 스레드 ID
Connection Type연결 설정에 사용된 프로토콜
Thread OS IDOS에 정의된 스레드 식별 ID
Trx Wait Started트랜잭션 대기 시작 시간
Trx State트랜잭션 상태
Trx Started트랜잭션 시작 시간
Trx Operation State트랜잭션 현재 상태
Trx Rows Locked트랜잭션에 의해 잠긴 행 수
Trx Rows Modified트랜잭션에서 수정/삽입된 행 수
Lock Mode v57MySQL v5.7 이하 Lock Mode
Lock Type v57MySQL v5.7 이하 Lock Type
Lock Table v57MySQL v5.7 이하 Lock Table

3-3-3. Meta Lock Tree (메타 잠금 트리)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Meta Lock Tree 탭

클릭 시점에 수집된 Meta Lock Tree 정보 확인이 가능합니다.

전제 조건: MySQL/MariaDB 5.5 및 5.6에서는 모니터링 불가합니다.

순번항목설명
1GridTrend Chart에서 드래그한 조회 기간 정보를 Grid 형태로 보여줍니다.
2Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Meta Lock Tree Grid 항목:

항목설명
Start Time세션 시작 시간
Collect Time수집 시간
Lock Wait Time (sec)Wait session의 대기 소요 시간
Lock StatusMeta Lock session 상태
Blocking Engine Transaction IDMeta Lock 트랜잭션 ID
Engine Transaction ID트랜잭션 ID
Thread IDThread ID
Processlist ID서버 프로세스 ID
SQL Text수행된 쿼리 SQL Text
NameMySQL Meta Lock Name
TypeMySQL Meta Lock 타입
Processlist User스레드와 연관된 사용자명
Processlist Host스레드와 연관된 호스트 정보
Processlist DB스레드의 데이터베이스 사용자명
Processlist Command스레드가 실행한 명령 유형
Processlist Time (sec)스레드가 현재 상태로 변경된 시간
Trx Rows Locked트랜잭션에 의해 잠긴 행 수
Trx Rows Modified트랜잭션에서 수정/삽입된 행 수

3-3-4. Top SQL (상위 SQL)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Top SQL 탭

클릭 시점에 수집된 Top SQL 정보 확인이 가능하며, 그리드 행 클릭 시 해당 Query가 하단 Full Text에 출력됩니다.

순번항목설명
1Grid데이터 조회 전(기본 상태) Grid 영역은 마스킹 처리되고 클릭 시 데이터를 보여줍니다. Grid 상단에 데이터 조회 시간 및 기간 정보를 보여줍니다.
2Order ByAvg Latency / Exec Count / Max Latency (Default) / Sort Merge Passes / Tmp Disk Tables 중 선택

Top SQL Grid 항목:

항목설명
Rank순위
DigestDigest (쿼리 식별자) (클릭 시 SQL 디테일 슬라이드 오픈)
Query수행 쿼리
Exec Count실행 횟수
Total Latency (sec)총 대기 시간 (초)
Avg Latency (sec)평균 대기 시간 (초)
Max Latency (sec)최대 대기 시간 (초)
DB데이터베이스 명
Tmp Disk Tables명령문을 실행하는 동안 서버에서 생성한 내부 디스크 임시 테이블 수
Sort Merge PassesSort Buffer 크기보다 정렬 데이터가 큰 경우 Temp 영역을 사용해 여러 조각으로 나누어 처리한 수

3-3-5. Top Event (상위 이벤트)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Top Event 탭

클릭 시점에 수집된 Top Event 정보 확인이 가능합니다.

항목설명
Rank순위
Event NameEvent 이름
CountEvent 발생 횟수
Wait Time (sec)총 대기 시간 변화량 (초)
Avg Wait Time (sec)평균 총 대기 시간 변화량 (초)

3-3-6. Long Active Thread (장시간 수행 스레드)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Long Active Thread 탭

클릭 시점에 수집된 Long Active Thread 정보 확인이 가능합니다.

전제 조건: MySQL/MariaDB 5.5 및 5.6에서는 모니터링 불가합니다.

항목설명
Rank순위
PIDProcess ID
Thread IDThread ID
Query Start Time쿼리 시작 시간
DigestDigest (쿼리 식별자)
Host사용자 Host
User사용자 이름
DB데이터베이스 명
CommandSQL 수행 상태
Elapsed Time (sec)수행 시간 (초)

3-3-7. User Connection Info (사용자 연결 정보)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > User Connection Info 탭

클릭 시점에 수집된 User Connection Info 정보 확인이 가능합니다.

항목설명
Rank순위
User사용자 이름
Host사용자 Host
AVG Connection평균 연결 수
MAX Connection최대 연결 수

3-3-8. Alert (알람 정보)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Alert 탭

클릭 시점에 수집된 알람 정보 확인이 가능합니다.

항목설명
Time발생 시간
Alert TypeAlert 유형
Rule NameAlert 이름
LevelAlert Level (Critical, Warning, Normal)
ValueAlert 발생 값

3-3-9. Slow Query (슬로우 쿼리)

메뉴 경로: Performance Analysis > Database > MySQL > Trend Analysis > Grid > Slow Query 탭

클릭 시점에 수집된 Slow Query 정보 확인이 가능합니다.

항목설명
Thread IDThread ID
User Host사용자 Host
Start Time쿼리 시작 시간
Query Time (sec)Query 수행 경과 시간
Lock Time (sec)Lock 발생 경과 시간
SQL TextSQL Text

4. Object Size (오브젝트 공간 분석)

4-1. 개요

메뉴 경로: Performance Analysis > Database > MySQL > DataSpace Analysis > Object Size

데이터베이스, 오브젝트에 대한 사용량을 확인하고 특정 날짜에 대해 비교 분석이 가능합니다. 특정 오브젝트에 대해 일자별 추이를 확인할 수 있습니다.

조회 기간 제한: 최소 1일 / 최대 32일 (시분초 설정 불가)

4-2. 기본 뷰 화면 설명

순번항목설명
1Search Panel버튼 클릭 시 검색 패널을 보여줍니다.
2Search Result검색 패널에서 선택한 조건은 상단에 텍스트로 표시됩니다.
3Tab검색 패널 인스턴스 항목에서 선택한 조건에 따라 Database / Object 탭이 나타납니다.
4Database Size Trend일자별로 Database / Object의 사용량(Used Size) 및 여유 공간(Free Size) 추이를 제공합니다.
5Database Size Info분석 구간의 처음과 마지막 날짜가 자동으로 선택되며, Database / Object별로 사이즈 추이와 변화량을 제공합니다.
6Top-30 Object전체 Database / Object 기준으로 Top-30 Object 정보를 출력하며, 우측 상단의 라디오 버튼을 통해 정렬 기준을 선택합니다.

4-3. 상세 기능 설명

4-3-1. Search Panel

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Time기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다. 최대 32일, 최소 1일입니다.
4Filter오브젝트를 선택합니다.

4-3-2. Database Size Trend

순번항목설명
1Database Size Trend검색 패널에서 선택된 인스턴스 및 오브젝트에 따라 일자별 사용량(Used Size) 및 여유 공간(Free Size) 추이를 제공합니다. Database 탭 및 Object 탭으로 구분됩니다.
2Chart마우스 오버 시 툴팁과 인디케이터를 보여줍니다.
3Date조회 기간에 따라 Date 명칭이 상이합니다. 1일 이하: Start Time / End Time, 2일 이상: Start Date / End Date

4-3-3. Database Size Info Grid 항목

항목설명
DB Name스키마 이름
Start Time Size조회 기간 중 처음 일자의 Database Size
End Time Size조회 기간 중 마지막 일자의 Database Size
Diff Size마지막 일자와 처음 일자 간의 Database Size 변화량 (End Size – Start Size)

Grid에서 특정 행을 클릭하면 Top-30 Object의 값이 변경됩니다.

4-3-4. Top-30 Object Grid 항목

항목설명
Radio 정렬 기준Start All Size / End All Size / Diff All Size 중 선택. 선택한 값 기준으로 상위 30개 값을 보여줍니다.
Rank순위
DB Name스키마 이름
Object NameObject 이름 (클릭 시 Object Detail Slide 오픈)
All SizeObject의 총 Size
Data SizeObject의 Data Size
Index SizeObject의 Index Size

4-3-5. Object Detail Slide

순번항목설명
1Title상위 30 오브젝트에서 클릭한 오브젝트의 이름을 보여줍니다.
2Close클릭 시 디테일 슬라이드가 닫힙니다.
3Object Information오브젝트 Value별 차트를 보여줍니다. 항목: Data Size / Index Size / Total Size / Count Delete / Count Fetch / Count Insert / Count Read / Count Update / Count Write / Row Scan Count (Default) / Row Scan Ratio / Sum Timer Delete 외 다수
4Object History오브젝트의 데이터를 1시간 간격으로 보여줍니다.

5. 주의사항 / 참고

항목내용
MySQL 5.5 미지원 기능PA > Top N Analysis, Search SQL, Search Session 모니터링 불가
MySQL 5.6 미지원 기능PA > Search Session 모니터링 불가. PA > Trend Analysis > Threads, Meta Lock Tree, Long Active Thread 모니터링 불가. PA > Object Size > DB Size, Object Size 외 모든 지표 모니터링 불가
Trend Analysis 조회 제한최소 1일, 최대 2일. 분초 단위 설정 불가
Top N Analysis 조회 제한최소 20분. 초 단위 설정 불가
Object Size 조회 제한최소 1일, 최대 32일. 시분초 설정 불가
대시보드 위젯 연계대시보드 위젯 링크 기능을 통해 각 PA 화면으로 연계 시 조회 범위가 최소 범위보다 작은 경우 최소 범위에 맞게 자동 보정됩니다.

참고 문서