락 트리
홈 화면 > 프로젝트 선택 > 분석 > 락 트리
하루 동안 발생한 락(lock)의 추이를 분석하는 도구입니다. 이 기능을 통해 락을 발생시킨 세션(lock holder)과 락을 대기하고 있는 세션(lock waiter)에 대한 트리 구조를 시각적으로 확인할 수 있습니다. 특정 시점에 발생한 락 정보의 holder와 waiter 간의 관계를 분석할 수 있습니다.
주요 기능은 다음과 같습니다.
-
락 추이 분석: 설정한 조회 기간 동안 발생한 락의 추이를 시간에 따라 추적하여 그래프로 표시합니다. 이를 통해 락이 어떻게 발생하고 해소되는지를 시각적으로 파악할 수 있습니다.
-
락 Holder 및 Waiter 확인: 각 락에 대한 holder와 waiter를 트리 구조로 확인할 수 있습니다. 이를 통해 특정 락이 발생한 상황에서 락을 발생시킨 세션과 대기하는 세션 간의 관계를 파악할 수 있습니다.
-
세션 간 관계 분석: 락을 발생시킨 세션과 대기하는 세션 간의 관계를 분석하여 쿼리 실행 및 트랜잭션 처리 과정에서 발생한 락의 원인을 식별할 수 있습니다.
이를 통해 데이터베이스 관리자는 락 관련 문제를 신속하게 식별하고 해결할 수 있으며, 데이터베이스 성능을 최적화할 수 있습니다.
기본 사용 안내
시간, 인스턴스에서 조회하길 원하는 날짜와 시간, 인스턴스를 선택하세요. 설정한 시간에 락이 발생했다면 Lock Wait Sessions와 화면 아래 Lock Tree 테이블에 조회한 데이터를 표시합니다.
-
한 차트 내에서 최대 2주간의 데이터를 한 번에 볼 수 있습니다. 그래프 차트에서 특정 시간을 클릭하면 화면 아래 테이블에서 선택한 시간의 락 정보를 확인할 수 있습니다. 화면 아래 상세 정보에서 초 단위 버튼을 선택하면 5초 단위로 락 정보를 조회할 수 있습니다.
노트Lock Wait Sessions 차트의 오른쪽 위에 표시된 태그를 통해 조회 단위를 확인할 수 있습니다.
-
그래프 차트에서 특정 시간 영역을 계속해서 드래그(드릴다운)할수록 상세 시간의 차트와 락 트리를 조회할 수 있습니다.
-
차트에서 3시간 이내로 드래그해서 5초 단위의 데이터를 조회할 수 있습니다. 다만 5초 단위의 데이터는 최근 한 달 범위 에서만 조회할 수 있습니다. 한 달 이전의 데이터는 5분 요약 데이터로만 볼 수 있습니다. 예를 들어, 40일 전의 락 트릭 데이터를 드래그(드릴다운)해서 5분 요약 데이터를 조회할 수 있으나 5초 데이터는 알 수 없습니다.
컬럼 정보 안내
- Active session
- Lock tree
- Process information
항목 | 설명 |
---|---|
pid | 프로세스 ID |
db | 데이터베이스 이름 |
user | SQL 수행 계정 |
application | 클라이언트 애플리케이션 이름 |
client_host | 연결된 클라이언트의 호스트 이름(client_addr 의 역방향 DNS 조회로 보고됨) |
client_addr | 클라이언트의 IP 주소 |
client_port | 클라이언트의 포트 번호(유닉스 소켓을 사용하는 경우 -1) |
query_hash | 쿼리의 해시값(와탭 내부 관리 값) |
query_start | 현재 활성 상태인 쿼리가 시작된 시간(상태가 활성 상태가 아닌 경우 마지막 쿼리가 시작된 시간) |
state | 백엔드 프로세스의 현재 상태(active/idle 등) |
state_change | state가 변경된 최근 시간 |
xact_start | 해당 프로세스의 현재 트랜잭션이 시작된 시간(활성 트랜잭션이 없는 경우 null ) |
backend_start | 해당 백엔드 프로세스가 시작된 시간 |
backend_xmin | 해당 백엔드 프로세스가 처리 중인 xid 의 최소값 |
backend_type | 해당 백엔드 프로세스의 유형, autovacuum worker , logical replication launcher , client backend , checkpointer 등 |
backend_xid | 해당 백엔드가 사용 중인 xid |
wait_event_type | 해당 백엔드 프로세스가 대기 중인 이벤트 type |
wait_event | 해당 백엔드 프로세스가 현재 대기 중인 경우 대기 이벤트 이름 |
와탭은 클라이언트와 관련한 정보를 기본 저장합니다.
항목 | 설명 |
---|---|
holder type | holder 세션의 type (transaction id, tuple 등) |
lock mode | holder_mode (exclusive lock, shared lock 등) |
waiter type | waiter 세션의 type (transaction id, tuple 등) |
lock request | waiter_mode (exclusive lock, shared lock 등) |
다음 항목은 XOS 에이전트를 설치한 경우 수집되는 지표입니다.
항목 | 설명 |
---|---|
cputime | CPU 사용 시간 |
cpuusage | CPU 사용률 |
elapse | CPU 사용 경과 시간 |
vsize | 가상 메모리 사이즈(Kb) |
rss | Resident Set Size(RSS), 프로세스와 관련한 물리적 페이지 수 |
state | 프로세스 상태 |
ioread | 블록을 읽는 데 소요된 실제 시간(milliseconds) |
iowrite | 블록을 쓰는 데 소요된 실제 시간(milliseconds) |
pss | 프로세스 고유 메모리 사용량 + 하나의 프로세스가 차지하는 공유 메모리 비율 |
uid | user id |
cmd | 수행 중인 명령어 |
longcmd | cmd의 전체 경로 |