Oracle Wait Interface Seminar

Similar documents
목 차

PowerPoint 프레젠테이션

62

PowerPoint Presentation

Oracle Database 10g: Self-Managing Database DB TSC

Jerry Held

The Self-Managing Database : Automatic Health Monitoring and Alerting

MS-SQL SERVER 대비 기능

歯sql_tuning2

Simplify your Job Automatic Storage Management DB TSC

MaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

09.RAC_OWI_Part2

untitled

最即時的Sybase ASE Server資料庫診斷工具

PowerPoint 프레젠테이션

PCServerMgmt7

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Oracle9i Real Application Clusters

Intra_DW_Ch4.PDF

슬라이드 1

1217 WebTrafMon II

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

결과보고서

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

PRO1_02E [읽기 전용]

오라클 데이터베이스 10g 핵심 요약 노트

PRO1_09E [읽기 전용]

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

초보자를 위한 분산 캐시 활용 전략

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

Microsoft Word - 10g RAC on Win2k.doc

리뉴얼 xtremI 최종 softcopy

6주차.key

PowerPoint Presentation

ez-md+_manual01

Tablespace On-Offline 테이블스페이스 온라인/오프라인

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

Slide 1

NoSQL

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

KEEP BUFFER 활용방안 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 Oracle 은유저가요청한작업을빠르게처리하기위해 Buffer Cache 라는것을사용한다. Buffer Cache 는 SGA 에위치하고있으며, 오라클인스턴스에접속하는모든프로세스에의해공유된다. 이 Bu

금오공대 컴퓨터공학전공 강의자료

Tina Admin

ETL_project_best_practice1.ppt

PowerPoint Presentation

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft Word - CNVZNGWAIYSE.docx

PowerPoint

PowerPoint 프레젠테이션

Microsoft PowerPoint - o8.pptx

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

세미나(장애와복구-수강생용).ppt

NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,

원장 차세대 필요성 검토

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

T100MD+

CONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD SSD 서버 & HDD 서버 비교 4. LSD SSD 서버 & 글로벌 SSD 서버 비교 2

Microsoft Word - Oracle Wait 분석 테크닉.doc

INSTRUCTIONS


PRO1_04E [읽기 전용]

MaxGauge v3.0 Standard

Data Guard 기본개념.doc

Microsoft PowerPoint - Session2 - Tibero 6

Microsoft PowerPoint - Tech-iSeminar_Managing_Tablespace.ppt

DBMS & SQL Server Installation Database Laboratory

PowerPoint 프레젠테이션

oracle9i_newfeatures.PDF

C++ Programming

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

vm-웨어-앞부속

[Brochure] KOR_TunA

untitled

Backup Exec

PowerPoint Presentation

CD-RW_Advanced.PDF

소만사 소개

untitled

기타자료.PDF

untitled

Interstage5 SOAP서비스 설정 가이드

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

제품소개

6.24-9년 6월

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Orcad Capture 9.x

Portal_9iAS.ppt [읽기 전용]

DBPIA-NURIMEDIA

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

슬라이드 1

슬라이드 1

10.ppt

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

슬라이드 1

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

10:00-11:30 Memory part I & II 11:30-13:00 13:00-14:00 Memory part III 14:10-15:00 I/O Part I 15:10-16:00 I/O Part II

Microsoft PowerPoint - eSlim SV [ ]

J2EE & Web Services iSeminar

Transcription:

1 대용량 DBMS 의효율적인 모니터링및성능관리방안 Copyrights 2001~2007, EXEM Co., LTD. All rights reserved.

목차 2 1. 성능문제와 OWI 분석방법론 2. OWI 구성요소 3. Latch & LOCK 4. Oracle I/O 5. Cache Buffer

3 성능문제와 OWI 분석방법론 성능지연사례 1) 평소에 20 분걸리던일 Batch 작업이어제새벽에 2 시간이걸렸네요? 원인이뭘까요? Source Code 가변경된것같은데요? 음.. 혹시 Index 생성, 삭제및통계정보재생성여부를확인해보겠습니다. Developer 지금돌리니까 20 분만에끝나네요? 음오늘새벽은잘될까?? DBA 잘모르겠습니다. 다시한번해당 Job 을돌려봐주세요. Monitoring 해보겠습니다. 1/3 2/3 3/3 Developer DBA

