43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
**************************************************************************
|
|
* The following are notes for all scripts that measure on-CPU times.
|
|
*
|
|
* $Id: ALLoncpu_notes.txt 58 2007-10-01 13:36:29Z brendan $
|
|
*
|
|
* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
|
|
**************************************************************************
|
|
|
|
|
|
* What is "on-CPU" time?
|
|
|
|
This is the time that a thread spent running on a CPU. It does not include
|
|
time spent off-CPU time such as sleeping for I/O or waiting for scheduling.
|
|
|
|
On-CPU times are useful for showing who is causing the CPUs to be busy,
|
|
since they measure how much CPU time has been consumed by that thread.
|
|
|
|
On-CPU times are also less susceptible to system "noise" than elapsed times,
|
|
since much of the noise will be filtered out. DTrace itself also tries
|
|
to subtract the small overheads of DTrace from the on-CPU time, to improve
|
|
the accuracy of this time.
|
|
|
|
See Notes/ALLelapsed_notes.txt for a description of a different time
|
|
measurement, "elapsed" time.
|
|
|
|
|
|
* How is "on-CPU" time measured?
|
|
|
|
In DTrace, the following template provides on-CPU time as "this->oncpu",
|
|
|
|
<start-probe>
|
|
{
|
|
self->vstart = vtimestamp;
|
|
}
|
|
|
|
<end-probe>
|
|
{
|
|
this->oncpu = vtimestamp - self->vstart;
|
|
self->vstart = 0;
|
|
...
|
|
}
|
|
|