본문으로 건너뛰기

exemONE Database ClickHouse 성능 분석

1. 개요

메뉴 경로: Performance Analysis > Database > ClickHouse

ClickHouse 인스턴스의 날짜별, 시간별 성능 추이를 분석하고, 특정 시점의 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 등 다양한 관점에서 장애 원인을 분석하는 화면입니다.


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

2-1. 개요

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

날짜별, 시간별 성능 추이 확인이 가능한 화면으로, 특정 시점의 정밀한 성능 분석 기능을 제공합니다. 하단 Grid에서 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 등 다양한 관점에서 장애 원인을 분석할 수 있습니다.

2-2. 기본 뷰 화면 설명

순번항목설명
1Search Panel버튼 클릭 시 검색 패널을 보여줍니다.
2Search Bar검색 패널에서 선택한 조건이 상단에 텍스트로 표시됩니다.
3Trend Chart데이터베이스 주요 지표 Trend를 표시하며 주요 성능 지표에 대한 모니터링이 가능합니다.
4GridChart에서 클릭 시점에 수집된 Process, Top SQL, Long Running Query, Part Log, Merge, Mutation, Alert 정보를 보여줍니다.

2-3. 상세 기능 설명

2-3-1. Search Panel

순번항목설명
1Reset검색 조건을 초기화합니다.
2Instance인스턴스를 선택합니다.
3Time기간 버튼 및 달력 UI를 이용하여 조회 기간 및 시간을 설정합니다.

순번항목설명
1Search클릭 시 검색 패널이 나타납니다.
2Filter Label검색 패널에서 선택한 조건(Instance Name, Time)이 상단에 텍스트로 표시됩니다.

2-3-3. Trend Chart

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

2-3-4. Grid - Process (프로세스 정보)

메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Process 탭

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

순번항목설명
1Filter필터 조건에 따라 Process 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2GridProcess 정보를 Grid 형태로 보여줍니다.
3Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Process Grid 항목:

항목설명
HostnameHost 이름
Current Database현재 사용 중인 데이터베이스 이름
UserUser 이름
AddressQuery를 실행한 IP 주소
PortQuery를 실행한 Client Port 정보
Elapsed Time (sec)Query 수행 시간
Query IDQuery ID
QueryQuery Text
Memory UsageMemory 사용량
Peak Memory Usage최대 Memory 사용량
Thread IDsQuery에 사용된 Thread ID
Is Initial Query사용자가 직접 실행한 쿼리인지 분산 쿼리 실행 과정에서 서버 내부적으로 실행한 쿼리인지 여부
Is CancelledQuery 실행 취소 여부
Read RowsTable에서 읽은 행 수
Read Bytes테이블에서 읽은 Bytes 수
Total Rows Approx읽어야 할 전체 행 수 (추정치)
Written RowsStorage에 기록된 행 수
Written BytesStorage에 기록된 bytes 수
HTTP MethodQuery를 유발한 HTTP Method
InterfaceQuery 전송에 사용된 Interface 종류
OS UserClient를 실행한 OS User 이름
Client HostnameClient 또는 다른 TCP Client가 실행된 Client Host 이름
Client NameClient 또는 다른 TCP Client 이름
Client RevisionClient Revision Version
Query KindQuery 종류

2-3-5. Grid - Top SQL (상위 SQL)

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

조회 기간에 수집된 Top SQL 확인이 가능합니다.

순번항목설명
1Filter필터 조건에 따라 Top SQL 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2SelectBoxOrder By 기준을 설정합니다. Query Duration (sec) (Default) / CPU Time / Memory Usage 중 선택
3Toggle토글 버튼 클릭을 통해 합계, 평균으로 변환합니다.
4GridTop SQL 정보를 보여줍니다.

Top SQL Grid 항목:

항목설명
Rank순위
HostnameQuery를 실행한 Host 이름
Current DatabaseDB 이름
UserUser 이름
Normalized Query Hash정규화된 Query 해시값
QueryQuery Text
Query Duration (sec)Query 실행 시간
Query CountQuery 실행 횟수
CPU TimeCPU Time
Memory UsageMemory 사용량
Read RowsQuery에서 읽은 전체 행 수
Read BytesQuery에서 읽은 Bytes 수
Result RowsSELECT 또는 INSERT 결과의 행 수
Result BytesQuery 결과 저장 시 사용된 RAM Bytes 수

2-3-6. Grid - Long Running Query (장시간 수행 쿼리)

메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Long Running Query 탭

조회 기간에 수집된 Long Running Query 확인이 가능합니다.

순번항목설명
1Filter필터 조건에 따라 Long Running Query 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2GridLong Running Query 목록을 보여줍니다.

Long Running Query Grid 항목:

항목설명
Rank순위
HostnameHost 이름
Current Database현재 사용 중인 데이터베이스 이름
UserUser 이름
AddressQuery를 실행한 IP 주소
PortQuery를 실행한 Client Port 정보
Elapsed Time (sec)Query 수행 시간
Query IDQuery ID
QueryQuery Text
Memory UsageMemory 사용량
Peak Memory Usage최대 Memory 사용량
Thread IDsQuery에 사용된 Thread ID
Is Initial Query사용자가 직접 실행한 쿼리인지 분산 쿼리 실행 과정에서 서버 내부적으로 실행한 쿼리인지 여부
Is CancelledQuery 실행 취소 여부
Read RowsTable에서 읽은 행 수
Read Bytes테이블에서 읽은 Bytes 수
Total Rows Approx읽어야 할 전체 행 수 (추정치)
Written RowsStorage에 기록된 행 수
Written BytesStorage에 기록된 bytes 수
HTTP MethodQuery를 유발한 HTTP Method
InterfaceQuery 전송에 사용된 Interface 종류
OS UserClient를 실행한 OS User 이름
Client HostnameClient 또는 다른 TCP Client가 실행된 Client Host 이름
Client NameClient 또는 다른 TCP Client 이름
Client RevisionClient Revision Version
Query KindQuery 종류

