Skip to main content

MySQL

다수의 MySQL 서버를 모니터링 할 수 있는 화면입니다. 하나의 데이터베이스가 선택되면 Overview, Session, Core 6 등 선택된 데이터베이스의 데이터만으로 변경되어 단일 데이터베이스에 대한 집중적인 모니터링이 가능합니다. 상단 브레드크럼을 이용하여 폴더 변경이 가능합니다.


1) Overview 폴더에 속한 인스턴스의 CPU, Memory, 주요 성능 지표를 함께 확인할 수 있습니다. 목록에서 인스턴스 클릭 시 선택한 인스턴스가 하이라이트 되며 선택한 인스턴스의 데이터를 하이라이트로 볼 수 있습니다. Alert이 발생한 경우 해당 인스턴스에 Alert Level에 따라 색 표시가 되어 어떤 인스턴스에 문제가 있는 지 파악할 수 있습니다.

1-1) DB Session Type Active Session, Long Session, Lock Session을 색상으로 구분하여 실시간으로 각 Session 상태 별 분포를 통해 데이터베이스에서 진행중인 작업의 형태와 waiting 여부를 판단할 수 있습니다.


2) Rank 주요 성능 6가지를 선별하여 직관적인 모니터링이 가능합니다. 타이틀 클릭 시 인스턴스 별 순위, 등록된 인스턴스들의 성능 데이터를 비교하여 인스턴스 별 비율과 10분 추이를 확인할 수 있습니다.

2-1) Sort Merge Passes (Count) sort merge passes수를 보여줍니다. MySQL에서는 정렬하려는 데이터가 Sort Buffer보다 큰 경우에 정렬 데이터를 여러 조각으로 나누어서 처리하며, 임시 저장을 위해 디스크를 사용합니다. 디스크의 성능은 메모리보다 느리기 때문에 실제 쿼리 요청이 느려질 수 있으므로, sort merge passes 발생여부를 모니터링하여 성능에 영향이 있는지 모니터링 해야 합니다. 인스턴스 클릭 시 sort merge passes수가 높은 SQL을 확인할 수 있는 ‘Top 10 Sorting List’ 창으로 연계 됩니다.

● Grid

순번항목내용
1Rank순위
2DB데이터베이스
3Execute Count총 실행 횟수
4Sort Merge PassesSort buffer 크기보다 정렬 데이터가 큰 경우 Disk의 Temp 영역을 사용해 여러 조각으로 나누어서 처리한 수
5Avg Sort Merge평균 sort merge passes
6Avg Rows Sorted명령문에 의해 정렬된 평균 행 수
7Last SeenSort merge passes가 최근에 발생한 시간
8QuerySQL Text

2-2) Global Temp Usage (Size) Global Temp 사용률을 보여줍니다. 인스턴스 클릭 시 global temp 사용량이 높은 파일을 확인할 수 있는 ‘Global Temp List’ 팝업창으로 연계 됩니다.

● Grid

순번항목내용
1FILE NAMETemp Table 파일 이름
2Tablespace NameTemp Table Tablespace 이름
3Initial Size (bytes)최초 설정된 파일 크기 (bytes)
4Total Size (bytes)총 크기 (bytes)
(TOTAL_EXTENTS * EXTENT_SIZE/1024/1024)
5Data FreeTablespace의 총 여유 공간 (NDB는 항상 NULL)
6Maximum Size (bytes)최대로 증가할 수 있는 사이즈 (NULL로 보이는 경우는 설정 안됨, Auto)

2-3) Session Temp Usage (Size) Session Temp 사용률을 보여줍니다. 인스턴스 클릭 시 session temp 사용량이 높은 파일을 확인할 수 있는 ‘Top 10 Session Temp List’ 팝업창으로 연계 됩니다.

● Grid

순번항목내용
1Rank순위
2User사용자
3Host사용자 Host
4DB데이터베이스 이름
5Process IDProcess ID
6Tablespace IDTablespace ID
7PathTablespace 데이터 파일 경로
8Size (Bytes)Tablespace 크기 (Bytes)
9State현재 tablespace 사용 여부 (Active: 세션에서 사용 중, Inactive: 사용 중이지 않음)
10PurposeTablespace 목적




11SQL TextSQL Text
12CommandSQL 수행 상태
13Time (sec)시간 (초)
14Thread StateThread 상태

2-4) Queries[Delta](Count) DB가 기동 된 이후부터 수행 된 전체 SQL 수의 변화량을 보여줍니다. 인스턴스 클릭 시 최근 Top Summary 정보를 확인할 수 있는 ‘Top SQL’ 팝업창으로 연계 됩니다.

● Grid

