Andreas Grabner About the Author

Andreas Grabner has been helping companies improve their application performance for 15+ years. He is a regular contributor within Web Performance and DevOps communities and a prolific speaker at user groups and conferences around the world. Reach him at @grabnerandi

Field Report – Application Performance Management in WebSphere Environments

Just in time for the upcoming Webinar with The BonTon Stores, were we talk about the challenges in operating complex WebSphere environments, we had another set of prospects running their applications on WebSphere. Francis Cordon, a colleague of mine, shares some of the screenshots resulting from these engagements.

In this blog I want to highlight important areas when managing performance in WebSphere environments. This includes WebSphere Health Monitoring, End-to-End Performance Analysis, Performance and Business Impact Analysis as well as WebSphere Memory Analysis and Management. More details will be discussed during the Webinar on May 25th – so check it out if you are interested.

WebSphere Health Monitoring

WebSphere Application Servers provide many different metrics that we need to consider when monitoring server health. This includes system metrics such as Memory and CPU Utilization. It also includes transaction response times and connection pool usage. The following screenshot shows a dashboard that gives a good overview of the general health of a WebSphere Server:

Monitoring WebSphere Server Health including Memory, CPU, Response Times, Connection Pools and Thread Information

Monitoring WebSphere Server Health including Memory, CPU, Response Times, Connection Pools and Thread Information

From a very high-level perspective we can look at overall response times but also at response times of individual services. The following illustration shows a dashboard that visualizes response times and whether we have any SLA Violations on any of our monitored service tiers:

Easy to spot whether we have any SLA breaches on any of our tiers

Easy to spot whether we have any SLA breaches on any of our tiers

The following dashboard provides an extended in-depth view. Not only does it show response times or memory usage – it also shows which layers of the application contribute to the overall performance and provides an additional overview of problematic SQL Statements or Exceptions:

A more in-depth WebSphere Health Monitor Dashboard including Layer Performance Breakdown, Database and Exeption Activity

A more in-depth WebSphere Health Monitor Dashboard including Layer Performance Breakdown, Database and Exception Activity

End-To-End Performance View

The Transaction Flow Dashlet visualizes how transactions flow through the WebSphere environment. We can look at all transactions, certain business transactions (e.g.: product searches, check-outs, logins, …) or can pick individual ones from specific users. From this high-level flow we can drill down to explore more technical details to understand where time is spent or where errors happen.

The following screenshot shows how to drill into the details of those transactions that cross through a specific WebSphere Server Node. For every transaction we get to see the full execution trace (PurePath) that contains contextual information such as executed SQL Statements, Exceptions, log messages, executed methods including arguments, …

Drill into the transactions flowing through WebSphere. Each individual transaction contains contextual information and provides the option to lookup offending source code

Drill into the transactions flowing through WebSphere. Each individual transaction contains contextual information and provides the option to lookup offending source code

If we want to focus on database activity we simply drill down into the database details. Database activity is captured from within the Application Server including SQL Statements, Bind Variables and Execution Times. The following 3 illustrations show different ways to analyze database activity executed by our WebSphere transactions.

Analyze all queries including bind values that get executed by our WebSphere application. Identify slow ones or those that are executed very often

Analyze all queries including bind values executed by our WebSphere application. Identify slow ones or those that are executed very often

We can pick an individual database statement to see which transaction made the call and how it impacts the performance of this transaction:

Identify the impact of a database query on its transaction. In this case a stored procedure is not returning the expected result and throws an exception

Identify the impact of a database query on its transaction. In this case a stored procedure is not returning the expected result and throws an exception

It is not enough to look at the actual transaction and its database statements. We also monitor performance metrics exposed by the database – in this case it’s an Oracle Database Instance. dynaTrace Users can download the Oracle Monitor Plugin from our Community Portal. You can also read the article on How to Monitor Oracle Database Performance.

Analyze the activity on the database by monitoring Oracle's Performance Metrics and correlate it to our transactional data

Analyze the activity on the database by monitoring Oracle’s Performance Metrics and correlate it to our transactional data

Business Impact Analysis

As many different end users access applications running on WebSphere it is important to identify problems that impact all users but also problems that just impact individual users. The following illustration shows how Business Transactions allow us to analyze individual users, and from there dig deeper in the root cause of their individual performance problems.

Analyze the Performance Impact for individual Users using Business Transactions

Analyze the Performance Impact for individual Users using Business Transactions

Analyzing Memory Usage and Memory Leaks

Memory Management and Analysis can be hard if you don’t know what to look out for. Read our blogs on Top Memory Leaks in Java, Memory Leak Detection inn Production or the Impact of GC on Performance to make yourself familiar with the topic.

The following screenshots show how to analyze memory usage in WebSphere and how to track potential Memory Leaks by following Object Reference Paths of identified Memory Hotspots:

We start by analyzing our memory usage

We start by analyzing our memory usage

Identify Hotspots and the identify the root cause of memory leaks

Identify Hotspots and the identify the root cause of memory leaks

 

Final Words

Thanks again to Francis for sharing his experience with us. Existing dynaTrace customers please check out the content we have on our Community Portal.

For everybody out there I have the final reminder of the upcoming BonTon Webinar. It’s going to take place on May 25th and it’s free to listen in. If you can’t make it you can download the recorded version about a week after the webinar on our Recorded Webinar Resource Page.

Comments

  1. Great article. Thanks a lot.

  2. Using the WebSphere Performance Monitoring Infrastructure (see Resources), you can gather performance data from various WebSphere Application Server components and key parts of the JVM.

  3. you can gather performance data from various WebSphere Application Server components and key parts of the JVM. Thanks a lot for the great information. nexium vs prilosec

Comments

*


2 + four =