Skip to main content

PostgreSQL

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별 집계 등
다양한 관점의 집계된 데이터를 통해 장애 원인을 추적할 수 있습니다.
[고정 영역]
헤더 > Database 선택과 관계 없이 인스턴스 레벨의 데이터를 표현합니다.
Instance 레벨의 수집 지표
하위 Database 지표의 합산 값
Overview데이터베이스 전체 Connection에
대한 사용 패턴과 각 사용 상태에 대한 Backends 정보,
CPU, Memory사용률을 제공합니다.
2Real Time Monitor데이터베이스의 활동성 및 지연에 관한 지표들을 이용하여 Chart 형식의 모니터링을 할 수 있습니다.
기본적으로 4개의 주요 성능 지표에
대해 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능 지표로 변경 및 확장이 가능합니다.
[가변 영역]
헤더에서 선택한 Database에 대한 데이터를 표현합니다.
3Session TabSingle View 화면 하단 Session Tab 버튼을 클릭하면 슬라이드 아웃 형태로 Backend 목록을 확인할 수 있습니다.
Overview나 Trend Chart를 통해 데이터베이스의 비정상적인 상태를 인지했을 때, Session Tab에서 현재 SQL을 실행하고 있는 Active Backends, Lock Backends 정보를 확인하여 원인이 되는 Backends를 찾을 수 있고, 필요하다면 강제로 종료할 수 있습니다.
4Database SelectBoxInstance 내 포함된 Database 중 Real Time Monitor, Session Tab 영역에 표현할 Database 타겟을 선택합니다.-

[고정 영역] - Instance 레벨의 지표, 각 Database 레벨 지표의 합산 값

Grouping Summary

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

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

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

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 최근 10분 Session 수집 데이터에서 발생한 Wait Event 발생 횟수를 기준으로 Top 5를 보여줍니다. 순위/Event 명/Event 발생 횟수/Event 발생 변동 횟수 순으로 정보를 확인할 수 있습니다.


2) SQL & Function 최근 10분 데이터를 비교하여 기본 실행 횟수의 변화량을 기준으로 Top SQL과 Top Function을 확인할 수 있습니다.

2-1) Top SQL for 10 min Order By Calls Pg_stat_statements를 통해 수집된 데이터 중 최근 10분 동안의 call수 변화량을 기준으로 변화량이 큰 Query Top 5를 보여줍니다. 순위/SQL ID/SQL 호출 횟수/SQL 호출 변동 횟수 순으로 정보를 확인할 수 있습니다. Calls를 클릭 시 정렬 조건을 변경할 수 있고, 정렬 조건에 따라 데이터가 변경됩니다.

Note. pg_stat_statements extension 설정이 필요합니다. Top SQL 정렬 기준: Calls, Total Time, Shared Blks Read, Local Blks Read, Temp Blks Read

Top SQL row 클릭 시 해당 SQL 정보를 확인할 수 있는 ‘SQL Detail’ 팝업창으로 연계됩니다.

2-2) Top Function for 10 min Order By Calls 최근 10분 동안 정렬 조건 기준으로 변화량이 큰 Function을 보여줍니다. Schema Name.Function Name/Function 호출 횟수/Function 호출 변동 횟수 정보를 확인할 수 있습니다. Calls를 클릭 시 정렬 조건을 변경할 수 있고, 정렬 조건에 따라 데이터가 변경됩니다.

Note. track_functions설정이 필요합니다. Top Function 정렬 기준: Calls, Total Time, Self Time

Top Function row 클릭 시 해당 Function ID 정보를 확인할 수 있는 ‘Function Detail’ 팝업창으로 연계됩니다. ● Grid

순번항목내용
1Function IDFunction ID
2Database NameDatabase 이름
3Schema NameSchema 이름
4Function NameFunction 이름
5CallsFunction이 호출된 횟수
6Total Time (sec)Function에서 소요된 총 시간 (이 Function에서 호출한 Function에 소요된 시간을 포함)
7Self Time (sec)Function에서 소요된 총 시간 (이 Function에서 호출한 Function에 소요된 시간을 제외)
8Function Scr ViewFunction 코드

