Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

42
© eG Innovations, Inc | www.eginnovations.com Why is My Java Application Slow 5 Monitoring Best Practices to Deliver a Great User Experience Bala Vaidhinathan CTO, eG Innovations

Transcript of Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

Page 1: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Why is My Java Application Slow5 Monitoring Best Practices to Deliver a Great User Experience

Bala VaidhinathanCTO,

eG Innovations

Page 2: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Moderator

Christine AckleyDirector of Marketing OperationseG [email protected]

Page 3: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Please submit your questions at any time during the webinar using the questions panel on the GoToWebinar client.

This webinar is being recorded. You will receive a link to the recording in a few days.

A copy of this presentation is posted on Slideshare:http://www.slideshare.net/eginnovations/

Logistics

Page 4: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Today’s Presenter

Bala VaidhinathanCTO eG [email protected]

Page 5: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Java Application performance monitoring today

Why Java Monitoring is easier said than done?

5 monitoring best practices for troubleshooting and avoiding “Java application is slow” problems

Q&A

Agenda

Page 6: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Down-time : $21,000 Slow-time : $4,100

Average revenue loss due to 1 hour of:

However, slowness occurs 10 times more often than downtime.A 1 sec delay in response time decreases customer satisfaction by 16%, reduces conversions by 7%.

Slow-Time vs. Down-Time

Page 7: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Easier Said Than Done!

Great Application Performance is

Page 8: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Public cloudPrivate cloud

Virtualized

Browsers Locations Frameworks

Devices ProgrammingLanguages Platforms

Infrastructure & Application Evolution Poses Challenges

Page 9: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

A failure or a slowdown in a virtual infrastructure is far more severe than in a physical infrastructure

Physical Virtual

Configuration of VMs can make a big impact on performance; changes to configuration are hard to track

Virtualization Introduces New Challenges

Page 10: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Great User Experience

Focus of Performance Monitoring Today

Page 11: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Page 12: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Silo-based Views No Longer Sufficient

Page 13: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

When Java Application is Slow …

Is it due to the client device/application?

Is it the server application code

Is it in the database queries? Is it due to the application platform/

framework?

Is it due to the virtual/cloud platform? Is there a slowness in the local or regional

network?

Could it be due to storage?

Page 14: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

How to Achieve Java

Performance Monitoring Success?

Page 15: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

Java Monitoring – 5 Best Practices

Page 16: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

End User Experience

Page 17: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Emulates users Imposes the same workload again

and again Provides a measure of experience

EVEN when there is no real load

Synthetic Monitoring

Monitors real users Actual workloads Direct measure of what users

are seeing

Real User MonitoringSynthetic Monitoring

User Experience Monitoring

Page 18: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Use a combination of synthetic and real user monitoring approaches to gain a complete view of the user experience.

Synthetic Monitoring Real User MonitoringSynthetic Monitoring

User Experience - Best Practice

Page 19: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Consider this scenario:

Users access web site, place orders

Order processing happens in the background as an asynchronous process.

What happens when order processing fails?

User Experience Monitoring still indicates that all is OK, despite the failure of orders.

Monitoring the user experience is not sufficient. Track your critical business processes as well.

INVENTORY HANDLING

User Experience - Best Practice

Page 20: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

Transaction Tracing

Page 21: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

ClassFileTransformer

Application is not modified

Introduces some overhead

Tag and follow transactions

Ideal when problems are in the application code

Using byte-code instrumentation

JVM

ClassLoader

Class A

Class B

Class C

Agent

1. Premain

2. addTransformer

5. redefineClass

4. transform

3. WhenLoading…

Business Transaction Tracing

Page 22: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Transaction tracing is very important for identifying coding issues and poor database queries.

May not provide true end-to-end visibility for off-the-shelf applications like SAP, PeopleSoft, etc.

3% - number of respondents to Gartner’s APM Survey who ranked this as #1 priority for APM.

Use transaction tracing as one part (not the only part) of your end-to-end application performance monitoring strategy.

Transaction Tracing - Best Practice

Page 23: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

Java Container – Deep Dive

Page 24: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Apps hosted on Container

Server/ Container

JVM

Application Processes

TCP

Network

Operating System

Java “Application user transactions” health1

Java application monitoring spans multiple layers

Java “Application Infrastructure” health2

“IT Infrastructure” health3

Page 25: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Application server metrics provide insight into the performance of the application’s container including:

Datasource / Connection pool

Web connectors

Sub-systems such as

EJB

Messaging

Container Managed Transactions

Apps hosted on Container

Server/ Container

JVM

What is Container monitoring?

Page 26: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

The JVM is a key ‘underpinning’ of any java application. JVM tuning is necessary anytime there is a:

Application update JVM version change Operating system change

JVM monitoring includes: Garbage Collection. By far, the most intrusive activity upon a java application’s

performance. JVM Memory JVM Threads JVM CPU Usage Class Loading

Apps hosted on Container

Server/ Container

JVM

What is JVM monitoring?

(Comprehensive list follows in later slides)

Page 27: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

“JVM is a critical component in the software stack, it should be monitored as much as the application itself and the operating system”

Why is JVM monitoring important ?

- Charlie Hunt, JVM Performance Lead Engineer at Oracle Java Performance Guru & author

Page 28: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

Java Application as a Service

Page 29: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Application Monitoring = Transaction Tracing

Suppose there is an infrastructure issue – say a database-wide slowdown.

Page 30: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Transaction tracing will NOT point to the root-cause of an infrastructure problem.

Application Monitoring = Transaction Tracing

Page 31: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

ServerInfrastructure

Health

Application Processes

TCP

Network

Operating System

ApplicationInfrastructure Health

Server/Container

JVM

BusinessTransaction Health

App hosted onContainer

CUSTOM

Application Monitoring = Transaction Tracing

Page 32: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Have the right mix of reach and depth when it comes to monitoring capabilities.

Monitor Java as a Service – Best Practice

Page 33: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Business Transaction

Tracing

Application Component Deep-Dive

Application Topology

Discovery/Visualization

IT Analytics

Application Performance Monitoring Framework

Page 34: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Auto-baselining Automatic correlation Prediction Capacity analysis Historical reporting Bottleneck detection Optimization recommendations

IT Analytics

Page 35: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Automatic, time varying baselines make monitoring

PROACTIVE

Auto-Baselining for Proactive Alerting

Page 36: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

A few of the servers are handling most of

the sessions

Make Optimization Decisions Based on Empirical Data

Page 37: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Invest Wisely with Capacity Analytics

Page 38: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

IT Analytics is 2nd in importance to user experience!

Look for monitoring tools that reduce your burden by automating analysis and providing you actionable insights.

IT Analytics – Best Practice

Page 39: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

End User Experience Monitoring

Transaction Tracing

Java Container Deep-Dive

Java Application as a Service

Analytics

Java Monitoring - 5 Best Practices - Recap

Page 40: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Ensure great user experience Detect problems before users notice –

be proactive Resolve problems quickly, keep MTTR

low Handle problems with fewer people,

less expertise Plan/invest wisely for growth

Benefits of Java Application Performance Monitoring Success

Page 41: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Free Trialhttp://www.eginnovations.com/freetrial

Send an [email protected]

Call Us+1 (866) 526 6700

Next Steps

Page 42: Why Is My Java App Slow? 5 Monitoring Best Practices for a Great User Experience

© eG Innovations, Inc | www.eginnovations.com

Q&A