adf performance monitor at amis25
TRANSCRIPT
ADF Performance Monitor
Frank Houweling, June 2016
AMIS 25 Years - Oracle Conference Beyond the Horizon
Frank Houweling
• Principal Java / ADF / SOA
consultant - AMIS (Netherlands)
• Focus on performance diagnosis & performance management
• Frequent speaker at Kscope, UKOUG and OOW
• Tech Lead of ADF Performance Monitor
3
Agenda
• ADF Performance Monitor
– Introduction
– Overview
– Examples
4
Why Monitoring
• Applications often contain frustrating blind spots and mysterious, recurring problems that are often difficult to identify, diagnose, and fix.
• With business-critical applications, it’s very important to have a simple and fast way to monitor, diagnose, and resolve application problems before they affect revenue.
5
ADF Performance Monitor
• Advanced Monitor for measuring, analyzing, improving, and controlling the performance and health
• Tracks / collects crucial production performance information of the application’s runtime ADF components that are not standard provided by Oracle
• Helps development, QA, and operation teams to detect, analyze and resolve common and less common issues in response times, health and resource usage of ADF applications
6
ADF Performance Monitor
7
HTTP Request/Response Time is Spent in Which Layer ?
Database Application Server Network Client
Request
Response
ADF
app
HTTP Response Time
8
Client - Browser Load Time
Database Application Server Network Client
Request
Response
Measured
Global
ADF
app
HTTP Response Time
9
Request- and Response Network Time
Database Application Server Network Client
Request
Response
Measured
Global
ADF
app
HTTP Response Time
10
Application Server Time
Database Application Server Network Client
Request
Response
Measured
In Granular
Details
ADF
app
HTTP Response Time
11
Database Time
Database Application Server Network Client
Request
Response
ADF
app
Measured
In Detail
HTTP Response Time
12
Part Split out in CallStack
Database Application Server Network Client
Request
Response
ADF
app
HTTP Response Time
Split out in ADF
Callstack
13
Split out in ADF Callstack
14
Overview By Day, Hour, 5-Minute
Database Application Server Network Client
Request
Response
ADF
app
HTTP Response Time
17
Zoom in Into WLS Managed Server (or Monitor All Together)
• Select / Filter on Managed Server • Compare Performance between Managed Servers
18
Example Slow Network/Browser Load Time (1) - Day Overview
19
Example Slow Network/Browser Load Time (2) – Hour Overview
20
Example Slow Network/Browser Load Time (3) – Request Details
23
Example Network/Browser Load Time – Resolved
• Next day the network problem was resolved
- We can see this in the following hour overview graph were there is much less purple colour (right bottom):
24
Troubleshoot Production Errors (1)
• Top 10 Production Errors / Faults by Occurrences
25
Trouble shoot Production Errors (2)
Solution: increase Maximum Capacity of datasource in WLS console
26
Trouble shoot Production Errors (3)
27
Very Easy to Find Root Cause of Problems
• A call stack provides visibility into which ADF methods caused other methods to be executed, organized by the sequence of their execution.
– A complete breakdown of the ADF request processing, including all ADF method
executions, along with elapsed times is printed, organized by lifecycle phase.
– Inefficiencies can be identified from this report, for example long running ViewObject
queries, slow ApplicationModule activations & passivations, e.g.
28
Troubleshoot Slow ViewObject Queries
• Analyse runtime SQL executed against the database
29 ViewObject Query Performance Aggregated
• AVG, Occurrences and Total execution time
30
Slow Activation of ApplicationModule
31
Slow Passivation of ApplicationModule
32 Worst ApplicationModule activations & passivations overview
• Troubleshoot ApplicationModule Pooling problems
• Set the most optimal ApplicationModule Pooling parameter settings
33
Loaded Rows in Memory (1)
34
ADF BC Memory Analyzer (2)
– Example: in this production ADF app, for a single ViewObject instance,
more than 900.000 rows were loaded in the ADF app (Blue) !
– In this production ADF app, for a single ViewObject instance,
more than 900.000 rows were loaded in the ADF app (!)
– Loading 900.000 rows takes more than 10 minutes
35
Loaded Rows in Memory (3)- ADF CallStack
36
ADF Performance Monitor Warnings and Detailed Help
• Fetching thousands of rows from database
• Slow passivation and activation of transient attributes
• Redundant ViewObject query executions
• Inefficient ViewObject fetchsize
• Inefficient PageDef iterator rangesize
• Slow executions of
– ViewObject queries
– EntityObject DML operations, database locks
– ApplicationModule activations / passivations / transactions
– PageDefinition operations / ApplicationModule custom methods
– PageDefinition iterators
– Webservices
– Java methods
• More
37
End-User Metrics
• Worst Performance by User
• Top Users by Requests
• Most Errors by Users
38
The tool can be dynamically turned on and off (at runtime) at all times
• The ADF Performance Monitor can be dynamically turned on and off (at runtime) at all times in the Enterprise Manager
• When the monitor is turned off there is no performance overhead because the metrics classes are not active
39
Use in JDeveloper during development
40
Support
• Standard Oracle stack – ADF Business Components
– ADF Model
– ADF Controller
– ADF Faces
• JPA/EJB – EclipseLink/TopLink
• POJO JavaBean DataControl
• XMLDataContol
• JAX-WS Webservices
• It is possible to instrument (calls to) custom Java methods and 3rd party
libraries
• Application servers: – WebLogic
– IBM WebSphere
– Glassfish
– Tomcat
41
Configuration
• ADF library needs to be added to your ADF application
– A very small amount of code needs to be added to instrument the ADF application.
• Implementation takes less than 1 day, usually no more than a few hours
42
Overhead
• Load tests show that the overhead is less than 2 percent.
• This overhead is caused by the very detailed collection of performance metrics
43
Videos available
http://tinyurl.com/npu732q or http://www.amis.nl/ADFperformancemonitor
• Overview ADF Performance Monitor (13 min)
• Customer case Dutch Ministry of Justice (4 min)
44
Whitepaper
Whitepaper has detailed information about the architecture and implementation
http://www.amis.nl/ADFperformancemonitor
45
More information on
http://www.amis.nl/ADFperformancemonitor
Contact us for more information and pricing.
[email protected] or call +31 30 6016000