3) Object Object Scan Type과 Scan 횟수를 확인할 수 있습니다.

3-1)  Index Scan vs. Table Scan Table, Index Scan 비율을 확인하여 성능 저하를 유발하는 Object 정보를 확인할 수 있습니다.

GaugeChart를 클릭 시 Object 정보를 확인할 수 있는 ‘Top 10 Object List’ 팝업창으로 연계됩니다. ‘Top 10 Object List’ 팝업을 통해 Table Full Scan 비율이 높은 Object를 확인할 수 있습니다. 우측 상단에서 정렬 조건을 변경할 수 있습니다. ● Grid

순번항목내용
1Rank순위
2Database NameDatabase 이름
3Schema NameSchema 이름
4Object NameObject 이름
5Object TypeObject Type
6Total Size총 Block 크기
7Diff Size10분 동안의 Block 크기 변화량
8Scan Ratio10분 동안의 Object 스캔 비율

3-2) Top Object for 10min Order By Scan 최근 10분간 Table, Index Scan 변화량이 큰 Object Top 5를 보여줍니다. Object row를 클릭 시 ‘Top 10 Object List’ 팝업창으로 연계됩니다. 해당 팝업을 통해 Scan Count가 높은 Object를 확인할 수 있습니다. ● Grid

순번항목내용
1Rank순위
2Database NameDatabase 이름
3Schema NameSchema 이름
4Object NameObject 이름
5Object TypeObject Type
6Total Size총 Block 크기
7Diff Size10분 동안의 Block 크기 변화량
8Scan Count10분 동안의 Object 스캔 수

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

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

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


Overview

1) Connection View Connection View를 통해 데이터베이스의 전체 Backends가 어떻게 사용되고 있는지 사용 비율을 표현한 벌집 뷰의 색 변화를 통해 데이터베이스의 상태를 한눈에 파악할 수 있습니다. 또한 max_connection 대비 Backends가 얼마나 사용 중인지 확인할 수 있습니다.

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


2) Core Alert, Vacuum, Replication, Check point 등 4가지의 인프라 관련 주요 관리 포인트를 표시합니다.

순번항목내용
1Alert현재 Alert 이 발생하고 있는 알람 발생 카운트를 표시합니다.
해당 영역을 클릭하면 Alert 발생 정보를 확인할 수 있는 Admin Reference 영역의 Alert Logs 항목이 펼쳐집니다.
2VacuumAge 상태 정보를표시합니다.
Age 사용 비율을 통해 Vacuum 수행 여부를 판단할 수 있습니다.
해당 영역을 클릭하면 Age 사용이 높은 Object를 확인할 수 있는 ‘Top 10 Object List’ 팝업창으로 연계됩니다.
3ReplicationReplication으로 구성된 서버의 Primary, Standby 간 Log 파일과시간 차이를 표시합니다.
차이가 많이 나는 경우 네트워크, SQL, 설정 등 지연의 원인을 파악해야 합니다.
4CheckpointBackends에서 직접 쓴 Buffer 수의 비율, Checkpoint Buffer 크기및 Checkpoint 처리 소요 시간을 표시합니다.
Checkpoint 주기가 적절한지 확인할 수 있습니다.
해당 영역을 클릭하면 Block Write Time이 긴 SQL을 확인할 수 있는 ‘Top 10 SQL Order by Block Write Time[delta]’ 팝업창으로 연계됩니다.

Admin Reference

Vacuum, Temp, Tablespace size, Changed parameter 등 주요 관리 포인트를 표시합니다.

1) Vacuum Vacuum과 관련된 Dead Tuple Object 정보와 Vacuum을 수행중인 Backend 소요시간을 확인할 수 있습니다.

