IBM Monitoring and Diagnostic Tools for Java - Health Center Version 2.0
The IBM Monitoring and Diagnostic Tools for Java - Health Center is a free low-overhead diagnostic tool 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
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: 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."
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.
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.