HPjmeter 4.2 Users Guide
Document Notice
Table of Contents
Monitoring Applications
Analyzing Garbage Collection Data
116
Unfinalized Objects
Live Objects Bytes
197
187
192
199
Typographic Conventions
About This Document
Intended Audience
Additional HPjmeter Documents Related Information
Publishing History
HP Encourages Your Comments
Features
Introducing HPjmeter
Node Agent
Concepts
JVM Agent
Agent Requirements
Completing Installation of HPjmeter
Platform Support and System Requirements
Console Requirements
Attaching to the JVM Agent of a Running Application
Completing the installation
File Locations
Preparing to run Java
Example Usage
On Java
Selecting Other JVM Agent Options
JVM Agent Options
Showing Version Information
Include=filter1filter2..., exclude=filter1filter2
To specify a file name
Noalloc
Working with Firewalls
Security Awareness
JVM Options Usage Examples
Configuring User Access
Using HPjmeter to Monitor Applications
Getting Started
To connect to a node agent via a SecureShell SSH tunnel
Using HPjmeter to Monitor Applications
Set Session Preferences
When the Optional Port Box Is Not Used
Getting Started
View Monitoring Metrics During Your Open Session
Using HPjmeter to Analyze Profiling Data
Changing Session Preferences During a Session
Configure your application
Using HPjmeter to Analyze Garbage Collection Data
Monitoring Demonstration Instructions
Memory Leak Applications
Thread Deadlock Sample
See also Heap Usage Notification
Thread Deadlock Example Display
Controlling Data Collection and Display
Setting Data Collection Preferences
Monitoring Applications
Running Node Agent as a Daemon
Managing Node Agents
Managing Node Agents On HP-UX
Verifying HP-UX Daemon is Running
Running Multiple Node Agents
Node Agent Access Restrictions
Saving Monitoring Metrics Information
Stopping Node Agents
Saving Data from the Console
Diagnosing Errors When Monitoring Running Applications
Naming Monitoring Data Files
Identifying Unexpected CPU Usage by Method
Checking for Long Garbage Collection Pauses
Checking for Application Paging Problems
Viewing the Application Load
Identifying Excessive Calls to System.gc
Reviewing the Percentage of Time Spent in Garbage Collection
Monitoring Applications
Determining the Severity of a Memory Leak
Checking for Proper Heap Sizing
Confirming Java Memory Leaks
Identifying Abnormal Thread Termination
Identifying Excessive Object Allocation
Identifying the Site of Excessive Object Allocation
Identifying Multiple Short-lived Threads
Identifying Excessive Thread Creation
Identifying Excessive Lock Contention
Identifying Deadlocked Threads
Identifying Excessive Method Compilation
Example Metric Method Compilation Count
Using the JMX Viewer
Identifying Too Many Classes Loaded
Understanding the JMX Summary View
JMX Summary Tab
Appearance of the Summary JMX Viewer When First Opened
JMX Memory Tab
JMX Viewer with Summary Memory Tab Selected
JMX Threads Tab
JMX Viewer with Summary Threads Tab Open
JMX Notifications Tab
Changing Mbean Values and Monitoring the Result
JMX Runtime Tab
Using the Functions in the JMX Server View
MBean Filter
MBean Attribute Tab
MBean Operations Tab
10 MBean Operations Tab Open for Display
MBean Notifications Tab
MBean Information Tab
12 MBean Information Tab Open for Display
Profiling Applications
Profiling Overview
Sampling
Tuning Performance
Tracing
Preparing a Benchmark
Collecting Profile Data
Profiling with -Xeprof
If timeon=sig... has not been specified, the default is
Profiling with Zero Preparation
Profiling with -agentlibhprof
Following options are useful
Supported -agentlibhprofoptions
Naming Profile Data Files
Generate more complete call graphs
Inclusive Method CPU Times
Profiling with -Xeprof Profiling with -agentlibhprof
Looking at the Data from the Bottom Up
Approaches to Analyzing Performance Data
Considerations in Interpreting the Data
Looking at the Data from the Top Down
Time Units
Locating Summary Information for Saved Data Sets
Inclusive Versus Exclusive Time
CPU Versus Clock Time
Adjusting Scope
Estimate menus
Comparing Profiling Data Files
Scaling Comparison Data
Reading Profiling Histograms
Key to Thread States Reported by
Interpreting the Histogram Presentation
Using Call Graph Trees
Interpreting Call Graph Data
Example of Node Color Display
Tree Pruning
Using Sub-Trees
Options for Manipulating the Call Tree Display
Auto-Expanding the Call Tree
Using Heuristics to Locate Possible Hot Spots
Searching the Trees
Using Heuristics to Locate Possible Hot Spots
Data Collection with -Xverbosegc
Analyzing Garbage Collection Data
Obtaining Garbage Collection Data
Java ... -Xverbosegchelp
13, Old generation, in bytes. These spaces are reported
Collecting GC Data with Zero Preparation
Collecting Glance Data for Viewing in HPjmeter
Data Collection with -Xloggc
Related Topics
Using -XX+PrintGCDetails and -XX+PrintHeapAtGC Together
Naming GC Data Files
Comparing Garbage Collection Data Files
Basic Garbage Collection Concepts
Key to Garbage Collection Types Recognized by HPjmeter
Understanding the Summary Presentation of GC Data
Common Garbage Collection Types Recognized by HPjmeter
Summary Panel Showing Garbage Collection Statistics
Understanding the System Details Captured with GC Data
Basic Garbage Collection Concepts
Analyzing Garbage Collection Data
Starting the Console
Using the Console
Using the Main Window Functions
Data Representation
Main Console Window
JVM Agent
Icons and Their Meaning
Node Agent
Saving Data
Open and Cached Sessions
Time Slice Entries
Console Tool Bar Buttons
Console Menu Choices
Monitor Menu
Remember Main Window Location
Console Guide
Console Guide Location and First Screen
Specifying Metrics to Collect for Monitoring
Setting Monitoring Session Preferences
Status Bar
Enabling Monitoring Alerts
Adding Filters
Specifying Filters for Monitoring
Editing Filters
Specifying Filter Sets
Using Alerts
Viewing Monitoring Data in HPjmeter
Appearance of Alert Threshold in GC Duration Visualizer
Using the Alert Controller
Appearance of Alert Notices in the Main Console Pane
Alert Controller Window
Editing E-mail Notification Attributes
Viewing a Log of the Alert History
Responding to Alerts
Abnormal Thread Termination Alert
Identifying Abnormal Thread Termination Thread Histogram
GC Duration Notification
Expected Out Of Memory Error Alert
Excessive Compilation Alert
Heap Usage Notification
Java Collection Leak Locations Alert
Array Leak Locations Alert
13 Java Collection Leak Locations Visualizer
Process CPU Usage Alert
14 Array Leak Locations Visualizer
System CPU Usage Alert
Thread Deadlock Alert
Unfinalized Queue Growth
Using Visualizer Functions
Profiling Data Viewer
Using Monitoring Displays
Locating Information About a JVM and its Environment
Monitor Code and/or CPU Activity Menu
Java Method HotSpots
Details
Thrown Exceptions
Thrown Exceptions with Stack Traces
Monitoring Metric Thrown Exceptions with Stack Traces
Monitor Memory and/or Heap Activity Menu
Heap Monitor
Garbage Collections
Monitoring Metric Garbage Collections
GC Duration
Percentage of Time Spent in Garbage Collection
Unfinalized Objects
Allocated Object Statistics by Class
Allocating Method Statistics
Current Live Heap Objects
Name of class to which object belongs
Monitor Threads and/or Locks Menu
Thread Histogram
Already acquired by another thread
Lock Contention
14 Monitoring Metric Lock Contention
Monitor JVM and/or System Activity Menu
Method Compilation Count
Method Compilation Frequency
Loaded Classes
Percent % CPU Utilization
17 Monitoring Metric Loaded Classes Related Topics
Using Profile Displays
Viewing Profiling or GC Data in HPjmeter
Using Visualizer Functions
Inline Candidates Exceptions Thrown Memory Leaks
Method Call Count
Menu Choices
Profile Code and/or CPU Activity
Call Graph Tree with Call Count
Exclusive Method Times CPU
Exclusive Method Clock Times
Inclusive Method CPU Times
Call Graph Tree with CPU
Call Graph Tree with Clock Time
Inclusive Method Clock Times
Average Inclusive Method Clock Times
Average Exclusive Method Clock Times
Average Inclusive Method CPU Times
Starvation by Method
Methods with Loops
Profile Memory and/or Heap Activity
Starvation Ratio
Exclusive Class CPU Times
Created Objects Bytes
Objects Created by Method
Created Objects Count
Live Objects Count
Reference Graph Tree
Reference Sub-Trees by Size
Using Profile Displays
For string and char arrays, see String and char arrays
21 Long String Pop-up Box
Class Loaders
23 Class Loaders Visualizer
24 Class Types Pop-up Window Guidelines
Residual Objects Bytes
Profile by Threads
Residual Objects Count
Threads Histogram
Profile by Locks
Thread Groups Histogram
Contested Lock Claims by Method
Lock Delay Method Exclusive
Lock Delay Call Graph Tree
All Lock Claims by Method
Average Exclusive Method Lock Delay
Lock Delay Method Inclusive
Lock Contention Ratio by Method
Exclusive Method Lock Delay / Clock Time
Inline Candidates
Using Heuristic Metrics from the Estimate Menu
Exclusive Class Lock Delay
Exceptions Thrown
Using Specialized Garbage Collection Displays
Heap Usage After GC
Duration Stop the World
27 GC Metric Heap Usage After GC Related Topics
Cumulative Allocation
28 GC Metric Duration Related Topics
Creation Rate
29 GC Metric Cumulative Allocation Related Topics
Allocation Site Statistics
30 GC Metric Creation Rate Related Topics
31 GC Metric Combined Sets of Allocation Site Statistics
32 GC Metric Separated Sets of Allocation Site Statistics
Using Visualizer Functions
Filter Field Descriptions
Using Visualizer Functions
User-Defined X-Y Axes
Multiple User-Defined
37 User-Defined Comparisons of GC Metrics Related Topics
38 Multiple User-Defined Metrics
Glance Data
40 GC Metric Glance Data
41 Glance Data Metric Configuration Box
Run Queue Average
Glance System Call Data
Are private
42 GC Metric Glance System Call Data
Using Visualizer Tool Bars
Common Tool Bar Buttons
Tool Bar Buttons for Manipulating Garbage Collection Data
Tool Bar Buttons for Manipulating Tabular Data
Tool Bar Buttons for Manipulating Graphical Data
Special Button or Other Gadget Functions
Mark an Item for Search
Find a Search Pattern
44 Locating an Item
Pause or Resume Graphical Time-based Scrolling
Changing Time Interval in GC Data Visualizers
46 The View Menu Selections in the GC Viewer
Using Visualizer Tool Bars
Changing Time Interval in Monitoring Visualizers
Change Color Selection for Histogram Display
50 Time Interval Use in a Monitoring Visualizer
Thread Histogram Profile by Threads
Understanding How HPjmeter Works
Performance Overhead on Running Applications
Console Overhead
Using Confidence Interval to Indicate Sample Validity
Data Sampling Considerations
How Memory Leak Detection Works
Related Topics
Page
Documentation and Support
Troubleshooting
Installation
Identifying Version Numbers
Console
See also To Take Advantage of Dynamic Attach
If you see this JVM agent error on startup
JVM agent
Node agent
Zero Preparation Profiling
Unexpected Behavior in Visualizers
Connecting to the HPjmeter Node Agent
Quick References
Start and stop verbose GC data 0.14 0.02
Active mode
Glossary
Jvmpi
SSL
Symbols
Index
Alert Notification Editor, 107 alerts
Restore Roots
Alert Notification Editor, 108 count
Collecting with zero preparation, 83 GC event
Glance system call data, 174 graphical scrolling
JVM
Duration Stop the World, 158 enable, 99
User-Defined X-Y Axes for GC analysis, 167 viewing, 29
Program termination, 47 overhead
Scale Special, 72 scaling data
Xeprofoptions
Xbootclasspath