Top five Java application performance management tools


Performance tuning of an application helps reduce the issues that arise from performance bottlenecks in an application. Performance tuning is typically attributed to the optimal application response time to a user’s request.  The application response time is acceptable as long as it satisfies the business Service Level Agreement (SLA).

Performance management of an enterprise application involves end to end monitoring and tuning, starting from the Web Server, Application Server, database, MoM and the JVM. However one must include performance parameters related to edge network (F5, ZXTM, etc), Network and OS before certifying the performance of an enterprise application. This posting discusses the tools that support performance management for applications executing in a Java/JEE environment. Typically the data counters that are instrumented by such tools fall in these categories: Web Container, EJB container, JDBC Connection Pool, JVM, Java socket connections, Java I/O, Java process CPU utilization and associated threads with each of the executable queue’s, for example Web Container Thread Pool.

1. CA Wily Introscope

Arguably CA Wily Introscope is the market leader in the application performance management segment. Introscope uses an agent based technology for data collection. The agent is deployed on the server hosting the Java application that instruments the application in real time by modifying the application’s compiled byte code. The instrumented data is then transferred over to a centralized server, to be persisted in a database. This persisted data is later used for conducting offline or real time analysis. Since the agent merely instruments the data, there is no overhead incurred from the agent on the application. The genius of the tool is in its simplicity and the minimal overhead on the application response time, even under a stress test. Introscope provides a comphrensive list of instrumented data counters for performance monitoring and tuning. Though originally the tool supported only applications based on Java/JEE, however, it later extended support to MS .net applications.

2. Dynatrace Diagnostics

Dynatrace Diagnostics is similar to Introscope in some capabilities and using the agent topology for data collection. However they use a proprietary technology called “Purepath” for application instrumentation, rather than byte code wrapping. Dynatrace showcases its strength in the monitoring of remote calls by presenting a complete list of data counters per remote call executed across Java or .net applications. For example, the data counters associated with remote calls are: bytes transferred per request & response, object count per request/response, time spent in serialization/de-serialization, response time associated with client/server, network latency among others. Dynatrace provides an aesthetically appealing GUI and supports applications based on Java/JEE and .net platforms.

3.Quest PerformaSure

Quest Software is the maker of popular Java memory profiler called JProbe.  However Quest PerformaSure fills the gap in identifying performance related issues across application’s tiers including web servers and databases. Arguably PerformaSure is the only product that supports the most Java Application Servers, operating systems and databases. PerformaSure like the above two tools, uses an agent based architecture to collect instrumentation data however employing a proprietary technology called “Tag and Follow” for collecting data at a transaction level, for analysis. The unique features in PerformaSure are, a SQL Browser for diagnosing SQL query related issues from a Java application and a tree based view of method calls to identify resource contention in method calls. The amount of instrumented data that can be collected is configurable however it has a slight overhead associated with it.

4.HP Business Availability Centre (HP Diagnostics)

HP Business Availability Centre (BAC) is one of the most sophisticated tools to measure performance, availability and in reporting on the business impact of an issue. HP BAC is a collection of products, each product focusing on one area related to performance , availability management that integrate with a CMDB and other Service Management components to provide a business centric view of the performance issues. While HP BAC uses synthetic transactions to monitor the user’s perceived performance, however, this may not report the actual user’s experience of a website, especially, if your user base is geographically dispersed.  One of the products in HP BAC suite for finding root cause of a performance issue is HP Diagnostics. HP Diagnostics provides a low overhead and comphrensive performance management solution supporting traceability of an issue across tiers. However the value add of using HP Diagnostics for performance management, is realized only when it is integrated with HP BAC.

5.IBM Tivoli Composite Application Manager

Like HP, IBM offers a suite of products for enterprise management under the brand name Tivoli Monitoring. However, for application performance management, IBM Tivoli Composite Application Manager (ITCAM) can be used. ITCAM provides end to end application performance management capabilities and probably the only product that provides traceability across tiers including middleware such as Websphere MQ and Websphere Broker, and virtual servers (e.g. VMware ESX) among other components. ITCAM can be integrated with other IBM Tivoli products (such as Tivoli Netcool Omnibus, Impact and Webtop) to provide a comprehensive management and availability picture of an enterprise.

Other articles/postings of possible interest:

1. To scale out or not using Gigaspaces

2. AdventNet, one product for all performance/service management needs

3. Gnip, Online Message Oriented Middleware (MoM)