1-1) Top Dead Tuple for Object Dead Tuple Ratio가 높은 순으로 Object를 확인할 수 있습니다. Dead Tuple 비율이 높고 Size가 큰 Object는 Vacuum 작업을 통해 Size를 확보해야 합니다. 해당 영역을 클릭하면 Dead Tuple Ratio가 높은 Object를 확인할 수 있는 ‘Top Object List’ 팝업창으로 연계됩니다. ● Grid

순번항목내용
1Rank순위
2Database NameDatabase 이름
3Schema NameSchema 이름
4Object NameObject 이름
5Object TypeObject Type
6Total Size총 Block 크기
7Diff Size10분 동안의 Block 크기 변화량
8Dead Tuple10분 동안의 Dead Tuple 수 변화량
9Dead Tuple Ratio10분 동안의 Dead Tuple 수 변화량 비율

Note. Object 정렬 기준: Dead Tuple, Scan Count, Scan Ratio, Age, Analyze Time

1-2) Top Vacuuming Process(sec) Vacuum을 오래 수행하고 있는 Top 5 Active Backend를 확인할 수 있습니다. 해당 영역을 클릭하면 Vacuum을 오래 수행하고 있는 Active Backend 정보를 확인할 수 있는 ‘Vacuuming Backends’ 팝업창으로 연계됩니다. ● Grid

순번항목내용
1PIDBackend 프로세스 ID
2User NameBackend에 로그인한 사용자 이름
3Database NameBackend에 연결된 Database 이름
4App NameBackend에 연결된 애플리케이션 이름
5Client AddressBackend에 연결된 클라이언트 IP주소 (이 필드가 null이면 클라이언트가 서버 시스템의 unix 소켓을 통해 연결되었거나 이것이 autovacuum과 같은 내부 프로세스임을 나타냅니다.)
6Client Host NameBackend에 연결된 클라이언트의 호스트 이름
7Backend StartBackend 시작 시간
8Elapsed Time (sec)수행 시간 (초)
9SQL Text수행 쿼리
10Wait EventBackend가 현재 대기 중인 경우 대기 이벤트 이름 (없으면 null)
11Wait Event TypeBackend가 대기 중인 이벤트 유형 (없으면 null)
12StateBackend의 현재 상태
13Xact StartBackend 트랜잭션이 시작된 시간 (트랜잭션이 없으면 null)
14Query Start쿼리가 시작된 시간 (비활성화 상태인 경우 마지막 쿼리가 시작된 시간)
15State ChangeState가 마지막으로 변경된 시간

2) Additional Information Temp의 현재 사용량, 파라미터 변경사항, 테이블스페이스 크기, Object 통계정보 등을 확인할 수 있습니다.

2-1) Temp bytes Temp의 현재 사용량을 확인합니다. 대용량 데이터를 정렬하는 쿼리가 수행될 경우 Temp 사용량이 증가할 수 있습니다. 해당 영역을 클릭하면 Temp 사용량이 높은 SQL을 확인할 수 있는 ‘Top 10 SQL Order by Temp Blocks Written’ 팝업창으로 연계됩니다. SQL ID를 클릭할 경우 자세한 정보를 확인할 수 있는 SQL Detail 창으로 연계됩니다.

  • Grid
순번항목내용
1Rank순위
2User NameSQL의 User 이름
3Database NameSQL이 실행된 Database 이름
4Query IDQuery ID
5SQL TextSQL의 Text
6Calls10분 동안의 SQL 수행 횟수
7Temp Blocks Written10분 동안의 작성된 Temp 블록 수

2-2) Parameter Changed 2시간 이내에 변경된 파라미터를 표시합니다.  클릭 시 ‘Parameter Changed’ 팝업창으로 연계됩니다. 변경된 파라미터의 변경 전, 변경 후, 변경된 정보를 수집한 시간 값을 확인할 수 있습니다.

● Grid

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

2-3) Top Tablespace Size Tablespace 별 크기를 확인할 수 있습니다.

