IBM Performance Analysis Tool for Java for Windows

Version 2.1

Created by Jinwoo Hwang (jinwoo@us.ibm.com)

Welcome to IBM Performance Analysis Tool for Java for Windows.

IBM Performance Analysis Tool is one of Jinwoo Hwang's garage projects. The following is the list of garage projects ranking top downloads at alphaWorks:

The following is list of Jinwoo Hwang's other tools:

IBM Performance Analysis Tool for Java help you detect Java threads that consume unanticipated large amounts of system resources You can find more information at http://www.alphaworks.ibm.com/tech/pat4j

Business Objectives

To provide automatic detection of Java threads that consume the majority of system resources (processor, paging activity and virtual address space) and that cause performance degradation all without interruption of a target system which is critical to production systems running business applications 24x7.

Features

  • Processor Time analysis
  • Average Processor Time analysis
  • Thread dump analysis
  • Processor Time chart view
  • Paging Activity chart view
  • Process Virutal Address Size chart view
  • Java and native stack trace view of threads
  • Description

    The Performance Analysis Tool presented here is much different from other performance tools that are widely available. Because it does not employ profiling, it does not have the high overhead dependency and greatly reduces the likelihood of possible down time when concurrently running the profiler. This makes this tool particularly attractive for production environments, where starting and stopping to evaluate the performance results can greatly harm one's productivity.

    When resource is constraining the system, it is crucial to find threads that consume majority of system resources if any. This technology analyzes Windows performance log and Java thread dumps and automatically detect Java threads that consume majority of system resources, for example :

  • Processor resource : The amount of processor time for each Java thread can be identified. Monitoring processor time for each Java thread and total processor time provides valuable information about processor utilization and specific Java threads that consume unexpected amount of processor resource. Total processor time represents the percentage of elapsed time that processors are busy executing non-idle Java threads.

  • Paging: The amount of input/output going to disk drive paging. It is often useful to be able to monitor the paging usage on a system, as this will have a direct effect on the performance of a Java application running on the system because an excessive paging could make substantial utilization of hard disk devices. To determine the impact of excessive paging on disk activity, monitor paging. If paging is constantly large, adding more physical memory is recommended.

  • Memory: Virtual address space. Monitoring the process size makes it possible to determine if performance degradation is caused by the exhaustion of the virtual address space, which is a strong indication of a "native" memory leak rather than one involving Java objects.

    How does this technology work

    Target system does not need to be restarted or interrupted to execute the technology.

  • Target system is configured to monitor system resources using default system performance monitoring tool. Processor resource, paging, virtual address space and other resources can be monitored without any interruption and instability on target system. This is critically important for production system running business applications.

  • When system resource exhaustion is noticed, signal QUIT can be sent to target Java process to collect Java thread dumps.

  • After necessary data is collected, system can be configured to disable monitoring without interrupting target system.

  • Finally Performance Analysis Tool for Java can be invoked to parse Windows performance log and analyzes Java thread dumps from IBM Java virtual machine.

  • It calculates statistics of system resource usage for each process and Java thread and generates charts and tables, for example average processor time per each Java thread, the amount of input/output going to disk drive paging per second and changes in virtual address space .

  • After system resource profiling data and statistics are calculated for each process and Java thread, it searches Java thread dumps to find thread information for each Java thread, for example Java stack trace, native stack trace, execution status and Java thread name associated with system resource utilization

    Unique Characteristics

    This technology does not require any additional profiling components or 3rd party libraries that are oftentimes intrusive, and can cause large amounts of overhead and results in system instability which is undesirable for production use. This technology is suitable primarily on production systems, since it does not require interruption of target system to enable or disable system resource monitoring. It provides overall system resource usage for Java threads, execution status of Java threads and stack trace of Java threads along with a user friendly graphical interface. Normally, the expectation is to only receive just processor usage monitoring when employing profiling methods, whereas with this tool, the effects on performance of paging, disk I/O and virtual memory size are also reported.

    Copyrights and Notices

    (C) Copyright IBM Corporation 2008,2009. All Rights Reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

    AIX, Cloudscape, DB2, IBM, iSeries, OS/390, WebSphere, and z/OS are trademarks or registered trademarks of IBM Corporation in the United States and/or other countries.
    Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States and/or other countries.
    Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation in the United States and/or other countries. UNIX is a registered trademark of The Open Group.
    Other company, product, and service names may be trademarks or service marks of others.
    The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law:

    INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS TOOLS "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the tool. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this tools at any time without notices.