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 gives clear and easy to understand information about performance, memory usage and management, optimization and profiling. Health Center interprets profiling data and provides recommendations to help with problem areas.
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.
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: Synchonization 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.
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.
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.
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 agent must be manually installed in an IBM JVM.
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: