Download - Oracle Documentation

Transcript
Interpreting Performance Metrics
Java experiments can not be collected by dbx, because dbx uses a Java Virtual Machine Debug
Interface (JVMDI) agent for debugging. That agent can not coexist with the Java Virtual
Machine Tools Interface (JVMTI) agent needed for data collection.
dbx Experiments on a Running Process
When dbx is used to start an experiment on a running process, it creates the experiment
directory but cannot use the LD_PRELOAD environment variable. dbx makes an interactive
function call into the target to open libcollector.so, and then calls the libcollector.so
initialization routine, just as it does when creating the process. Data is written by
libcollector.so and its modules just as in a collect experiment.
Because libcollector.so was not in the target address space when the process started, any
data collection that depends on interposition on user-callable functions (synchronization tracing,
heap tracing, MPI tracing) might not work. In general, the symbols have already been resolved
to the underlying functions so the interposition can not happen. Furthermore, the following of
descendant processes also depends on interposition, and does not work properly for experiments
created by dbx on a running process.
If you have explicitly preloaded libcollector.so before starting the process with dbx or
before using dbx to attach to the running process, you can collect tracing data.
Interpreting Performance Metrics
The data for each event contains a high-resolution timestamp, a thread ID, and a CPU ID. These
can be used to filter the metrics in the Performance Analyzer by time, thread, or CPU. See the
getcpuid(2) man page for information about CPU IDs. On systems where getcpuid is not
available, the processor ID is -1, which maps to Unknown.
In addition to the common data, each event generates specific raw data, which is described in
the following sections. Each section also contains a discussion of the accuracy of the metrics
derived from the raw data and the effect of data collection on the metrics.
Clock Profiling
The event-specific data for clock profiling consists of an array of profiling interval counts.
On Oracle Solaris, an interval counter is provided. At the end of the profiling interval, the
appropriate interval counter is incremented by 1, and another profiling signal is scheduled. The
array is recorded and reset only when the Solaris thread enters CPU user mode. Resetting the
array consists of setting the array element for the User-CPU state to 1, and the array elements
for all the other states to 0. The array data is recorded on entry to user mode before the array is
Chapter 6 • Understanding Performance Analyzer and Its Data
179