Application Performance & Architectural Problems You Can Find in an Hour
A step-by-step guide
May. 5, 2011 10:30 AM
When we get engaged with prospects that are interested in our performance management solution we walk them through a Proof of Concept. We let them install dynaTrace on their own prior to the actual POC. During the POC we ask them to exercise typical use cases on their application that show performance problems. We walk them through the different analysis options and add the findings to a final POC Presentation. In this blog I want to share some screenshots and findings of a typical Proof of Concept recently done in a heterogeneous .NET/Java Environment.
Out-of-the-Box Result Presentation
The screenshots are taken from the final POC Presentation that my colleague Francis pulled together after analyzing a one hour recorded dynaTrace Session with an Out-Of-The-Box dynaTrace Configuration.
1. Get a general performance overview of the application – where are my hotspots?
Different ways to get a high-level performance view of the capture data
Read more on identifying Hotspots
2. What is going on between my application servers?
Transactional Flow Diagram allows us to drill into more details
Read more on Tracing Distributed Applications
3. Sequence Diagram for individual transactions
Sequence Diagram giving us a high level performance overview of a slow running transaction
The Sequence Diagram can also be used to see how tiers interact, where our bottlenecks are and where exceptions are thrown
More on analyzing architectural problems
4. Analyzing Database Activity
Analyze Database Activity per Transaction. Identify problems where SQL Statements are called multiple times with the same parameters
Analyzing slow SQL Query on WebLogic:
Several individual DB Queries had an execution time of > 4 seconds
Read more database related blog entries.
5. Identifying slow Remoting calls
Identify slow remoting calls including full call context and the ability to trace into the server-side implementation of this call
Read more remoting related blog entriesInspecting asynchronous MessagesdynaTrace can follow asynchronous messages through your SOA infrastructure
6. Analyzing hidden exceptions
dynaTrace captures exceptions including full call stack. Drilling to the actual PurePath (Trace) gives more input on the actual call context
More exceptions caught on WebLogic:
Many internal exceptions that never made it to the application code indicating XML Format issues
7. Runtime Suspension (Garbage Collection) Impact Analysis
Identify the impact of Garbage Collection on response times of individual transactions
Read a blog post on the cost of exceptions
8. Details on Web Service Calls from .NET to Java
Details on Web Service Invocations such as input parameters, transferred bytes or the impact of the GC on the execution time
9. Lookup Source Code from your own or foreign code
Found a problematic method? Directly lookup the decompiled Java/.NET Code
As you can see – it is easy to get an overview of the performance hotspots. The typical problems that we always find are things like too many database statements, hidden exceptions or long-running remoting calls. Read my blog about the Top 10 Server-Side Performance Problems that we often find with our dynaTrace Installations.
- Top 10 Client-Side Performance Problems in Web 2.0 Inspired by the Top 10 Performance Problems post which focuses...
- Troubleshooting response time problems – why you cannot trust your system metrics // Production Monitoring is about ensuring the stability and health...
- Application Performance Monitoring in production – A Step-by-Step Guide – Part 1 // Setting up Application Performance Monitoring is a big task,...
- Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co For a recent edition of the Swiss Computerworld Magazine we...
- Top 3 Performance Problems in Custom Microsoft CRM Applications After spending a lot of time focusing on Client-Side Web...