락 트리 & 데드락
하루 동안 발생한 Lock의 추이를 분석할 수 있습니다. Lock을 발생시킨 세션(Lock Holder)과 Lock을 대기하고 있는 세션(Lock Waitier)에 대해 트리 구조로 확인할 수 있습니다. 이러한 기능을 통해 특정 시점 발생한 락 정보 Holder와 Waiter 관계를 확인해 쿼리(Query)를 분석하고 교착 상태(Dead Lock)의 쿼리를 확인할 수 있습니다.
락 트리
홈 화면 > 프로젝트 선택 > 분석 > 락 트리
하루 동안의 락 발생 여부와 시간을 시계열 차트/락 트리로 제공합니다. 락이 최초 발생한 지점부터 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
항목 | 설명 |
---|---|
Instance Name | 인스턴스 명 |
id | connection 식별자 |
user | SQL 수행 계정 |
host | 이 스레드가 연결된 hostname |
db | default database명, 없다면 NULL |
command | 수행 중인 명령어 type(Query/Sleep/Daemon 등) |
time | 현재 COMMAND의 수행 시간(초) |
state | 스레드의 현재상태 (executing/updating/sending data 등) |
query | 실행되고 있는 statement, Processlist.info 에서 리터럴 값을 분리한 SQL을 보여줍니다. |
query_param | query 에서 분리한 리터럴 값 |
type | Thread 타입. FOREGROUND/BACKGROUND 등 |
connection_type | Connection을 맺는데 사용하는 protocol. TCP/IP, SSL/TLS |
항목 | 설명 |
---|---|
holder type | holder 세션의 type |
lock mode | holder_mode |
waiter type | waiter 세션의 type |
lock request | waiter_mode |
state | 현재 프로세스가 진행 중인 단계입니다. |
table | holder_table/waiter_table |
index | holder_index/waiter_index |
다음 항목은 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의 전체 경로 |
데드락
홈 화면 > 프로젝트 선택 > 분석 > 데드락
데드락(Dead Lock)은 둘 이상의 프로세스 또는 트랜잭션이 각각 다른 트랜잭션에 필요한 데이터베이스 리소스(테이블 또는 행)를 잠궈서 서로가 진행하지 못하도록 차단할 때 발생합니다. 빈번하게 발생하는 데드락은 최종 사용자에게 불편함을 주고 서비스의 품질을 저하시킵니다. 데드락 메뉴에서는 데드락이 발생한 시점과 이와 관련한 정보를 조회할 수 있습니다. 이 정보는 얘플리케이션 설계에서 문제를 식별하고 해결하는데 도움이 될 수 있습니다.
데이터베이스에서 발생한 데드락에 대한 정보를 확인할 수 있습니다.
-
시간에서 조회하고 싶은 시간을 설정하세요.
-
인스턴스에서 조회하려는 인스턴스 이름을 선택하세요.
-
버튼을 선택하세요.
조회한 데드락 정보를 테이블 형태로 제공합니다.
조회 시간은 최대 3주까지 선택할 수 있습니다. 임의의 날짜와 시간을 조회하려면 시계 표시 부분을 선택하세요. 날짜와 시간 텍스트 영역을 클릭하면 날짜와 시간을 선택할 수 있는 옵션이 나타납니다.