Overview
Welcome to IBM Performance Analysis Tool for Java for Windows.
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.
Other projects
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: