OOW Unconference 2010: Mining the AWR repository for Capacity Planning, Visualization, & other real...
-
Upload
karlarao -
Category
Technology
-
view
2.447 -
download
11
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
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
AAS throughout the AWR retention period!
http://karlarao.wordpress.com/2010/07/25/graphing-the-aas-with-perfsheet-a-la-enterprise-manager
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
“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”
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