Top Banner
ADF Performance Monitor Frank Houweling - 2015
46
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ADF Performance Monitor

ADF Performance MonitorFrank Houweling - 2015

Page 2: ADF Performance Monitor

2

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 problemsbefore they affect revenue.

Page 3: ADF Performance Monitor

3

End User Experience:Call and Ask all Customers ?

Page 4: ADF Performance Monitor

4

ADF Performance Monitor

• Advanced tool designed for measuring, analyzing, improving, and checking the performance and health of Oracle ADF applications

• Tracks and 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

• Can be used during development, test and production

• Is a library attached to your application

• Less than 1 day for implementation

• Needs to add a very small amount of code to application to make metrics classes active

Page 5: ADF Performance Monitor

5

Issues are reported in a Dashboard Reporting App and in JDeveloper

Page 6: ADF Performance Monitor

6

Month, Week, Day, Hour, 5 Minute Overview

• Shows real-time critical information about the ADF application's performance• Are response times within or outside SLA boundaries? Is immediate action required?

• What is the error rate? What is the health of the JVM?

Page 7: ADF Performance Monitor

7

Monitor SLA

• from 15:00 to 16:00 the response times have increased significantly (more red and yellow colored parts in the 15u bar)

• This should be a trigger to investigate

Page 8: ADF Performance Monitor

8

Monitor Details of All HTTP Requests

– Client Response Time (including network to client and Browser load time)

Page 9: ADF Performance Monitor

9

Monitor HTTP Request Details of Specific End-Users (1)

– Select an end-user name in list

– Performance and problems of specific end-users can now be analyzed

Page 10: ADF Performance Monitor

10

Monitor Requests of Specific End-Users (2)

– When and where did the end-user click ?

– What were the response times of this end-user ?

Page 11: ADF Performance Monitor

11

Request and Response Network Time

Database Application Server Network Client

Request

Response

Page 12: ADF Performance Monitor

12

Browser Load Time

Database Application Server Network Client

Request

Response

Page 13: ADF Performance Monitor

13

Example Slow Network/Browser Load Time (1) - Day Overview

Page 14: ADF Performance Monitor

14

Example Slow Network/Browser Load Time (2) – Hour Overview

Page 15: ADF Performance Monitor

15

Example Slow Network/Browser Load Time (3) – 5 Min Overview

Page 16: ADF Performance Monitor

16

Example Slow Network/Browser Load Time (4) – Request Details

Page 17: ADF Performance Monitor

17

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):

Page 18: ADF Performance Monitor

18

Zoom in Into WLS Managed Server (or Monitor All Together)

• Select / Filter on Managed Server• Compare Performance between Managed Servers

Page 19: ADF Performance Monitor

19

JVM Memory Problem Alerts

Page 20: ADF Performance Monitor

20

Quickly Troubleshoot Customer Complains

• All errors with all relevant detail information are recorded

• Error stack traces and call stacks are collected to allow the developer to quickly troubleshoot these errors

• This information helps to discover, analyze and resolve errors that happen frequently on test / production environments

Page 21: ADF Performance Monitor

21

Troubleshoot Production Errors (1)

• Top 10 Production Errors / Faults by Occurrences

Page 22: ADF Performance Monitor

22

Trouble shoot Production Errors (2)

Solution: increase Maximum Capacity of datasource in WLS console

Page 23: ADF Performance Monitor

23

Trouble shoot Production Errors (3)

Page 24: ADF Performance Monitor

24

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.

Page 25: ADF Performance Monitor

25

Troubleshoot Slow ViewObjectQueries

• Analyse runtime SQL executed against the database

Page 26: ADF Performance Monitor

26ViewObject QueryPerformance Aggregated

• AVG, Occurrences and Total execution time

Page 27: ADF Performance Monitor

27

Slow Activation of ApplicationModule

Page 28: ADF Performance Monitor

28

Slow Passivation of ApplicationModule

Page 29: ADF Performance Monitor

29Worst ApplicationModuleactivations & passivationsoverview

• Troubleshoot ApplicationModule Pooling problems

• Set the most optimal ApplicationModule Pooling parameter settings

Page 30: ADF Performance Monitor

30Worst ApplicationModuleactivations & passivationsoverview (2)

Page 31: ADF Performance Monitor

31

Occurrences overview

Page 32: ADF Performance Monitor

32

Loaded Rows in Memory (1)

Page 33: ADF Performance Monitor

33

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) !

Page 34: ADF Performance Monitor

– 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

34

Loaded Rows in Memory (3)-ADF CallStack

Page 35: ADF Performance Monitor

35

Warnings and Suggested Solutions

Page 36: ADF Performance Monitor

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

Page 37: ADF Performance Monitor

37

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

Page 38: ADF Performance Monitor

38

Use in JDeveloper during development

Page 39: ADF Performance Monitor

39

Configuration

• All configuration steps are well documented in the installation guide

– An 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.

– The metrics classes make use of extension points in the ADF framework in order to

measure the time every action/step takes in a http request.

• Implementation takes less than 1 day, usually no more than a few hours

Page 40: ADF Performance Monitor

40

Overhead

• Load tests show that the overhead is less than 3 to 4 percent.

• This overhead is caused by the very detailed collection of performance metrics.

• The metrics collection can be dynamically turned on and off (at runtime) at all times.

• When the monitor is turned off there is no performance overhead because the metrics classes are not active.

Page 41: ADF Performance Monitor

41

Support

• Standard Oracle stack

– ADF Business Components

– ADF Model

– ADF Controller

– ADF Faces

• JPA/EJB

– EclipseLink/TopLink

• POJO JavaBean DataControl

• JAX-WS Webservices

• It is possible to instrument (calls to) custom Java methods and 3rd party libraries

• Application servers:

– WebLogic

– Glassfish

– Tomcat

Page 42: ADF Performance Monitor

42

End-users will be more happy

Page 43: ADF Performance Monitor

43

Henri Peters - Project Manager Dutch Ministry of Justice

“For us it is of great value that we can continuously identify the

weakest link, even if there is no actual performance problem (yet)."

“We can even drill down to the level of an individual user.

Sometimes we go so far that we proactively approach end-users:

before they complain we already have contacted them.”

* More quotes of ADF experts and managers at:

http://tinyurl.com/nxgkgr6 or http://www.amis.nl/ADFperformancemonitor

Page 44: ADF Performance Monitor

44

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)

Page 45: ADF Performance Monitor

45

Whitepaper

Whitepaper has detailed information about the architecture and implementation

http://tinyurl.com/qgfh22u or http://www.amis.nl/ADFperformancemonitor

Content:Executive overview

Introduction

Oracle ADF applications and performance

ADF Performance Monitor overview

Use in JDeveloper

Use in test and production environment

Dashboard reporting application

Summary and details HTTP response times

ADF framework call stack

Warnings and suggested solutions

Worst performing executions in ADF BC and model layer

Error stacktraces

JVM performance

Product architecture

Configuration

Turn on/off at all times

Prerequisites

Monitored Events

Page 46: ADF Performance Monitor

46

More information on

http://www.amis.nl/ADFperformancemonitor

Contact us for more information and pricing.

[email protected] or call +31 30 6016000