Page navigation
IBM provides tooling and documentation to assist in the understanding, monitoring, and problem diagnosis of applications and deployments running IBM Runtime Environments for Java.
What's new in this release
New features in 2.1 allow you to:
- Extract live data generated by Health Center for use in your applications using the Health Center API.
- Detect deadlock conditions in your application
- Gather class histogram data
Health Center Overview
The IBM Monitoring and Diagnostic Tools for Java - Health Center is a free low-overhead diagnostic tool and API for monitoring an application running on an IBM Java Virtual Machine.
The IBM Monitoring and Diagnostic Tools for Java - Health Center (Health Center) enables you to assess the current status of a running Java application. Health Center continuous monitoring provides information to identify and help resolve problems with your application:
- Identify if native or heap memory is leaking
- Discover which methods are taking most time to run
- Pin down I/O bottlenecks
- Visualize and tune garbage collection
- View any lock contentions
- Analyse unusual WebSphere® Real Time events
- Monitor your applications Thread activity
- Detect deadlock conditions in your application
- Gather class histogram data
Use Health Center to help you:
- Optimize application performance
- Improve application stability and uptime
- Reduce system resource usage
- Reduce the time to resolve problems
- Drive down development and maintenance costs
- Trigger System dumps for analysis in IBM Monitoring and Diagnostics Tools for Java Memory Analyser
- Turn on verbosegc collection for analysis in IBM Monitoring and Diagnostics Tools for Java Garbage Collection and Memory Visualizer
Features and benefits
Health Center is a very low overhead monitoring tool. It runs alongside an IBM Java application with a very small impact on the application's performance. Health Center monitors several application areas, using the information to provide recommendations and analysis that help you improve the performance and efficiency of your application. Health Center can save the data obtained from monitoring an application and load it again for analysis at a later date.
Version 2.1 of the Health Center introduces a new comprehensive API which gives your application code access to the same live data used by the Health Center client. This allows you to write specific event driven code based on the behaviour of the monitored application. For more detail please refer to Health Center API documentation.
Health Center provides visibility, monitoring and profiling in the following application areas:
-
Performance
-
Java method profiling: The Health Center uses a sampling method profiler to diagnose applications showing high CPU usage. It's
low overhead which means there is no need to specify in advance which parts of the application to monitor, the Health Center simply monitors everything.
It works without recompilation or byte code instrumentation and shows where the application is spending its time, by giving full call stack information
for all sampled methods.
-
Lock analysis: Synchronization can be a big performance bottleneck on multi-CPU systems. It is often difficult to identify a hot lock
or assess the impact locking is having on your application. Health Center records all locking activity and identifies the objects with most contention.
Health Center analyses this information, and uses it to provide guidance about whether synchronization is impacting performance
-
Garbage collection: The performance of Garbage Collection (GC) affects the entire application. Tuning GC correctly can potentially
deliver significant performance gains. Health Center identifies where garbage collection is causing performance problems and suggests more appropriate
command line options.
-
Threading: Thread behaviour in an application can have a major impact on your applications performance. Thread contention issues can
often be difficult to find. Health Center identifies which threads are holding onto locks and which ones are blocked, assisting in the resolution of contention issues.
-
Java method profiling: The Health Center uses a sampling method profiler to diagnose applications showing high CPU usage. It's
low overhead which means there is no need to specify in advance which parts of the application to monitor, the Health Center simply monitors everything.
It works without recompilation or byte code instrumentation and shows where the application is spending its time, by giving full call stack information
for all sampled methods.
-
Memory usage
The Health Center will identify if your application is using more memory than seems reasonable, or where memory leaks occur. It then suggests solutions to memory issues, as well as Java heap sizing guidance.
-
System Environment
Health Center uses an 'environment perspective' to provide details of the Java version, Java classpath, boot classpath, environment variables, and system properties. This is particularly useful for identifying problems on remote systems or systems where you do not control the configuration. If the Health Center detects misconfigured applications, it will provide recommendations on how to fix it.
-
Java Class loading
Health Center provides class loading information, showing exactly when a class has been loaded and whether it is cached or not. This helps you determine whether your application is being affected by excessive class loading.
-
File input and output
Health Center uses an 'I/O perspective' to monitor application input or output (I/O) tasks as they run. You can use this perspective to monitor how many and which files are open, and to help solve problems such as when the application fails to close files.
-
Real Time Monitoring
The WebSphere® Real Time perspective (WRTP) helps you identify unusual or exceptional events that might occur when you run a WRT application. The trace information can be presented in various ways, including linear or logarithmic scales, and histograms. WRTP provides some pre-defined trace point views that are especially helpful.
-
Object Allocations
Health Center allows you to view the size, time and code location of an object allocation request that meets specific threshold criteria.
These features are highlighted in the videos:
- What's new in version 2.1 of the Health Center
- What's new in version 2.0 of the Health Center
- What's new in version 1.3 of the Health Center
- What's new in version 1.2 of the Health Center
- Overview of Health Center
Health Center is delivered in the IBM Support Assistant (ISA) Workbench. ISA is a free software offering which provides a single point of access for the IBM Monitoring and Diagnostic Tools for Java. When new versions of the tools become available ISA notifies you and helps you retrieve the latest version. Using ISA helps you troubleshoot and fix problems in your Java application.
For example Figure 1 shows a Health Center profiling session running in the IBM Support Assistant Workbench.
System requirements
The Health Center tool is provided in two parts:
- The Health Center client is installed within the IBM Support Assistant Workbench.
- The Health Center agent provides the mechanism by which the Health Center client obtains information about your Java application.
The minimum Java level for the agent is IBM Java 5 SR8 or IBM Java 6 SR1.
The supported platforms for the Health Center agent are:
- AIX® PowerPC® 32 bit
- AIX® PowerPC® 64 bit
- zOS® 31 bit
- zOS® 64 bit
- Windows® x86 64 bit
- Windows® x86 32 bit
- Linux® x86 64 bit
- Linux® x86 32 bit
- Linux® PowerPC® 32 bit
- Linux® PowerPC® 64 bit
- Linux® s390 31 bit
- Linux® s390 64 bit
- IBM i
Installation
To install Health Center either follow both the installation and enablement guides on YouTube™, or follow this getting started guide.
Contact information
For comments specific to this download please send mail directly to us.
Speak to the developers at the Health Center forum.


