Small updates for this version presented at OakTableWorld 2018
Discusses Oracle time-based performance instrumentation as presented in AWR reports and inconsistencies between instrumentation sources that can cause confusion as conflicting information is presented. The cognitive load of investigating and reasoning about such conundrums is very high, discouraging even senior performance experts. A program (AWR1page) is discussed that consumes an AWR report and produces a 1-page normalized time summary by instrumentation source, precisely designed for reasoning about instrumentation inconsistencies in AWR reports.
Awr1page - Sanity checking time instrumentation in AWR reportsJohn Beresniewicz
Discusses Oracle time-based performance instrumentation as presented in AWR reports and inconsistencies between instrumentation sources that can cause confusion as conflicting information is presented. The cognitive load of investigating and reasoning about such conundrums is very high, discouraging even senior performance experts. A program (AWR1page) is discussed that consumes an AWR report and produces a 1-page normalized time summary by instrumentation source, precisely designed for reasoning about instrumentation inconsistencies in AWR reports.
Awr1page - Sanity checking time instrumentation in AWR reportsJohn Beresniewicz
The presentation discusses issues with Oracle timing instrumentation and introduces AWR1page, a program that produces high-level instrumentation sanity checks from AWR text reports, on a single page.
An experimental and advanced usage of Oracle Event Histogram and ASH data to answer the question: has ASH sampled any latency outlier events? We use Event Histogram to characterize the probability distribution of event latencies and then join with ASH to find if high significance (low probability) events have been sampled. Presented at UKOUG in 2011.
ASHviz - Dats visualization research experiments using ASH dataJohn Beresniewicz
RMOUG Training Days 2020 abstract:
The Active Session History (ASH) mechanism is a rich source of fine-grained data about database activity, and is the lynchpin for many database performance management features in the Diagnostic and Tuning packs. Many interesting stories about happenings in the database are buried in ASH waiting to be revealed, and data visualization is key to sifting these out from the high dimensionality and volume of ASH data. The session will cover a number of data visualization experiments conducted using a single ASH dump with an emphasis on the iterative process of discovering useful data visualizations.
Understanding Average Active Sessions (AAS) is critical to understanding Oracle performance at the systemic level. This is my first presentation on the topic done at RMOUG Training Days in 2007. Later I will upload a more recent presentation on AAS from 2013.
AWR Ambiguity: Performance reasoning when the numbers don't add upJohn Beresniewicz
A close look at an AWR report where DB Time is exceeded by the sum of DB CPU and foreground wait time. We recall core Oracle performance principles and instrumentation design on the way to untangling the confusion.
Awr1page - Sanity checking time instrumentation in AWR reportsJohn Beresniewicz
Discusses Oracle time-based performance instrumentation as presented in AWR reports and inconsistencies between instrumentation sources that can cause confusion as conflicting information is presented. The cognitive load of investigating and reasoning about such conundrums is very high, discouraging even senior performance experts. A program (AWR1page) is discussed that consumes an AWR report and produces a 1-page normalized time summary by instrumentation source, precisely designed for reasoning about instrumentation inconsistencies in AWR reports.
Awr1page - Sanity checking time instrumentation in AWR reportsJohn Beresniewicz
The presentation discusses issues with Oracle timing instrumentation and introduces AWR1page, a program that produces high-level instrumentation sanity checks from AWR text reports, on a single page.
An experimental and advanced usage of Oracle Event Histogram and ASH data to answer the question: has ASH sampled any latency outlier events? We use Event Histogram to characterize the probability distribution of event latencies and then join with ASH to find if high significance (low probability) events have been sampled. Presented at UKOUG in 2011.
ASHviz - Dats visualization research experiments using ASH dataJohn Beresniewicz
RMOUG Training Days 2020 abstract:
The Active Session History (ASH) mechanism is a rich source of fine-grained data about database activity, and is the lynchpin for many database performance management features in the Diagnostic and Tuning packs. Many interesting stories about happenings in the database are buried in ASH waiting to be revealed, and data visualization is key to sifting these out from the high dimensionality and volume of ASH data. The session will cover a number of data visualization experiments conducted using a single ASH dump with an emphasis on the iterative process of discovering useful data visualizations.
Understanding Average Active Sessions (AAS) is critical to understanding Oracle performance at the systemic level. This is my first presentation on the topic done at RMOUG Training Days in 2007. Later I will upload a more recent presentation on AAS from 2013.
AWR Ambiguity: Performance reasoning when the numbers don't add upJohn Beresniewicz
A close look at an AWR report where DB Time is exceeded by the sum of DB CPU and foreground wait time. We recall core Oracle performance principles and instrumentation design on the way to untangling the confusion.
Any DBA from beginner to advanced level, who wants to fill in some gaps in his/her knowledge about Performance Tuning on an Oracle Database, will benefit from this workshop.
This is the presentation on ASH that I did with Graham Wood at RMOUG 2014 and that represents the final best effort to capture essential and advanced ASH content as started in a presentation Uri Shaft and I gave at a small conference in Denmark sometime in 2012 perhaps. The presentation is also available publicly through the RMOUG website, so I felt at liberty to post it myself here. If it disappears it would likely be because I have been asked to remove it by Oracle.
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentalsJohn Beresniewicz
RMOUG 2020 abstract:
This session will cover core concepts for Oracle performance analysis first introduced in Oracle 10g and forming the backbone of many features in the Diagnostic and Tuning packs. The presentation will cover the theoretical basis and meaning of these concepts, as well as illustrate how they are fundamental to many user-facing features in both the database itself and Enterprise Manager.
Proactive performance monitoring with adaptive thresholdsJohn Beresniewicz
Presentation given at UKOUG 2008 conference on the Adaptive Thresholds technology in Oracle database 10.2+ and Enterprise Manager 11. Adaptive Thresholds allows users to do consistent and effective performance monitoring across systems and architectures by using statistical characterization of metric streams to automatically set and adapt monitoring thresholds independent of application workload.
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsJohn Kanagaraj
Oracle Database 10g brought in a slew of tuning and performance related tools and indeed a new way of dealing with performance issues. Even though 10g has been around for a while, many DBAs haven’t really used many of the new features, mostly because they are not well known or understood. In this Expert session, we will look past the slick demos of the new tuning and performance related tools and go “under the hood”. Using this knowledge, we will bypass the GUI and look at the views and counters that matter and quickly understand what they are saying. Tools covered include AWR, ADDM, ASH, Metrics, Tuning Advisors and their related views. Much of information about Oracle Database 10g presented in this paper has been adapted from my book and I acknowledge that with gratitude to my publisher - SAMS (Pearson).
AWR DB performance Data Mining - Collaborate 2015Yury Velikanov
Oracle database AWR performance repository is a hidden treasure. There are a lot of very useful details about your systems behavior hidden in that repository. This presentation designed to give you all knowledge you need to start leveraging the data more than standard AWR based reports allows you. The author will walk you through several practical examples from his experience where AWR proven to be one of the best information sources. You will learn how to start accessing AWR tables and few areas you should be careful with. We will wrap up the presentation with more examples and Q&A section.
Objective 1: Give enough information to start mining AWR tables to extract performance data for troubleshooting different issues
Objective 2: Demonstrate practical examples on how AWR has been used to troubleshoot different performance problems
Objective 3: Let you consider AWR as a good additional source for performance issues troubleshooting
Any DBA from beginner to advanced level, who wants to fill in some gaps in his/her knowledge about Performance Tuning on an Oracle Database, will benefit from this workshop.
This is the presentation on ASH that I did with Graham Wood at RMOUG 2014 and that represents the final best effort to capture essential and advanced ASH content as started in a presentation Uri Shaft and I gave at a small conference in Denmark sometime in 2012 perhaps. The presentation is also available publicly through the RMOUG website, so I felt at liberty to post it myself here. If it disappears it would likely be because I have been asked to remove it by Oracle.
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentalsJohn Beresniewicz
RMOUG 2020 abstract:
This session will cover core concepts for Oracle performance analysis first introduced in Oracle 10g and forming the backbone of many features in the Diagnostic and Tuning packs. The presentation will cover the theoretical basis and meaning of these concepts, as well as illustrate how they are fundamental to many user-facing features in both the database itself and Enterprise Manager.
Proactive performance monitoring with adaptive thresholdsJohn Beresniewicz
Presentation given at UKOUG 2008 conference on the Adaptive Thresholds technology in Oracle database 10.2+ and Enterprise Manager 11. Adaptive Thresholds allows users to do consistent and effective performance monitoring across systems and architectures by using statistical characterization of metric streams to automatically set and adapt monitoring thresholds independent of application workload.
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsJohn Kanagaraj
Oracle Database 10g brought in a slew of tuning and performance related tools and indeed a new way of dealing with performance issues. Even though 10g has been around for a while, many DBAs haven’t really used many of the new features, mostly because they are not well known or understood. In this Expert session, we will look past the slick demos of the new tuning and performance related tools and go “under the hood”. Using this knowledge, we will bypass the GUI and look at the views and counters that matter and quickly understand what they are saying. Tools covered include AWR, ADDM, ASH, Metrics, Tuning Advisors and their related views. Much of information about Oracle Database 10g presented in this paper has been adapted from my book and I acknowledge that with gratitude to my publisher - SAMS (Pearson).
AWR DB performance Data Mining - Collaborate 2015Yury Velikanov
Oracle database AWR performance repository is a hidden treasure. There are a lot of very useful details about your systems behavior hidden in that repository. This presentation designed to give you all knowledge you need to start leveraging the data more than standard AWR based reports allows you. The author will walk you through several practical examples from his experience where AWR proven to be one of the best information sources. You will learn how to start accessing AWR tables and few areas you should be careful with. We will wrap up the presentation with more examples and Q&A section.
Objective 1: Give enough information to start mining AWR tables to extract performance data for troubleshooting different issues
Objective 2: Demonstrate practical examples on how AWR has been used to troubleshoot different performance problems
Objective 3: Let you consider AWR as a good additional source for performance issues troubleshooting
Right-Sizing your SQL Server Virtual Machineheraflux
Virtualizing your top-tier production SQL Servers is not as easy as P2V’ing it. Sometimes allocating more resources to the VM is the wrong approach, and getting it wrong will silently hurt performance. What is the most effective method for determining the ‘right’ amount of resources to allocate? What happens if the workload changes a month from now?
The methods for understanding the performance of your mission-critical SQL Servers gathered over the past ten years of SQL Server virtualization will be addressed, and valuable processes for performance statistic collection and analysis will be displayed. Come learn how to properly ‘right-size’ the resources allocated to a VM, improve the performance of your SQL Servers, and keep it maximized well into the future.
Video: https://www.youtube.com/watch?v=FJW8nGV4jxY and https://www.youtube.com/watch?v=zrr2nUln9Kk . Tutorial slides for O'Reilly Velocity SC 2015, by Brendan Gregg.
There are many performance tools nowadays for Linux, but how do they all fit together, and when do we use them? This tutorial explains methodologies for using these tools, and provides a tour of four tool types: observability, benchmarking, tuning, and static tuning. Many tools will be discussed, including top, iostat, tcpdump, sar, perf_events, ftrace, SystemTap, sysdig, and others, as well observability frameworks in the Linux kernel: PMCs, tracepoints, kprobes, and uprobes.
This tutorial is updated and extended on an earlier talk that summarizes the Linux performance tool landscape. The value of this tutorial is not just learning that these tools exist and what they do, but hearing when and how they are used by a performance engineer to solve real world problems — important context that is typically not included in the standard documentation.
Performance Analysis: new tools and concepts from the cloudBrendan Gregg
Talk delivered at SCaLE10x, Los Angeles 2012.
Cloud Computing introduces new challenges for performance
analysis, for both customers and operators of the cloud. Apart from
monitoring a scaling environment, issues within a system can be
complicated when tenants are competing for the same resources, and are
invisible to each other. Other factors include rapidly changing
production code and wildly unpredictable traffic surges. For
performance analysis in the Joyent public cloud, we use a variety of
tools including Dynamic Tracing, which allows us to create custom
tools and metrics and to explore new concepts. In this presentation
I'll discuss a collection of these tools and the metrics that they
measure. While these are DTrace-based, the focus of the talk is on
which metrics are proving useful for analyzing real cloud issues.
From USENIX LISA 2010, San Jose.
Visualizations that include heat maps can be an effective way to present performance data: I/O latency, resource utilization, and more. Patterns can emerge that would be difficult to notice from columns of numbers or line graphs, which are revealing previously unknown behavior. These visualizations are used in a product as a replacement for traditional metrics such as %CPU and are allowing end users to identify more issues much more easily (and some issues are becoming nearly impossible to identify with tools such as vmstat(1)). This talk covers what has been learned, crazy heat map discoveries, and thoughts for future applications beyond performance analysis.
Show drafts
volume_up
Empowering the Data Analytics Ecosystem: A Laser Focus on Value
The data analytics ecosystem thrives when every component functions at its peak, unlocking the true potential of data. Here's a laser focus on key areas for an empowered ecosystem:
1. Democratize Access, Not Data:
Granular Access Controls: Provide users with self-service tools tailored to their specific needs, preventing data overload and misuse.
Data Catalogs: Implement robust data catalogs for easy discovery and understanding of available data sources.
2. Foster Collaboration with Clear Roles:
Data Mesh Architecture: Break down data silos by creating a distributed data ownership model with clear ownership and responsibilities.
Collaborative Workspaces: Utilize interactive platforms where data scientists, analysts, and domain experts can work seamlessly together.
3. Leverage Advanced Analytics Strategically:
AI-powered Automation: Automate repetitive tasks like data cleaning and feature engineering, freeing up data talent for higher-level analysis.
Right-Tool Selection: Strategically choose the most effective advanced analytics techniques (e.g., AI, ML) based on specific business problems.
4. Prioritize Data Quality with Automation:
Automated Data Validation: Implement automated data quality checks to identify and rectify errors at the source, minimizing downstream issues.
Data Lineage Tracking: Track the flow of data throughout the ecosystem, ensuring transparency and facilitating root cause analysis for errors.
5. Cultivate a Data-Driven Mindset:
Metrics-Driven Performance Management: Align KPIs and performance metrics with data-driven insights to ensure actionable decision making.
Data Storytelling Workshops: Equip stakeholders with the skills to translate complex data findings into compelling narratives that drive action.
Benefits of a Precise Ecosystem:
Sharpened Focus: Precise access and clear roles ensure everyone works with the most relevant data, maximizing efficiency.
Actionable Insights: Strategic analytics and automated quality checks lead to more reliable and actionable data insights.
Continuous Improvement: Data-driven performance management fosters a culture of learning and continuous improvement.
Sustainable Growth: Empowered by data, organizations can make informed decisions to drive sustainable growth and innovation.
By focusing on these precise actions, organizations can create an empowered data analytics ecosystem that delivers real value by driving data-driven decisions and maximizing the return on their data investment.
Adjusting primitives for graph : SHORT REPORT / NOTESSubhajit Sahu
Graph algorithms, like PageRank Compressed Sparse Row (CSR) is an adjacency-list based graph representation that is
Multiply with different modes (map)
1. Performance of sequential execution based vs OpenMP based vector multiply.
2. Comparing various launch configs for CUDA based vector multiply.
Sum with different storage types (reduce)
1. Performance of vector element sum using float vs bfloat16 as the storage type.
Sum with different modes (reduce)
1. Performance of sequential execution based vs OpenMP based vector element sum.
2. Performance of memcpy vs in-place based CUDA based vector element sum.
3. Comparing various launch configs for CUDA based vector element sum (memcpy).
4. Comparing various launch configs for CUDA based vector element sum (in-place).
Sum with in-place strategies of CUDA mode (reduce)
1. Comparing various launch configs for CUDA based vector element sum (in-place).
Explore our comprehensive data analysis project presentation on predicting product ad campaign performance. Learn how data-driven insights can optimize your marketing strategies and enhance campaign effectiveness. Perfect for professionals and students looking to understand the power of data analysis in advertising. for more details visit: https://bostoninstituteofanalytics.org/data-science-and-artificial-intelligence/
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Subhajit Sahu
Abstract — Levelwise PageRank is an alternative method of PageRank computation which decomposes the input graph into a directed acyclic block-graph of strongly connected components, and processes them in topological order, one level at a time. This enables calculation for ranks in a distributed fashion without per-iteration communication, unlike the standard method where all vertices are processed in each iteration. It however comes with a precondition of the absence of dead ends in the input graph. Here, the native non-distributed performance of Levelwise PageRank was compared against Monolithic PageRank on a CPU as well as a GPU. To ensure a fair comparison, Monolithic PageRank was also performed on a graph where vertices were split by components. Results indicate that Levelwise PageRank is about as fast as Monolithic PageRank on the CPU, but quite a bit slower on the GPU. Slowdown on the GPU is likely caused by a large submission of small workloads, and expected to be non-issue when the computation is performed on massive graphs.
2. Acknowledgements
• Kevin Closson / Connor McDonald
(for the motivating case studies)
• Graham Wood, Uri Shaft
(mentorship, advice and insight)
• Lothar Flatz / Wolfgang Breitling / Alberto Dell’Era /
Toon Koppelaars
(for test sample AWR reports)
3. Outline of talk
• Motivation: confusing AWR reports
• Model and instrumentation for time in Oracle
• When model and measures don’t match
• Concept and design of AWR1page
• Using AWR1page: case studies 1 & 2
• Final thoughts, future directions
4. Motivation: confounding AWR reports
• OakTable inquiries about AWR reports where
“numbers don’t add up”
• First case: double-counted DB time (CPU under wait)
• AWR Ambiguity OakTable World 2015
• Second case: AIX CPU reporting issues
• AWR1page OakTable World 2016
• Solving such AWR report puzzles is mentally
excruciating
5. AWR Ambiguity take-away slide
Symptom Possible issue
DB CPU >> ASH CPU
(and significant wait time)
CPU used within wait
(this was the issue here)
ASH CPU >> DB CPU
System CPU-bound
(ASH includes run-queue)
DB Time >> DB CPU + Wait
(and not CPU-bound)
Un-instrumented wait
(in call, not in wait, not on CPU)
DB Time >> ASH DB Time
1. Double-counted DB Time
2. ASH dropped samples
6. Model: Oracle Time = CPU + Wait
• Time spent executing Oracle code by either
background or foreground processes
• Active processes are usually most interesting
Active = (in DB call) && (on CPU or “active” wait)
• Multiple measure sources for each time component
Oracle Time
CPU Time Wait Time
7. Oracle time instrumentation
• Wait/Event Model: V$SYSTEM_EVENT
FG/BG active/idle wait time
• Time Model: V$SYS_TIME_MODEL
FG/BG CPU and Elapsed
• OS Timing: V$OSSTAT
CPU sys/usr/IO/wait/load avg
• ASH: V$ACTIVE_SESSION_HISTORY
FG/BG CPU and wait (estimated)
NOTE: Stop using V$SYSSTAT “CPU used by this session”
8. Time instrumentation essentials
• Run-queue time distorts everything!
• TM elapsed = (call end - call start) - idle wait time
• ASH ON CPU = active session not in wait (derived)
• TM CPU measured = actual instruction time used
• OSSTAT reliability platform-dependent
• Smaller call latencies increase distortion
9. Normalization: Avg Active Sessions
• Essential Oracle performance metric
• AAS = instrumentation time / elapsed time
• AAS / Core = core-normalized AAS
RMOUG 2007
10. Consistency checking AWR reports
• AWR reports are massive
(most of it irrelevant for any specific situation)
• Time data scattered about, difficult to compare
• Units vary, breakdowns inconsistent, not
normalized
• Labor intensive and error-prone
Cognitive load of consistency checking is huge
11. Sources of inconsistency
• CPU saturation: run queue time
First and most important item to check
ASH CPU >> Time Model CPU
• CPU under wait event
Time Model Wait << Event Wait ~ ASH Wait
• misleading hyperthreading OS CPU accounting
IBM AIX issue: ASH CPU >> Time Model CPU
• double-counted DB time
10.1 bug with job queue process accounting
12. Sources of inconsistency (2)
• un-instrumented wait event
ASH CPU >> Time Model CPU (OS CPU)
• active events classified idle
Time Model, Event Wait and ASH under-reported
• dropped ASH samples*
ASH << Time Model
• cpu-active idle events*
FG Time << FG CPU Time
13. Check CPU first!
• OSSTAT: Average Active Sessions Busy / Core
• OSSTAT: Load Average / Core
• OSSTAT: OS_CPU_WAIT (process level AAS)
• Time Model: CPU AAS / Core
• CPU Threads / Core = hyper-threading factor
14. Some consistency checks
? CPU saturation: Core utilization >> 1
? TM AAS ~ ASH AAS
? TM CPU ~ ASH CPU ~ OS CPU
? TM AAS ~ (TM CPU + WT Wait)
? TM Wait ~ ASH Wait ~ WT Wait
KEY:
WT = Event/Wait Model
TM = Time Model
OS = OSSTAT
ASH = ASH
15. Oracle Time << CPU + Wait
• CPU under wait, time is being double-counted
TM Total < (TM CPU + WT Wait) &&
ASH Wait ~ WT Wait
Oracle Time
CPU Time Wait Time
Oracle Time
CPU Time Wait TimeCPU under wait
16. Oracle Time >> CPU + Wait
• Wait under-counted, un-instrumented wait?
ASH CPU > TM CPU && TM CPU ~ OS CPU &&
TM Wait > WT Wait
• CPU under-counted, AIX or course timers?
ASH CPU > TM CPU &&
ASH Wait ~ WT Wait && TM Wait > WT Wait
Oracle Time
CPU Time Wait Time
17. The AIX CPU issue
• AIX with SMT turned on reports CPU strangely
• Semantics of CPU accounting altered
• According to Graham: “it’s just broken”
• OakTable blog references:
Marcin Przepiorowski
Jeremy Schneider
• Graham: Increase reported CPU values by 50% for
SMT=4 for more realistic picture
18. Objectives for AWR1page
• Reduce cognitive load of checking time
consistency in AWR reports: Total / CPU / Wait
• Facilitate comparative assessment of system sizes
and busy-ness
• In 1 page, using only AWR text report as input
19. AWR report time measure sources
• $0 ~”^Operating System Statistics” {
• $0 ~ "^Time Model Statistics" {
• $0 ~ "^Foreground Wait Class" {
• $0 ~ "^Wait Classes by Total Wait Time" {
• $0 ~ "^Activity Over Time" {
• Also other important report singletons like elapsed
time of AWR period, platform, core count, cpu count
20. Idea: measure x source matrix
INFO OSSTAT TIME MODEL ASH
HOST CPU
SYS
USR
ORCL TOTAL
CPU
WAIT
MISC
Compare rows
for equality
measures
data sources
Columns add up
heirarchically
21. Values from AWR report
INFO *
cores
cpus
threads/core
memory
OSSTAT
X
X
X*
X
TIME MODEL ASH
ORCL .
total .
FG
BG
.
.
.
.
X
X
X
.
X
X
X*
CPU load .
. busy
i/o wait
scheduler
ORCL .
FG
BG
X
X
X
X
.
.
.
.
.
.
.
X
X
X
.
.
.
.
X
X
X*
WAIT
MISC
22. Design mockup
AWR1page cores: nn cpus: nn threads: nn elapsed:nnnn.m
measure OSSTAT TIME MODEL ASH WAIT CLASS
HOST LOAD [nn:mm]
CPU BUSY [nn:mm]
USER nn
SYS nn
IOWAIT [nn:mm]
OS_CPU_WAIT [nn:mm]
ORACLE
AVG ACTIVE SESSIONS (BG & FG) [nn:mm] [nn:mm]
CPU [nn:mm] [nn:mm]
FG nn
BG nn
RES_MGR_CPU_WAIT nn
WAIT [nn:mm] [nn:mm] [nn:mm]
FG nn nn nn
BG nn dd* dd*
Scheduler nn
MISC: CPU per user call n.mmmm n.mmmm n.mmmm
23. Design notes
• AAS = Average Active [ Sessions | Processes | Threads| Cores ]
• instrumentation time / elapsed time
• All numbers on the sparse matrix are in AAS
• Comparable measures from different sources on same line
• Indentation and vertical position represent decomposition
• Some cells show core-normalized AAS
• [nn:mm] where nn=AAS, mm=AAS/cores
24. Version 2c: 634 lines of awk
AWR1page
file: awrKC.txt
platform: Linux x86 64-bit cores: 36
RAC: NO cpus: 72
release: 12.1.0.2.0 threads/core: 2
elapsed: 2.02 (min) sessions(end): 56
snaps: 1
========================================================================================================================
measure | OSSSTAT | TIME MODEL | ASH | WAIT CLASS
========================================================================================================================
HOST LOAD [7.80:0.22]
CPU BUSY [5.99:0.17]
USER 2.27
SYS 3.72
IOWAIT [3.00:0.08]
OS_CPU_WAIT N/A
........................................................................................................................
ORACLE
AVERAGE ACTIVE SESSIONS (BG+FG) [4.98:0.14] [4.58:0.13]
CPU [2.02:0.06] [0.50:0.01]
FG 2.00
BG 0.01
RSRC_MGR_CPU_WAIT N/A
WAIT [2.96:0.08] [4.08:0.11] [4.32:0.12]
FG 2.96 4.32
BG 0.00 *0.00
IOWAIT 4.32
FG 4.32
Scheduler 0.00
........................................................................................................................
MISC
CPU per call (ms) 3781.98 10.50 312.50
user calls/sec 1.58
core utilization
30. AWR1page
file: QS02FNT_AWR_AskTom.txt
platform: AIX-Based Systems (64-bit) cores: 2
RAC: NO cpus: 8
release: 12.1.0.2.0 threads/core: 4
elapsed: 44.22 (min) sessions(end): 91
snaps: 3
========================================================================================================================
measure | OSSSTAT | TIME MODEL | ASH | WAIT CLASS
========================================================================================================================
HOST LOAD [4.12:2.06]
CPU BUSY [1.13:0.57]
USER 0.66
SYS 0.47
IOWAIT [0.07:0.03]
OS_CPU_WAIT [4.06:2.03]
........................................................................................................................
ORACLE
AVERAGE ACTIVE SESSIONS (BG+FG) [0.62:0.31] [0.72:0.36]
CPU [0.13:0.07] [0.66:0.33]
FG 0.13
BG 0.01
RSRC_MGR_CPU_WAIT 0.00
WAIT [0.48:0.24] [0.06:0.03] [0.05:0.03]
FG 0.42 0.01
BG 0.07 *0.05
IOWAIT 0.03
FG 0.00
Scheduler 0.00
........................................................................................................................
MISC
CPU per call (ms) 115.47 0.01 60.02
user calls/sec 9.80
31. AWR1page
file: QS02FNT_AWR_AskTom.txt
platform: AIX-Based Systems (64-bit) cores: 2
RAC: NO cpus: 8
release: 12.1.0.2.0 threads/core: 4
elapsed: 44.22 (min) sessions(end): 91
snaps: 3
========================================================================================================================
measure | OSSSTAT | TIME MODEL | ASH | WAIT CLASS
========================================================================================================================
HOST LOAD [4.12:2.06]
CPU BUSY [1.13:0.57]
USER 0.66
SYS 0.47
IOWAIT [0.07:0.03]
OS_CPU_WAIT [4.06:2.03]
........................................................................................................................
ORACLE
AVERAGE ACTIVE SESSIONS (BG+FG) [0.62:0.31] [0.72:0.36]
CPU [0.13:0.07] [0.66:0.33]
FG 0.13
BG 0.01
RSRC_MGR_CPU_WAIT 0.00
WAIT [0.48:0.24] [0.06:0.03] [0.05:0.03]
FG 0.42 0.01
BG 0.07 *0.05
IOWAIT 0.03
FG 0.00
Scheduler 0.00
........................................................................................................................
MISC
CPU per call (ms) 115.47 0.01 60.02
user calls/sec 9.80
AIX = CPU red fag
CPU bound? maybe
small system
SMT = 4
TM ~ ASH
ASH ~ Wait
DB Time > DB CPU + Wait => CPU under-report or run-queue
0.56
0.06
??
32. Future directions
• IT WORKS! Significant reduction of cognitive load to
consistency check AWR report
• still very difficult, but at least possible
• Re-write into Python, awk too fragile
• Accept html version of AWR report
• AWS Lambda service: AWR IN -> 1page OUT
• SQL version: check AWR directly
(should be in DB regression tests)
• Open github repository, use and contribute!