Introduction to the IBM Health Center
IBM Health Center: Part 2 (Installing and Launching Health Center)
IBM Health Center: Part 3 (Brief about Subsystems)
New Features in the IBM Health Center 1.3
New Features in the IBM Health Center 2.0The IBM Health Center is a low overhead monitoring tool available in the IBM Support Assistant which runs alongside a Java application which uses IBM SDK and provides a comprehensive view of the "health"
of various subsystems. Developers, performance engineers and
practitioners can use the IBM Health Center tool to quickly identify any
performance bottlenecks and improve the efficiency of the application. Introduction to the IBM Health Center IBM Health Center: Part 2 (Installing and Launching Health Center) IBM Health Center: Part 3 (Brief about Subsystems) New Features in the IBM Health Center 1.3
The latest version is Health Center 2.0 (released in December 2011) and new features in version 2.0 include: 1. A new threads perspective showing the states of all the current threads in the application and whether they own or are blocked on a lock. This is useful for identifying lock contention issues resulting in bad application performance. Enabled by default when Health Center starts analysing data. 2.Native memory view now gives a breakdown of where the native memory is being used. So for example, you can see how much native memory is being used by each component(for example class libraries or by the JIT or by the VM). Enabled by default when Health Center starts analysing data. 3.New Method Trace perspective shows accurate timings for method calls, and
an analysis of method use across the running threads. 4.Health Center is now late attach enabled. That means you can attach it to a running JVM (that has the late attach functionality) removing the need to have started it with the application. Very useful for environments where you only want to analyse data when a problem occurs rather than for the duration of the application. 5."Headless" data collection can now be configured to collect data in timed chunks. This means you can configure Health Center to automatically collect chunks of data without having to have the client connected. For example, headless mode can be configured to collect chunks of 10 minutes worth of data once an hour. This data can then be analysed later in the client. 6.Verbosegc data collection can be turned on at run time through the Health Center client. Useful if you wish to see more detailed Garbage collection behaviour using GCMV but don't want to stop & start the application to turn verbosegc on. 7.The connection between the client and the health center agent can now be encrypted with SSL. 8.Detect code which is allocating excessive numbers of objects. This requires configuration at run time to specify the size of the objects that you wish to be informed on. 9.Updates to the WebSphere Realtime view that enable automatic detection of outliers in each of its views along with probable reasons for those outliers. Enabled by default when Health Center starts analysing data from a Realtime jvm
Future blog posts will describe some of these new capabilities in detail with example problem scenarios.
|
How to run IBM Health Center with Headless ModeYou can collect Health Center data for offline
analysis (without the Graphical User Interface) using the Headless mode. The
headless mode is typically useful for monitoring applications behind firewalls.
To enable Headless mode, users should specify the headless option in
healthcenter.properties file. The agent starts collecting data immediately. When the application terminates, the agent creates a file called healthcenter.hcd and will be written to the current working directory if directory is not specified explicitly.
|
Details about Java Method Profiling in the IBM Health CenterThe Health Center uses a sampling method profiler to diagnose applications showing high CPU usage giving full call stack information for all sample methods. Health Center works without recompilation or bytecode instrumentation and shows where the application is spending its time. ![]() In Method profile view, Self (%) is the percentage of samples taken while a particular method was being run at the top of the stack which is a good indicator of how expensive a method is in terms of using processing resource. Wider, redder bars in the graphical representation of Self (%) indicate hotter methods. Tree (%) is the percentage of samples taken while a particular method was
anywhere in the call stack. This value shows the percentage of time that this
method, and methods it called (descendants), were being processed. This value
gives a good guide to the areas of the application where most processing time
is spent. For example, the selected method testApplication.createLargeObjects() has majority of invocations (66.6% of samples) made through testApplicationSink.put() and has 33.3% of samples containing the invocations made through testApplicationSink.get() method. The Called methods tab shows the methods that were called by the highlighted method. In other words, they show where the highlighted method is doing its work. |
Details about Garbage Collection Subsystem in the IBM Health CenterGarbage Collection is the most significant performance bottleneck for Java applications. 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. The Garbage Collection Subsystem
provides views into java heap usage and Garbage Collection pause times plotted
over time.
![]() ![]() The Summary section provides an overview of object allocation and Garbage Collection. Key observations and recommendations are highlighted in the Analysis and Recommendations section. (Identifying memory leaks, excessive amount of time expended in Garbage Collection, suggestions on resizing heap are examples). The Object Allocation view in the Garbage Collection Subsystem allows users to view the size, time and code location of an object
allocation request that meets specific threshold criteria. Under the
"Object Allocations" view, users can track the object allocations
within a specified object size range with the stack trace of the allocating
thread. Maximum
Stack depth is configurable. Based on the visualization and recommendation provided in the Garbage Collection Subsystem of the Health Center, deeper analysis can be done through Garbage Collection and Memory Visualizer Tool (GCMV), a tool to profile Garbage collection activity which can also be installed in IBM Support Assistant. |
New Features in the IBM Health Center 1.3The IBM Health Center is a low overhead monitoring tool available in the IBM Support Assistant which runs alongside a Java application which uses IBM SDK and provides a comprehensive view of the "health" of various subsystems. Developers, performance engineers and practitioners can use the IBM Health Center tool to quickly identify any performance bottlenecks and improve the efficiency of the application. Refer the following blog posts which talk about Introduction to the IBM Health Center IBM Health Center: Part 2 (Installing and Launching Health Center) IBM Health Center: Part 3 (Brief about Subsystems) The latest version of Health Center (version 1.3) comes with some very useful new features.
1. The UI design has been improved to make graphs clearer and more readable.2. Dump collection is available with Health Center Client.
![]() ![]() ![]() ![]() ![]() 3. Trace points can be enabled/disabled at runtime through a new trace interface.
4. Performance enhancements improve the connection time between the client and monitored applications. |
Is my application “healthy”? IBM Health Center: the new age profiling capability for Java applications: Part 1In today’s complex and integrated environments, the ability to determine the “health” of an application quickly assumes high importance. The IBM Health Center is a light-weight profiling tool that provides a comprehensive view of the “health” of various subsystems for any Java based application. Developers, performance engineers and practitioners can use the IBM Health Center tool to quickly identify any performance bottlenecks which is specifically helpful in an agile development environment. Designed to attach to a running Java process to explore what it is doing, how it is behaving, and what you could do to make it happier. The IBM Health Center attempts to answer some of the following common questions that developers, performance engineers, service personnel and WebSphere administrators often ask:- What is my Java application doing ? Why is it doing that ? Why is my application going so slowly ? How can I make it go faster ? Is my application scaling well ? Is our algorithm sensible ? Do we need to tune the Java Virtual Machine ? Is my configuration sensible ? Is the system stable ? Have I got a memory leak ? Is the application about to crash ? Classes, Environment, Garbage Collection, Locking and Method Profiling, Native Memory, I/O are areas of JVM activity which can be viewed and receive recommendations on, from the Health Center tool. The Health Center summary will indicate if there are any potential problems with the particular subsystem (indicated in Red color), or tuning suggestions for optimizing the subsystem further (indicated in Amber) and an indication of a healthy subsystem (with no problems) denoted in Green color The IBM Health Center not only provides a visualization into the various subsystems of the JVM from a performance and reliability perspective but also provides a set of recommendations that can be applied to alleviate the identified problems. The performance overhead of the tool is negligible and can be deployed on production systems. The IBM Health Center is available via the IBM Support Assistant framework. (www.ibm.com/software/support/isa/ ) The latest version of Health Center (version 1.3) comes with some very useful new features. Options are available now in Health Center for you to generate dumps (Heap Dump, System Dump and Java Dump) at Runtime for more detailed analysis. For example, if the Health Center reports increasing heap usage over time and indicates a possible memory leak, you can generate a Heap Dump for further offline analysis. Health Center 1.3 now supports enablement of native trace points and the ability to disabling systems selectively to configure data collection to only monitor areas of interest. An interesting youtube video providing a quick introduction to IBM Health Center: http://www.youtube.com/watch?v=5Tcktcl0qxs The next couple of blog posts on this subject will cover the steps to install and launching the IBM Health Center and a detailed description of the various subsystems it profiles and provides recommendations on.
|