4 성능문제와 OWI 분석방법론 성능지연사례 2) 평소에 1 초이내수행되던화면이특정시간대에서 10 초이상소요되어온라인처리가지연되는현상이있습니다. 원인이뭘까요? Developer 확인해보겠습니다. 아니! CPU 사용율이 99% 어디에이상이있는걸까??? 왜? 자꾸이런일이생기는걸까혹시바이러스..? 아니면해킹..? 1/1 DBA

5 성능문제와 OWI 분석방법론 성능문제란? 인식 현재내가관리하는시스템성능에문제가있는가? 복잡성, 상대적, 주관적 진단 성능문제의원인은무엇인가? CPU, MEMORY, Response Time, Logical Reads, Physical Reads 튜닝 해결가능한가? 1/3 2/3 3/3

6 성능문제와 OWI 분석방법론 성능분석방법론 성능문제의분석작업을체계화한일련의 Process 분석을통해문제를객관적으로제시 원인규명및해결책제시 성능분석방법론의구성 성능문제인식 성능문제진단 성능문제해결

7 성능문제와 OWI 분석방법론 성능지연분석사례 1) 평소에 20 분걸리던일 Batch 작업이어제새벽에 2 시간이걸렸네요? 원인이뭘까요? 어제수행되었던일 Batch 작업분석결과, Data Fetch 작업시에수행된 SQL 은 Latch free (cache buffers chains ) 를 1 시간대기하였습니다. 원인은테스트프로그램에서수행된 SQL 이동일 Block 을 Access 하면서문제를유발한것입니다. 또한 Data 처리작업시에는 Enqueue Lock 을 40 분대기하였습니다. Lock Holder 는개발자가수행한 DML 입니다. Job Scheduling 및공지를통해이러한문제의재발을방지하도록하겠습니다. 오늘은무사히!! Developer 1/1 DBA

8 성능문제와 OWI 분석방법론 임계경로 (Critical Path) Response Time Web Server Application Server File Server DB Server Network Web Network file App Database 1/1

9 성능문제와 OWI 분석방법론 DB 성능문제는주로어떤경우에발생되는가? Mega-User, Mega-Resource -수천명이상의동시사용자 -수십장의 CPU -수십기가의버퍼캐시 -수백테라의스토리지 래치와락 경합증가 오라클은래치와락경합을줄이기위해끊임없이알고리즘을개선 - 래치와락의메커니즘에대한이해 -OWI 를이용한경합분석 - 개별대기이벤트에대한이해

10 성능문제와 OWI 분석방법론 동일자원의동시처리시어떤문제가있는가? Session A Lock or Latch or whatever Something to change Session B 대기!!!

11 성능문제와 OWI 분석방법론 Process Status & Oracle Wait Events IDLE RUNNING WAITING db file scattered read db file sequential read latch free enqueue log file sync 1/5 2/5 3/5 4/5 5/5

12 Wait Event Analysis Oracle7부터각프로세스들이 resource를요구할때마다 Wait Event를보고하게되어이를초점에맞추는성능진단이탄생 성능문제 Wait Time에초점을맞추어작업의비효율을분석 Wait의증가에따른 Wait 시간의증가로결국 Response Time도증가 Response Time = CPU Time + Wait Time 성능분석도구 시스템, 세션레벨의 Event 통계정보다이나믹뷰 (V$SYSTEM_EVENT, V$SESSION_EVENT)

13 Wait Event Analysis Top Wait 을통한 Wait Event Analysis 의예 성능문제의인식및진단 성능문제의해결 db file sequential read 해당이벤트는싱글블록 read ( 주로 index lookup) 시에발생함. 해당이벤트를감소시키기 위한일반적인방법은 I/O 의절대량을줄이는것과, 개별 I/O 성능을향상시키는것임. *) I/O 의절대량감소 1) db_block_buffers 설정값증가 buffer cache 의크기가너무작을경우, 과다한 Disk I/O 가발생할수있으므로, cache 의크기를증가시켜서 Disk I/O 횟수를감소시킴 2)..

