락 트리
홈 화면 > 프로젝트 선택 > 분석 > 락 트리
- 시간별 락 트렌드 시각화: 1-Min Lock Trends와 Lock Wait Sessions 기능을 통해 락 발생 데이터를 시간 단위로 분석할 수 있습니다.
기본 사용 안내
Lock Wait Sessions
Lock Wait Sessions는 락 대기 세션의 정보를 분석할 수 있는 기능입니다. 조회 기간에 따라 락 대기 세션 데이터를 3시간 이상 조회 시 5분 간격으로, 3시간 미만 조회 시 5초 간격으로 제공합니다. 또한 차트를 드래그하여 시간 범위를 유동적으로 조정할 수 있습니다.
1-Min Lock Trends
Lock Wait Sessions에서 특정 시간대를 클릭하면, 해당 시간 기준으로 15분 전부터 15분 후까지의 총 30분 동안의 락 발생 현황을 시각화하여 표시합니다. 이를 통해 30분 단위로 락 발생 트렌드를 효과적으로 분석할 수 있습니다.
Total Locks는 해당 시간대에 발생한 락의 총 개수를 의미합니다.
시간 조회
Lock Wait Sessions에서 클릭한 시간에 발생한 최대 락 개수를 기준으로 1-Min Lock Trends와 Lock Tree 테이블의 시간이 설정됩니다. 이를 통해 락이 가장 많이 발생한 구간을 찾을 수 있습니다.
Lock Wait Sessions는 그대로 두고 1-Min Lock Trends 차트에서 다른 시간대의 바를 클릭한 경우, 해당 분의 최대 락 개수를 가진 초로 Lock Tree 테이블에 시간 범위가 동기화됩니다. 이를 통해 시간대를 변경할 때 Lock Tree 테이블에서 반영된 정보를 확인할 수 있습니다.
-
3시간 이상 조회 시 (5분 단위 데이터 사용)
조회 시점부터 5분 구간에서 바의 색상이 진하게 표시됩니다.
07:15:00
시점을 클릭한 경우,07:15:00~07:20:00
구간 바 차트 색이 진하게 표시됩니다. -
3시간 미만 조회 시 (5초 단위 데이터 사용)
짧은 시간 간격에서 발생한 락 상황을 분석할 때 유용합니다.
컬럼 정보 안내
- Active session
- Lock tree
- Process information
항목 | 설명 |
---|---|
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 | 해당 백엔드 프로세스가 현재 대기 중인 경우 대기 이벤트 이름 |
와탭은 클라이언트와 관련한 정보를 기본 저장합니다.
항목 | 설명 |
---|---|
Instance | 인스턴스(에이전트) 이름 |
pid | 세션 ID |
lock_mode | 홀더 세션의 락 모드 - RowExclusiveLock : INSERT, UPDATE, DELETE - AccessExclusiveLock : DDL(ALTER, DROP, TRUNCATE 등)로 인한 락 - AccessShareLock : SELECT 시 사용. 거의 모든 락과 공존 가능 - ShareLock : LOCK TABLE ... IN SHARE MODE |
holder_relation | 락을 보유하고 있는 세션이 접근 중인 테이블 이름 또는 오브젝트 식별자 |
waiter_type | 락이 어떤 대상에 걸려 있는지를 나타냄 - relation : 테이블에 걸린 락 - tuple : 특정 행(row)에 걸린 락 - transactionid : 트랜잭션에 걸린 락 |
waiter_relation | 락을 대기 중인 세션이 접근 중인 테이블 이름 또는 오브젝트 식별자 |
lock_request | 락을 대기 중인 세션의 락 모드 lock_mode 참조 |
다음 항목은 XOS 에이전트를 설치한 경우 수집되는 지표입니다.
항목 | 설명 | 단위 |
---|---|---|
pid | 프로세스 ID | - |
cpuusage | 프로세스가 사용하는 CPU 사용률 | % |
cputime | 프로세스가 지금까지 사용한 누적 CPU 시간 | 초 |
elapse | 프로세스가 실행된 이후 경과 시간 | 초 |
vsize | Virtual memory size. 전체 가상 메모리 사용량 (RAM + Swap + 예약) | KB |
rss | Resident Set Size. 현재 프로세스가 차지한 실제 물리 메모리 크기 | KB |
pss | Proportional Set Size. 공유 메모리 포함한 실제 물리 메모리 사용량 | KB |
state | 프로세스의 현재 상태 코드 (예: R, S, D, T, Z 등) | - |
ioread | 누적된 읽기 바이트 수 (read_bytes ) | 바이트 (B) |
iowrite | 누적된 쓰기 바이트 수 (write_bytes ) | 바이트 (B) |
uid | 해당 프로세스를 실행한 사용자 ID | - |
cmd | 실행된 명령어의 짧은 형태 | - |
longcmd | 실행된 명령어 전체 (전체 경로 및 인자 포함) | - |