SlideShare a Scribd company logo
1 of 5
Download to read offline
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 분
석 및 발생 원인 규명
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
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
MaxGauge Case Study
위의 그림을 통해 다음과 같은 사실을 확인할 수 있다.
홀더 세션은 <456130> SQL문을 수행한 후, <4618474> SQL문을 수행했다.
대기 세션들은 <4618474> SQL문을 수행하는 과정에서 TX 락 경합에 의한 enqueue 이벤트를 대기한다.
즉, 홀더 세션은 … 테이블의 특정 로우를 변경하는 작업을 수행한 후 커밋을 수행하지 않은 상태에
서 다른 작업을 수행 중이며, 이로 인해 … 테이블의 특정 로우를 변경하고자 하는 다른 세션들이 모
두 TX 락 경합에 의한 enqueue 이벤트 대기를 겪는다.
즉, 테이블의 특정 로우를 변경한 후, 적절한 시점에 커밋을 수행하지 않은 것이 enqueue 이벤트 대기가 발생
한 근본적인 원인이다. 어플리케이션 로직을 개선하여, 테이블의 특정 로우를 변경한 후에는 반드시 커밋을 수
행하도록 하면 이 문제를 해결할 수 있다.
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
4
MaxGauge Case Study
5. 결론
성능 저하 현상
(enqueue 이벤트 대기에 의한 Active Session 수 증가)
테이블의 로우를 변경한 후 커밋을 수행하지 않아 TX 락 경합 유발
테이블 로우 변경 후 반드시 커밋을 수행
Copyrights 2006. EXEM CO., LTD. All Rights Reserved
5

More Related Content

Viewers also liked

TCP 연결 과정_Wh apm
TCP 연결 과정_Wh apmTCP 연결 과정_Wh apm
TCP 연결 과정_Wh apm엑셈
 
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study엑셈
 
WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm엑셈
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu엑셈
 
웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm엑셈
 

Viewers also liked (6)

TCP 연결 과정_Wh apm
TCP 연결 과정_Wh apmTCP 연결 과정_Wh apm
TCP 연결 과정_Wh apm
 
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study
네트웍 설정 오류로 인한 RAC 시스템 성능 저하_Maxgauge case study
 
WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu
 
웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm
 
Root cause analysis by: ICG Team
Root cause analysis by: ICG TeamRoot cause analysis by: ICG Team
Root cause analysis by: ICG Team
 

Similar to TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study

싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study
싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study
싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study엑셈
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle엑셈
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용I Goo Lee
 
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안중선 곽
 
[2015 05-29] Oracle Lock
[2015 05-29] Oracle Lock[2015 05-29] Oracle Lock
[2015 05-29] Oracle LockSeok-joon Yun
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
(120128) #fitalk sql server anti-forensics
(120128) #fitalk   sql server anti-forensics(120128) #fitalk   sql server anti-forensics
(120128) #fitalk sql server anti-forensicsINSIGHT FORENSIC
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancementsbeamofhope
 
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례Amazon Web Services Korea
 
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin GuideJEONGPHIL HAN
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화NAVER D2
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1Seok-joon Yun
 

Similar to TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study (20)

싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study
싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study
싱글 블록 I/O 과다로 인한 성능 저하 분석 사례_Maxgauge case study
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle
 
1.9 튜닝의도구 10053 event
1.9 튜닝의도구 10053 event1.9 튜닝의도구 10053 event
1.9 튜닝의도구 10053 event
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
 
[2015 05-29] Oracle Lock
[2015 05-29] Oracle Lock[2015 05-29] Oracle Lock
[2015 05-29] Oracle Lock
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
(120128) #fitalk sql server anti-forensics
(120128) #fitalk   sql server anti-forensics(120128) #fitalk   sql server anti-forensics
(120128) #fitalk sql server anti-forensics
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례
개발자를 위한 클라우드 태권 세미나 : Rankwave 이용 사례
 
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin Guide
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
 
1.7 튜닝의도구 sql autorace
1.7 튜닝의도구 sql autorace1.7 튜닝의도구 sql autorace
1.7 튜닝의도구 sql autorace
 

More from 엑셈

TP-Monitor_Wh apm
TP-Monitor_Wh apmTP-Monitor_Wh apm
TP-Monitor_Wh apm엑셈
 
스위치의 분류 및 역할_Wh apm
스위치의 분류 및 역할_Wh apm스위치의 분류 및 역할_Wh apm
스위치의 분류 및 역할_Wh apm엑셈
 
Runtime Data Areas_Wh apm
Runtime Data Areas_Wh apmRuntime Data Areas_Wh apm
Runtime Data Areas_Wh apm엑셈
 
네트워크 기반 통신 및 계층 구조_Wh apm
네트워크 기반 통신 및 계층 구조_Wh apm네트워크 기반 통신 및 계층 구조_Wh apm
네트워크 기반 통신 및 계층 구조_Wh apm엑셈
 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm엑셈
 
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm엑셈
 
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm엑셈
 
Class Loader_Wh apm
Class Loader_Wh apmClass Loader_Wh apm
Class Loader_Wh apm엑셈
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm엑셈
 
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracleWINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracle엑셈
 
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracleTABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle엑셈
 
SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle엑셈
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle엑셈
 
SQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracleSQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracle엑셈
 
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracleSQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle엑셈
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle엑셈
 
Result Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracleResult Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracle엑셈
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle엑셈
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle엑셈
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle엑셈
 

More from 엑셈 (20)

TP-Monitor_Wh apm
TP-Monitor_Wh apmTP-Monitor_Wh apm
TP-Monitor_Wh apm
 
스위치의 분류 및 역할_Wh apm
스위치의 분류 및 역할_Wh apm스위치의 분류 및 역할_Wh apm
스위치의 분류 및 역할_Wh apm
 
Runtime Data Areas_Wh apm
Runtime Data Areas_Wh apmRuntime Data Areas_Wh apm
Runtime Data Areas_Wh apm
 
네트워크 기반 통신 및 계층 구조_Wh apm
네트워크 기반 통신 및 계층 구조_Wh apm네트워크 기반 통신 및 계층 구조_Wh apm
네트워크 기반 통신 및 계층 구조_Wh apm
 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm
 
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm
 
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm
 
Class Loader_Wh apm
Class Loader_Wh apmClass Loader_Wh apm
Class Loader_Wh apm
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm
 
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracleWINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
 
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracleTABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
 
SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
 
SQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracleSQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracle
 
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracleSQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
 
Result Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracleResult Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracle
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
 

TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study

  • 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