14 OWI 구성요소 - Wait Event Wait Event 는 Database 내의각처리단계에설정된 Timer 를바탕으로, 각처리단계에서의자원획득을위한대기시간및횟수등을알려주는 Oracle 의통계지표 I/O 작업, Lock, Latch, DB Link, RAC 작업지연등과같은대기현상들을포함 Oracle7.0.12 에서도입 Oracle Engine 개발자들이꾸준히 Wait Event 의수를늘려가고있음 1990 년대후반 Oracle User Group 에서다루어짐 2000 년 11 월 Oracle magazine(us) 에서 Wait Event-based 튜닝방법이소개됨 Oracle10g 에서는 800~900 개가까운 Wait Event 를지원함

15 OWI 구성요소 - Dynamic Performance View =statistic# V$STATNAME (Stat명) =statistic# V$SESSTAT ( 세션별 Stat 누적 ) V$SYSSTAT ( 시스템전체 Stat 누적 ) =sid V$SESSION_EVENT (Session 별 Event 누적 ) =sid V$SYSTEM_EVENT ( 시스템전체 Event 누적 ) V$EVENT_NAME (Event 별 p1,p2,p3 의미 ) V$SESSION_WAIT (Session 별최근 Event) =sid Event Stat V$PROCESS (Process ID) SPID addr=paddr =(sid,saddr) V$SESSION (Session 정보 ) taddr=addr (sql_address,sql_hash_value) =(address,hash_value) V$TRANSACTION (Undo 정보 ) XIDUSN START_TIME USED_UBLK USED_URED V$OPEN_CURSOR V$SQLAREA V$SQLTEXT (Session별 Open Cursor) (SQL별 Stat누적 ) (SQL별 Full Text) =(address,hash_value) =(address,hash_value)

16 OWI 구성요소 - Dynamic Performance View 항목정의비고 V$EVENT_NAME V$SYSTEM_EVENT V$SESSION_EVENT V$SESSION_WAIT V$SYSTEM_WAIT_CLASS V$SESSION_WAIT_CLASS V$SESSION_WAIT_HISTORY V$EVENT_HISTOGRAM V$ACTIVE_SESSION_HISTO RY Instance 에서정의된 Wait Event 의정보를가지는참조성 View Instance 의기동후, 전 Session 에서발생한 Wait Event 의누계통계치 (Instance 단위 ) 현재접속되어있는, 각 Session 별 Wait Event 의누계통계치 각 Session 이현재대기하고있는 Wait Event 에대한상세정보 (P1,P2,P3, 대기시간등 ) 를제공 10g NF.Instance 기동후발생된 Wait Event 를관련된 Class 별로 Grouping 한결과제공 10g NF. 현재접속되어있는각 Session 별 Wait Event 를 Class 별로 Grouping 한결과제공 10g NF. 최근 10 개의 V$SESSION_WAIT 데이터제공 10g NF. Instance 기동후의 Wait Event 에대한히스토그램제공 10g NF. Active Session 의이력정보제공 Event 명, Parameter1, Parameter2, Parameter3 Instance 의전반적인안정도를판단할수있으며, 특정시간대의 Delta 정보를산출하여구간분석가능 접속한 Session 에대해, 각 Event 별통계정보를파악 누적 Data 가아니고, 실시간 Data 이므로, 반복적으로, Query 를수행하여 Wait Event 의상황을파악해야함 Wait Event 의클래스단위로, Instance 의대기상황파악 Wait Event 의클래스단위로, Session 의대기상황파악 Session Wait 에대한아주짧은이력정보제공 각버킷 ( 대기시간의구간 ) 별 Wait Event 의발생이력파악에도움 1 초단위로각 Active Session 기본정보,SQL 수행정보, PQ 관련정보, 대기 Event 정보, 대기 Event 관련 OBJ#, FiLE#, BLOCK# 등의정보제공

