1. MaxGauge Case Study
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
1
TX 락 경합에 의한
시스템 성능 저하 분석 사례
EXEM CO., LTD
www.ex-em.com
2006.06
동시 사용자가 많은 OLTP 환경에서는 TX 락 경합에 의한 성능 저하 현상이 발생하는 경우가 많다. 이
번 Case Study에서는, Oracle DBMS의 성능진단/분석 툴인 MaxGauge를 활용하여, TX 락 경합으로 인한 성
능저하 문제의 원인을 규명해 보고자 한다.
본 사례에서 사용한 문제원인분석의 Flow(Performance Analyzer / MaxGauge)
Drill-Down Flow Menu & Data
1. 성능저하구간의 확인 [Trend Analysis] 메뉴에서 성능 저하 구간 확인
2. 대기이벤트의 검출 및 분석 [Trend Analysis] 메뉴에서 대기이벤트 검출
3. 대기이벤트 발생원인의 조사 [Lock Tree] 메뉴에서 enqueue 이벤트 발생 원인 조사
4. 세션 및 SQL의 분석을 통한 문제원인의
규명
[Session List] 메뉴에서 문제를 유발한 세션의 SQL 분
석 및 발생 원인 규명
2. MaxGauge Case Study
시스템 개요
항 목 내 용
O/S HP-UX 11.23 Itanium
Oracle Version 9.2
RAC 여부 No
1. 성능저하구간의 확인
[BOSSDB] 인스턴스의 [Trend Analysis] 화면으로부터 14시05분 ~ 14시14분 사이에 Active Session 수가 급증하는
것을 확인할 수 있다.
■Active Session수의 추이그래프
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
2. 대기이벤트의 검출 및 분석
문제 구간에서 Active Session 수가 급증한 원인을 분석하기 위해, [Stat/Event/Ratio] 화면에서 문제시점(14시 11
분)에 대기현상을 조회하면, 아래 그림과 같이 enqueue 이벤트 대기가 가장 높은 비중을 차지하고 있다.
문제 구간의 Active Session 목록을 조회하면, 아래 그림과 같이 대부분의 세션이 Exclusive 모드의 TX 락 경합
에 의해 enqueue 이벤트를 대기하고 있다.
2
3. MaxGauge Case Study
3. 대기이벤트 발생원인의 조사
「Lock Tree」 화면을 통해 TX 락 경합 현상을 겪는 세션들을 확인하면 아래 그림과 같다. 1178번이 홀더 세션이
며, 홀더 세션이 Exclusive 모드로 획득한 TX 락을 획득하기 위해 많은 수의 세션들이 대기 중이다. 즉, 홀더
세션이 긴 시간 동안 TX 락을 해제하지 않음으로써, enqueue 이벤트 대기가 광범위하게 발생하고 있다.
4. 세션 및 SQL 분석을 통한 문제원인의 규명
[Session List] 화면을 통해 홀더 세션인 1178번 세션이 수행한 SQL 이력을 조회하면 아래 그림과 같다.
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
3
4. MaxGauge Case Study
위의 그림을 통해 다음과 같은 사실을 확인할 수 있다.
홀더 세션은 <456130> SQL문을 수행한 후, <4618474> SQL문을 수행했다.
대기 세션들은 <4618474> SQL문을 수행하는 과정에서 TX 락 경합에 의한 enqueue 이벤트를 대기한다.
즉, 홀더 세션은 … 테이블의 특정 로우를 변경하는 작업을 수행한 후 커밋을 수행하지 않은 상태에
서 다른 작업을 수행 중이며, 이로 인해 … 테이블의 특정 로우를 변경하고자 하는 다른 세션들이 모
두 TX 락 경합에 의한 enqueue 이벤트 대기를 겪는다.
즉, 테이블의 특정 로우를 변경한 후, 적절한 시점에 커밋을 수행하지 않은 것이 enqueue 이벤트 대기가 발생
한 근본적인 원인이다. 어플리케이션 로직을 개선하여, 테이블의 특정 로우를 변경한 후에는 반드시 커밋을 수
행하도록 하면 이 문제를 해결할 수 있다.
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
4
5. MaxGauge Case Study
5. 결론
성능 저하 현상
(enqueue 이벤트 대기에 의한 Active Session 수 증가)
테이블의 로우를 변경한 후 커밋을 수행하지 않아 TX 락 경합 유발
테이블 로우 변경 후 반드시 커밋을 수행
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
5