|
What is Performance Analysis Tool for Java?
Performance Analysis Tool for Java™ is much different than other widely available performance tools. Because it does not employ profiling, it does not have high overhead; therefore, the likelihood of possible down time is greatly reduced. This characteristic makes this tool particularly attractive for production environments, where starting and stopping to evaluate performance results can greatly harm productivity.
When a resource is constraining the system, it is crucial to find threads that consume the majority of system resources. Performance Analysis Tool for Java analyzes the Windows® performance log and Java thread dumps and automatically detects Java threads that consume the majority of system resources. Examples of such threads are as follows:
- Processor resource: The amount of processor time for each Java thread can be identified. Monitoring of processor time for each Java thread and of the total processor time provides valuable information about processor use and specific Java threads that consume unexpected amounts of processor resources. Total processor time represents the percentage of elapsed time in which processors are busy executing non-idle Java threads.
- Paging: the amount of input and output going to disk drive paging. It is often useful to be able to monitor the paging use on a system because this use will have a direct effect on the performance of a Java application running on the system: Excessive paging could use substantial hard disk devices. In order to determine the impact of excessive paging on disk activity, monitor the 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 whether performance degradation is caused by the exhaustion of the virtual address space, which is a strong indication of a "native" memory leak rather than a leak involving Java objects.
How does it work?
The target system need not be restarted or interrupted in order to execute Performance Analysis Tool for Java. The target system is configured to monitor system resources using the default tool for monitoring system performance. Processor resource, paging, virtual address space, and other resources can be monitored without any interruption or instability on the target system. This characteristic is critical for a production system running business applications.
When exhaustion of system resources is noticed, the signal QUIT can be sent to target the Java process in order to collect Java thread dumps.
After necessary data is collected, the system can be configured to disable monitoring without interrupting the target system.
Performance Analysis Tool for Java can be invoked to parse the Windows performance log and to analyze Java thread dumps from an IBM Java virtual machine.
The tool calculates system resource use for each process and Java thread and generates charts and tables showing, for example, average processor time for each Java thread, the amount of input and output going to disk drive paging per second, and changes in virtual address space.
After profile data and statistics are calculated for each process and Java thread, the tool searches Java thread dumps to find thread information for each Java thread; thread information includes Java stack trace, native stack trace, execution status, and the Java thread name associated with system resource use.
|