순번항목내용
1Rank순위
2DigestDigest
3QuerySQL Text
4Exec Count총 실행 횟수
5Total Latency (sec)총 수행 시간 (초)
6Avg Latency (sec)평균 수행 시간 (초)
7Max Latency (sec)최대 수행 시간 (초)
8DB데이터베이스 이름
9Tmp Disk Tables명령문을 실행하는 동안 서버에서 생성한 디스크 임시 테이블 수
10Sort Merge PassesSort buffer 크기보다 정렬 데이터가 큰 경우 디스크의 Temp 영역을 사용해 여러 조각으로 나누어서 처리한 수

2-5) Redo Usage (%) Redo 사용률을 보여줍니다. 인스턴스 클릭 시 어떤 트랜잭션이 Redo Log를 유발하고 있는지에 대한 정보를 자세히 확인할 수 있는 ‘Top 10 Old Transaction’ 창으로 연계 됩니다.

● Grid

순번항목내용
1Rank순위
2Thread IDThread ID
3Process IDProcess ID
4Event IDEvent ID
5User사용자
6DB데이터베이스 이름
7Current Statement최근 실행 명령어
8Trx Time (sec)트랜잭션 수행 시간 (초)
9Trx Start Time트랜잭션 시작 시간 (초)
10End Event IDEvent가 끝날 때 스레드 현재 Event ID로 업데이트 (이벤트가 시작될 때는 NULL로 설정)
11Event NameEvent 이름
12State트랜잭션 상태
13Access Mode트랜잭션 액세스 모드 (값은 READ WRITE 또는 READ ONLY)
14Isolation Level트랜잭션 격리 수준 (값은 REPEATABLE READ, READ COMMITTED, READ UNCOMMITTED 또는 SERIALIZABLE.)
15Auto Commit트랜잭션이 시작될 때 자동 커밋 모드가 활성화되었는지 여부

3) Alert 인스턴스에서 발생한 Alert을 Level, Type 별로 보여줍니다.


4) Real Time Monitor 데이터베이스의 활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링을 할 수 있습니다. 기본적으로 4개의 주요 성능 지표에 대한 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능 지표로 변경 및 확장이 가능합니다.

4-1) Slow Query SQL의 수행시간을 Scatter 차트로 확인할 수 있습니다. 등록된 인스턴스들의 Slow Query를 확인하거나 특정 인스턴스를 선택해서 확인할 수 있습니다. 를 선택하면 ‘Slow Query Option’ 팝업창이 뜨고 Max Value 값과 점의 크기를 변경할 수 있습니다.

순번항목내용
1Set Max ValueSlow Query 차트에 표시할 Query최대 수행 시간입니다.
Set Max Value 옵션 설정 시 설정된 값으로 차트를 그립니다. Slow Query 타이틀 영역에서는 Max 값이 넘는 Query 수와 Slow Query 중 가장 수행시간이 긴 Query의 시간을 확인할 수 있습니다.
Set Max Value 옵션을 설정하지 않은 경우 Slow Query 중 수행시간이 긴 Query 의 시간을 Max값으로 차트를 그립니다.
2Set Dot SizeSlow Query 차트를 그릴 점의 크기를 1~5 크기로 설정할 수 있습니다.

Slow Query 점을 드래그 하면 ‘SQL Elapsed List’ 팝업창이 나타나며 드래그 영역에 수집된 SQL 목록을 확인할 수 있습니다.

● Grid

순번항목내용
1Alias인스턴스 이름
2Thread IDThread ID
3User Host사용자 Host
4Start TimeThread 시작 시간
5Query Time (sec)실행 시간 (sec)
7Lock Time (sec)Lock을 획득하기 위해 대기하는데 소요된 시간 (sec)
8SQL TextSQL Text

SQL List를 더블 클릭하면 ‘Session Detail’ 팝업창으로 연계되며 SQL, Plan 및 세부적인 정보를 확인할 수 있습니다.

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

를 클릭하여 지표를 변경할 수 있습니다. ‘Stat Change’ 팝업창에서 지표 변경 및 차트 옵션을 선택하여 지표를 변경합니다.


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

5-1) Thread 현재 실행 중인 Thread 목록을 확인할 수 있습니다.

멀티 데이터베이스 모니터링을 지원하며 우측 상단에서 원하는 인스턴스만 모니터링이 가능하도록 선택할 수 있습니다.

● Grid