2-3-7. Grid - Part Log (파트 로그)

메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Part Log 탭

클릭 시점에 수집된 Part Log 정보를 확인할 수 있습니다.

순번항목설명
1Filter필터 조건에 따라 Part Log 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2GridPart Log 정보를 Grid 형태로 보여줍니다.
3Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Part Log Grid 항목:

항목설명
HostnameHost 이름
DatabasePart가 속한 Database 이름
TablePart가 속한 Table 이름
Table UUIDTable UUID
Event TypePart 작업의 종류 (NewPart: 새 Part 삽입 / MergeParts: Part 병합 / DownloadPart: 다른 Node에서 Download / RemovePart: Part 삭제 / MutatePart: Part 변경 / MovePart: Part를 Disk 간 이동 / FailedMutatePart: Mutations 실패 / FailedMergeParts: 병합 실패)
Merge Reason병합 사유, MERGE_PARTS 타입에만 해당 (NotAMerge: 병합이 아님 / RegularMerge: 일반 병합 / TTLDeleteMerge: TTL 삭제 병합 / TTLRecompressMerge: TTL 기반 재압축)
Merge Algorithm병합 알고리즘 종류 (Undecided: 미결정 / Vertical: 세로 병합(컬럼 단위) / Horizontal: 가로 병합(행 단위))
Duration (sec)작업 소요 시간
Event Time Microseconds마이크로초 정밀 타임스탬프
Part NamePart 이름
Partition IDPart가 속한 Partition ID
Partition세부 Partition 정보
Part TypePart 저장 형식
Disk NamePart가 저장된 Disk 이름
Path on DiskPart File이 저장된 경로
RowsPart의 총 행 수
Size in BytesPart의 Disk 상 크기
Bytes UncompressedPart 압축 해제 기준 크기
Read Rows병합 중 읽힌 총 행 수
Read Bytes병합 중 읽힌 bytes 수
Peak Memory Usage병합 중 사용된 최대 Memory 량
Error발생한 예외 에러 코드
Exception발생한 예외 메시지

2-3-8. Grid - Merge (병합 정보)

메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Merge 탭

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

순번항목설명
1Filter필터 조건에 따라 Merge 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2GridMerge 정보를 Grid 형태로 보여줍니다.
3Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Merge Grid 항목:

항목설명
HostnameHost 이름
Database병합이 발생한 DB 이름
Table병합이 발생한 Table 이름
Source Part Names병합에 사용된 원본 Part 이름 목록
Result Part Name병합 결과 Part의 File 경로
Elapsed Time (sec)병합 경과 시간
Progress (%)병합 진행률
Num Parts병합에 포함된 Part 개수
Total Size Bytes Compressed병합된 압축 데이터의 총 크기
Total Size Bytes Uncompressed병합된 비압축 데이터의 총 크기
Total Size Marks병합된 Part들의 총 마크 수
Bytes Read Uncompressed읽은 비압축 Bytes 수
Rows Read읽은 행 수
Bytes Written Uncompressed기록한 비압축 Bytes 수
Rows Written기록한 행 수
Columns Written기록한 컬럼 수
Memory UsageMemory 사용량
Thread ID병합 작업이 실행 중인 Thread ID
Is Mutation변이 작업 여부 (1: 변이 작업 포함)

2-3-9. Grid - Mutation (변이 정보)

메뉴 경로: Performance Analysis > Database > ClickHouse > Trend Analysis > Grid > Mutation 탭

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

순번항목설명
1Filter필터 조건에 따라 Mutation 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2GridMutation 정보를 Grid 형태로 보여줍니다.
3Time NavigationGrid 하단에 데이터 조회 시각 정보와 시간 클릭 버튼을 제공합니다.

Mutation Grid 항목:

항목설명
HostnameHost 이름
Database변이가 적용된 DB 이름
Table변이가 적용된 Table 이름
Mutation ID변이 작업의 ID
Command변이 명령어
Create Time변이 명령이 실행 대기열에 등록된 시간
Block Numbers.PartitionID복제 테이블의 경우 변이가 적용되는 Partition ID 배열
Block Numbers.Number복제 테이블의 경우 각 Partition 별로 변이 작업에서 획득한 Block 번호
Parts To Do NamesMutation을 완료하기 위해 처리해야 하는 Data Part Name 목록
Parts To DoMutation을 완료하기 위해 처리해야 하는 Data Part 수
Is DoneMutation이 완료되었는지 나타내는 플래그 (1=완료, 0=진행중)
Is Killed변이 작업이 수동으로 종료되었는지 여부
Latest Failed Part최근 변이에 실패한 Part 이름
Latest Fail Time최근 Part 변이 실패 발생 시간
Latest Fail Reason최근 변이 실패의 예외

2-3-10. Grid - Alert (알람 정보)

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

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

순번항목설명
1Filter필터 조건에 따라 Alert 목록을 보여줍니다. Or 또는 And 조건으로 선택 가능합니다.
2Grid조회 기간 내 Alert 목록을 보여줍니다.

Alert Grid 항목:

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

참고 문서