해당 영역을 클릭하면 ‘Top 10 Object List Order by Tablespace Size’ 팝업으로 연계됩니다. 지난 10분간 수집한 Total Size or Diff Size가 큰 Object Top 10을 보여줍니다. ● Grid

순번항목내용
1Rank순위
2Database NameDatabase 이름
3Schema NameSchema 이름
4Object NameObject 이름
5Object TypeObject 유형(Table, Index)
6Total SizeObject 총 크기
7Diff Size10분 동안의 Object 총 크기 변화량

2-4) Old Statistics Objects 통계정보가 오래된 Object를 확인할 수 있습니다.

 클릭 시 ‘Latest Statistics Objects’ 팝업으로 연계됩니다. ● Grid

순번항목내용
1Database NameDatabase 이름
2Object NameObject 이름
2TypeObject 유형(Table, Index)
3Last Analyze TimeAutovacuum 데몬이 시작한 마지막 분석 시간

더블 클릭 시 ‘Top 10 Object List’ 팝업창으로 연계되어 분석시간이 오래된 Object 목록을 확인할 수 있습니다. ● Grid

순번항목내용
1Rank순위
2Database NameDatabase 이름
3Schema NameSchema 이름
4Object NameObject 이름
5Object TypeObject 유형(Table, Index)
6Total Size총 Block 크기
7Diff Size10분 동안의 Block 크기 변화량
8Last Analyze사용자가 시작한 마지막 분석 시간
9Last Auto AnalyzeAutovacuum데몬이 시작한 마지막 분석 시간

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

Rule Name 클릭 시 2.2.2. Alert Detail Slide로 연계되어 자세한 Alert 발생 정보를 확인할 수 있습니다.


[가변 영역] - 헤더에서 선택한 Database에 대한 데이터 표현

Real Time Monitor

1) Slow Query SQL의 수행시간을 Scatter 차트로 확인할 수 있습니다. 드래그 시 해당 영역에 실행된 SQL Elapsed List를 확인할 수 있습니다. PID 클릭 시 Session Detail로 연계되며, SQL Text 클릭 시 SQL Full Text 팝업창이 연계됩니다.

  • Grid
순번항목내용
1PIDBackend 프로세스 ID
2User NameBackend에 로그인한 사용자 이름
3Database NameBackend에 연결된 Database 이름
4App NameBackend에 연결된 애플리케이션 이름
5Client AddressBackend에 연결된 클라이언트 IP 주소
6Client Host NameBackend에 연결된 클라이언트 호스트 이름
7Elapsed Time (sec)SQL 수행 시간
8SQL TextSQL의 Text

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


Session Tab

1) Active Backends 현재 실행중인 Backends 목록을 확인할 수 있습니다.

  • Grid
순번항목내용
1PIDBackend Process ID
2User Name사용자 이름
3Database NameDatabase 이름
4App NameAPP 이름
5Client AddressClient 주소
6Client Host NameClient 호스트명
7Backend StartBackends start Time
8Elapsed Time (sec)SQL 수행시간
9SQL IDSQL ID
10Query IDQuery ID
11SQL Text접속한 PID에서 수행한 SQL
12Wait EventBackend가 SQL 수행 중 대기한 Event
13Wait Event TypeBackend가 SQL 수행 중 대기한 Event 유형
14StateBackend 상태
15Xact StartBackend 트랜잭션 시작 Time
16Query StartBackend Query 수행 시작 Time
17State ChangeState가 변경된 Time

2) Lock Tree 현재 Lock 상태의 Backends 목록을 확인할 수 있습니다.

  • Grid
순번항목내용
1Database NameDatabase 이름
2PIDBackend Process ID
3Lock StatusLock 상태 (Holder / Waiter)
4Holder PIDHolder Session의 PID
5User Name사용자 이름
6SQL Text수행된 SQL Text (클릭 시 SQL 전체 텍스트 팝업 오픈)
7Query StartQuery 수행 시작 시간
8Collect TimeLock 정보가 수집된 시간