순번항목내용
1Thread IDThread ID
2Process ID서버 Process ID
3User사용자 이름
4Host사용자 Host
5DB데이터베이스 이름
6DigestDigest
7SQL TextSQL Text
8Elapsed Time(sec)수행 시간 (초)
9Query Start Time쿼리 시작 시간
10CommandSQL 수행 상태
11State현재 tablespace 사용 여부 (Active: 세션에서 사용 중, Inactive: 사용 중이지 않음)
12PID사용자 Process ID
13Program Name사용자 프로그램 이름
14Statement Latency(sec)명령문이 실행된 기간 (초)
15Progess각 행에 대한 단계 진행률
(100 * WORK_COMPLETED) / WORK_ESTIMATED
16Lock Latency(sec)lock을 대기하는데 소요된 시간 (초)
17Rows Examined스토리지 엔진에서 읽은 행 수
18Rows Sent명령문에서 반환된 행 수
19Rows Affected명령문의 영향을 받는 행 수
20Tmp Tables명령문을 실행하는 동안 서버에서 생성한 임시 테이블 수
21Tmp Disk Tables명령문을 실행하는 동안 디스크에서 생성한 임시 테이블 수
22Full Scan명령문에서 수행한 전체 테이블 스캔 수
23Last Statement Latency(sec)마지막 명령문이 실행된 시간 (초)
24Current MemoryThread가 할당한 바이트 수
25Last WaitThread에 대한 가장 최근의 대기 이벤트 이름
26Last Wait Latency(sec)Thread에 대한 가장 최근 대기 이벤트의 대기 시간 (초)
27Source이벤트를 생성한 계측 코드가 포함된 소스 파일 및 줄 번호
28Trx Latency(sec)Thread에 대한 현재 트랜잭션의 수행 시간
29Trx StateThread에 대한 현재 트랜잭션의 상태
30Trx Autocommit현재 트랜잭션이 시작될 때 자동 커밋 모드가 활성화되었는지 여부

5-2) Lock Tree 현재 Lock 상태의 Threads 목록을 확인할 수 있습니다. 멀티 데이터베이스 모니터링을 지원하며 우측 상단에서 원하는 인스턴스만 모니터링이 가능하도록 선택할 수 있습니다.

● Grid

순번항목내용
1Start Time세션 시작 시간
2Collect Time수집 시간
3Lock Wait Time(sec)Wait session의 대기 소요 시간
4Lock StatusLock session 상태
5Blocking Engine Transaction IDLock 트랜잭션 ID
6Engine Transaction ID트랜잭션 ID
7Thread IDThread ID
8Processlist ID서버 프로세스 ID
9SQL Text수행된 쿼리 SQL Text
10NameMySQL Lock Name
11TypeMySQL Lock 타입
12Processlist User스레드와 연관된 사용자명
13Processlist Host스레드와 연관된 호스트 정보
14Processlist DB스레드의 데이터베이스 사용자명
15Processlist Command스레드가 실행한 명령 유형
16Processlist Time (sec)스레드가 현재 상태로 변경된 시간
17Processlist State스레드 동작, 이벤트 상태
18Parent Thread ID해당 스레드가 하위 스레드인 경우, 상위 스레드 ID
19Connection Type연결 설정에 사용된 프로토콜
20Thread OS IDOS에 정의된 스레드 식별 ID
21Trx Wait Started트랜잭션 대기 시작 시간
22Trx State트랜잭션 상태
23Trx Started트랜잭션 시작 시간
24Trx Operation State트랜잭션 현재 상태
25Trx Rows Locked트랜잭션에 의해 잠긴 행 수
26Trx Rows Modified트랜잭션에서 수정/삽입된 행 수
27Lock Mode v57MySQL v5.7 이하 Lock Mode
28Lock Type v57MySQL v5.7 이하 Lock Type
29Lock Table v57MySQL v5.7 이하 Lock Table

5-3) Meta Lock Tree 현재 Meta Lock 상태의 Threads 목록을 확인할 수 있습니다. 멀티 데이터베이스 모니터링을 지원하며 우측 상단에서 원하는 인스턴스만 모니터링이 가능하도록 선택할 수 있습니다.

● Grid

순번항목내용
1Start Time세션 시작 시간
2Collect Time수집 시간
3Lock Wait Time(sec)Wait session의 대기 소요 시간
4Lock StatusLock session 상태
5Blocking Engine Transaction IDLock 트랜잭션 ID
6Engine Transaction ID트랜잭션 ID
7Thread IDThread ID
8Processlist ID서버 프로세스 ID
9SQL Text수행된 쿼리 SQL Text
10NameMySQL Lock Name
11TypeMySQL Lock 타입
12Processlist User스레드와 연관된 사용자명
13Processlist Host스레드와 연관된 호스트 정보
14Processlist DB스레드의 데이터베이스 사용자명
15Processlist Command스레드가 실행한 명령 유형
16Processlist Time (sec)스레드가 현재 상태로 변경된 시간
17Processlist State스레드 동작, 이벤트 상태
18Parent Thread ID해당 스레드가 하위 스레드인 경우, 상위 스레드 ID
19Connection Type연결 설정에 사용된 프로토콜
20Thread OS IDOS에 정의된 스레드 식별 ID
21Trx Wait Started트랜잭션 대기 시작 시간
22Trx State트랜잭션 상태
23Trx Started트랜잭션 시작 시간
24Trx Operation State트랜잭션 현재 상태
25Trx Rows Locked트랜잭션에 의해 잠긴 행 수
26Trx Rows Modified트랜잭션에서 수정/삽입된 행 수
27Lock Mode v57MySQL v5.7 이하 Lock Mode
28Lock Type v57MySQL v5.7 이하 Lock Type
29Lock Table v57MySQL v5.7 이하 Lock Table

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