Latch 개요 17 Latch 가벼운 Lock(Light-weight Lock) 공유 Memory 영역 (SGA) 을보호하기위한동기화객체 Latch 1. Latch 획득중 2. SGA 사용 Process Area1 Area2 Process 3. Latch 획득대기 Area3 Area4 SGA 1/3 2/3 3/3

Latch 개요 18 Latch 가보호하는 Resource Latch 는 SGA 의모든하위 Memory 영역을보호 Cache Buffer Shared Pool Library Cache Redo Buffer Memory 영역의속성에따라하나혹은여러개의 Latch 사용 여러개의 Latch를사용하는경우 Parent/Child의관계 Cache Buffer : 수천개 ~ 수만개의 Latch Shared Pool : 하나의 Latch Library Cache : CPU 개수에비례 Redo Buffer : 하나 ~ 여러개의 Latch

Lock 개요 19 Lock Latch보다무거운동기화객체 Database와관련된객체 (Object) 를보호하는동기화객체 Lock 1. Lock 획득중 2. Object 사용중 Process 3. Lock 획득대기 Table A Process 1/3 2/3 3/3 Database

Lock 개요 20 Lock 이보호하는 Resource Latch 가보호하는 Resource 외의모든 Database Object Tablespace Table Row Transaction LCO(Library Cache Object) RCO(Row Cache Object)

Lock 개요 21 Lock 분류 Enqueue Lock User Type: TX, TM, UL System Type: US, HW, SQ, SV, TT, WF, V$LOCK_TYPE 뷰참조 (10g) 기타 Lock library cache lock, library cache pin row cache lock buffer lock

Oracle I/O 22 Modern Enterprise Oracle I/O Architecture Server Process LGWR Cache Buffer DBWR OS File Cache SAN Switch Storage Cache Disk Log File Data File #2 Data File #1 Array Storage

Oracle I/O 23 Multi Block I/O 한번에최대 MBRC(DB_FILE_MUTLIBLOCK_READ_COUNT) 만큼 Block 읽음 Full Table Scan, Index Fast Full Scan 에서사용 Full Scan = Segment 의처음부터끝 (HWM) 까지 Multi Block I/O 로읽어들이는작업 HWM Block Block #12 #11 #10 #9 #8 #7 #6 #5 #4 #3 #2 #1 Header Physical Reads=1+8+4 = 13 1/4 2/4 3/4 4/4

Oracle I/O 24 Multi Block I/O Multi Block I/O 에서한꺼번에읽는 Block 수는? 최대값은 MBRC, 최소값은 2 MBRC=8 Cache Buffer Block Extent 경계 Multi Block I/O (6) Single Block I/O Physical Reads=6+1=7, Logical Reads=6+1+1=8 1/4 2/4 3/4 4/4

Oracle I/O 25 Index Full Scan vs Index Fast Full Scan Index Full Scan = Single Block I/O Index Fast Full Scan = Multi Block I/O Root Branch1 Branch2 Leaf1 Leaf2 Leaf3 Leaf4 Index Full Scan Branch1 Leaf1 Branch3 Leaf3 Leaf2 Branch2 Root Index Fast Full Scan 1/2 2/2

26 db file scattered read Event 정의 I/O System 에 Multi Block I/O 를요청하고응답이오기를기다리는 Event P1 = file# P2 = block# P3 = blocks( 실제로읽은블록수 ) FTS, IFFS(Index Fast Full Scan) 등에서발생 SQL> SELECT * FROM v$bh WHERE file#=<p1> AND block#=<p2> Or SQL> ALTER SYSTEM DUMP DATAFILE <P1> BLOCK MIN <P2> BLOCK MAX <P2+P3-1>

27 db file scattered read db file scattered read 대기과다원인 불필요한 Full Scan SQL Tuning, Index Tuning 비효율적인 Segment 공간 100 만건 Insert 후 100 만건 Delete? FTS 시간은 100 만건과동일 Table Reorg 필요 : Alter Table Move... I/O System 성능저하 Disk I/O 성능개선 Hot Spot 해소 : Logical Volume Level Striping, ASM 등

