OOW Unconference 2010: Mining the AWR repository for Capacity Planning, Visualization, & other real...

59
Unconference: Mining the AWR repository for Capacity Planning, Visualization, & other real world stuff

description

 

Transcript of OOW Unconference 2010: Mining the AWR repository for Capacity Planning, Visualization, & other real...

Unconference: Mining the AWR repository for 

Capacity Planning, Visualization,  & other real world stuff

Who am I?

• Karl Arao, Oracle ACE, OCP‐DBA, RHCT• Solutions Architect / Principal Consultant @ SQL*Wizard

• Blog: http://karlarao.wordpress.com• Wiki: http://karlarao.tiddlyspot.com

What will I talk about?

DBA_HIST_* tables

My first close encounter

gc

block lost

http://karlarao.wordpress.com/2009/06/07/diagnosing-and-resolving-gc-block-lost

Utilization = Requirement / Capacity

Double Y Axis Graph

AWR Scripts

Visualization

Can’t go back in time?

AAS – Average Active SessionsKyle Hailey: http://www.perfvision.com/ftp/emea_2010_may/02_AAS.ppt

Max CPU

Max CPU

AAS – the Golden Metric

AAS & CPU count as a yardstick for a possible performance problem (I suggest reading Kyle's 

stuff about this):

if AAS < 1 

‐‐

Database is not blocked

AAS ~= 0 

‐‐

Database basically idle

‐‐

Problems are in the APP not DB

AAS < # of CPUs

‐‐

CPU available

‐‐

Database is probably not blocked

‐‐

Are any single sessions 100% active?

AAS > # of CPUs

‐‐

Could have performance problems

AAS >> # of CPUS

‐‐

There is a bottleneck

awr_topevents.sql

Textual trends

AAS throughout the AWR retention  period!

http://karlarao.wordpress.com/2010/07/25/graphing-the-aas-with-perfsheet-a-la-enterprise-manager

Capacity Planning

awr_genwl.sql

http://karlarao.wordpress.com/2010/01/31/workload-characterization-using-dba_hist-tables-and-ksar

U = R / C

where aas

> 1

Filter the data points• AAS range

aas

> 1

• Per SNAP_ID or range of SNAP_IDsid in (336)where id >= 336 and  id <= 340

• Oracle CPU Utilizationoracpupct

> 50

• OS CPU Utilizationoscpupct

> 50

• Workload periods

AND TO_CHAR(s0.END_INTERVAL_TIME,'D') >= 1     ‐‐

Day of week: 1=Sunday 7=SaturdayAND TO_CHAR(s0.END_INTERVAL_TIME,'D') <= 7AND TO_CHAR(s0.END_INTERVAL_TIME,'HH24MI') >= 0900     ‐‐

HourAND TO_CHAR(s0.END_INTERVAL_TIME,'HH24MI') <= 1800AND s0.END_INTERVAL_TIME >= TO_DATE('2010‐jan‐17 00:00:00','yyyy‐mon‐dd hh24:mi:ss')    ‐‐

Data rangeAND s0.END_INTERVAL_TIME <= TO_DATE('2010‐aug‐22 23:59:59','yyyy‐mon‐dd hh24:mi:ss‘)

core need = # of cores * utilization * 1.25 Database Consolidation Best Practices

http://husnusensoy.files.wordpress.com/2010/05/database‐consolidation‐best‐practices.pdf

Total disk IOPS = (IOPS * Read Ratio) + (IOPS * Write Ratio * RAID penalty)

Number of disk = Total disk IOPS / IOPS per disk

Average latency issue

60 minutes interval 10 minutes interval

latency (ms) = (readtim

/ phy

reads) * 10

Straight line graph: Slope‐Intercept Form y = mx

+ b

AAS vs. CPU% utilizationhttp://karlarao.tiddlyspot.com/#r2project

“oracpupct”

column also has a good linear fit. Since the  server’s load is CPU centric (see top r2 stats from .92 and  above), why not use it? 

AAS(y) against CPU% Utilization(x) will be more 

meaningful/readable instead of “CPU used by this session”

AAS vs. CPU% utilizationhttp://karlarao.tiddlyspot.com/#r2project

Drilling down on the peak workload...  with AAS of 10

AAS vs. CPU% utilizationhttp://karlarao.tiddlyspot.com/#r2project

Now on the low workload period...  with AAS of 2.2

AAS vs. CPU% utilizationhttp://karlarao.tiddlyspot.com/#r2project

Conclusion

References and Tools• http://karlarao.wordpress.com

– http://karlarao.tiddlyspot.com/#%5B%5BStorage%20IOPS%2Ccapacity%2Cperformance

%2Ccost%5D%5D

– http://karlarao.tiddlyspot.com/#Statistics– http://karlarao.tiddlyspot.com/#OraclePerformance

• Tanel

Poder

@ http://blog.tanelpoder.com– http://www.tanelpoder.com/files/TPT_public.zip– http://www.tanelpoder.com/files/PerfSheet.zip– Neil Gunther

& Tanel

Poder

Multidimensional Visualization of Oracle Performance 

using Barry007 http://arxiv.org/pdf/0809.2532

• Kyle Hailey @ http://ashmasters.com

, http://www.perfvision.com• Craig Shallahamer

@ orapub.com– Introduction To Oracle Server Consolidationhttp://resources.orapub.com/product_p/server_consolidation_ppt.htm

• Husnu

Sensoy

@ husnusensoy.wordpress.com– Database Consolidation Best Practiceshttp://husnusensoy.files.wordpress.com/2010/05/database‐consolidation‐best‐

practices.pdf

• Andy Rivenes

@ http://www.appsdba.com/pubs.htm• Neeraj

Bhatia @ www.nioug.org/files/Linear_Regression.pdf

Contact me through:

[email protected]