Analyzing Java applications using IBM Health Center

To improve the performance of a Java™ application, you can use IBM® Health Center to analyze the application. This tool provides recommendations to help you improve the performance and efficiency of your application.

About this task

IBM Health Center is available in the IBM Support Assistant Workbench. These free tools are available to download from IBM as described in the Getting Started guide for IBM Health Center. Try to run the application in a JVM on its own. If you are running a mixed workload in a JVM server, it might be more difficult to analyze a particular application.

Procedure

  1. Add the required connection options to the JVM profile of the JVM server.
    The IBM Health Center documentation describes what options you must add to connect to the JVM from the tool.
  2. Start IBM Health Center and connect it to your running JVM.
    IBM Health Center reports JVM activity in real time so wait a few moments for it to monitor the JVM.
  3. Select the Profiling link to profile the application.
    You can check the time spent in different methods. Check the methods with the highest usage to look for any potential problems.
    Tip: The Analysis and Recommendations tab can identify particular methods that might be good candidates for optimization.
  4. Select the Locking link to check for locking contentions in the application.
    If the Java workload is unable to use all the available processor, locking might be the cause. Locking in the application can reduce the amount of parallel threads that can run.
  5. Select the Garbage Collection link to check the heap usage and garbage collection.
    The Garbage Collection tab can tell you how much heap is being used and how often the JVM pauses to perform garbage collection.
    1. Check the proportion of time spent in garbage collection.
      This information is presented in the Summary section. If the time spent in garbage collection is more than 2%, you might need to adjust your garbage collection.
    2. Check the pause time for garbage collection.
      If the pause time is more than 10 milliseconds, the garbage collection might be having an effect on application response times.
    3. Divide the rate of garbage collection by the number of transactions to find out approximately how much garbage is produced by each transaction.
      If the amount of garbage seems high for the application, you might have to investigate the application further.

What to do next

After you have analyzed the application, you can tune the Java environment for your Java workloads.