Oracle I/O 28 Single Block I/O 한번에하나의 Block만을읽어들임 Index Scan(IFFS 제외 ), ROWID에의한 Table Scan SELECT * FROM TAB WHERE ID = 100 Header Data Root Data Branch Branch ROWID ROWID=A, id=100 Data Leaf Leaf Leaf Leaf id=100,rowid=a Data Data Logical Reads = 1 + 1 + 1 + 1 = 4 1/2 2/2

Oracle IO 29 Single Block I/O 기타 Single Block I/O 발생이유 Chained/Migrated Row Scan Multi Block I/O 수행도중하나의 Block만을읽을경우에도발생 Multi Block I/O 도중 Single Block I/O 발생 Extent 경계에닿은경우 MBRC=8 Extent 경계 Block Multi Block I/O (8) Single Block I/O Physical Reads = 8 + 1 = 9

30 db file sequential read Event 정의 I/O System 에 Single Block I/O 를요청하고응답이오기를기다리는 Event P1 = file# P2 = block# P3 = 1 SQL> SELECT * FROM v$bh WHERE file#=<p1> AND block#=<p2> Or SQL> ALTER SYSTEM DUMP DATAFILE <P1> BLOCK <P2>

31 db file sequential read db file sequential read 발생사유 Single Block I/O Index를경유한 Scan Index Range Scan Index Unique Scan Index Full Scan Chained Row / Migrated Row Multi Block I/O 도중에도발생가능

32 db file sequential read db file sequential read 대기과다원인 비효율적인 Index Scan SQL Tuning Index 변경 지나치게높은 Clustering Factor Table Reorg 를통해해결 지나치게깊은 Index 깊이 Index Rebuild 를통해해결 I/O System 성능저하 Disk I/O 성능개선 Hot Spot 해소 : Logical Volume Level Striping, ASM 등

33 Cache Buffer Data Buffer Cache 구조도 LRU LRUW Bucket Bucket latch 1 Bucket Bucket Bucket latch 2 Bucket List Buffer Header List Buffer Cache 1/6 2/6 3/6 4/6 5/6 6/6

34 Cache Buffer Hash Chain 하나의 Hash Bucket 에연결된 Buffer Header 집합 Hash Chain Hash Bucket Buffer Header1 Buffer Header2 Buffer Header3 cache buffers chains latch Buffer Cache

35 Cache Buffer cache buffers chains latch Hash Chain을보호하는목적의 Latch Shared / Exclusive Mode 로획득가능 대부분의다른 Latch 들은 Exclusive Mode 만사용 하나의 Cache Buffers Chains Latch 가여러개의 Hash Chain 을보호 부모 / 자식 Latch V$LATCH_CHILDREN : 자식 Latch 통계정보

36 latch: cache buffers chains Event 정의 Cache Buffer Chain 을탐색하기위해 cache buffers chains latch 를획득하고자대기하는 Event P1 = address P2 = number P3 = tries 대기발생사유 여러세션이동시에동일 cache buffers chains latch 를 Exclusive Mode 로요청 동일세그먼트에대한동시다발적인 Logical Reads에의해유발 핫블록또는불량 SQL에의해발생

37 latch: cache buffers chains Hot Block 에의한 latch 경합 SQL1 Latch 획득대기중 SQL1 SQL1 Latch 획득 Bucket SQL1 SQL1 Data Buffer READ!!! 1/3 2/3 3/3

38 latch: cache buffers chains Bad SQL 에의한 latch 경합 Bad Bucket SQL1 Bad CBC latch Bucket Bucket CBC Latch 경합발생!! SQL2 Bucket Bad Bucket SQL3 CBC latch Bucket 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8

39 latch: cache buffers chains Event 해소방안 Hot Block 인경우 블록분산 인덱스블록인경우인덱스키변경이나다른인덱스경유유도 SQL Tuning 블록에대한요청회수를줄일수있는방안모색 - 어플리케이션변경 Bad SQL 인경우 SQL Tuning

40 Copyrights 2001~2011, EXEM CO., LTD. All Rights Reserved. 본서는대한민국저작권법에의해보호를받는저작물이므로무단젂재와무단복제및변형을금합니다.