The profile provider provides probes associated with a time-based
interrupt firing every fixed, specified time interval. Such unanchored
probes are not associated with any particular point of execution, but rather with
the asynchronous interrupt event. You can use these probes to sample some aspect of system
state and then use the samples to infer system behavior. If the sampling rate is high, or the
sampling time is long, an accurate inference is possible. Using DTrace actions, you can use
the profile provider to sample practically anything in the system. For
example, you could sample the state of the current thread, the state of the CPU, or the
current machine instruction.
tick- probes fire at fixed intervals at a
high interrupt level on only one CPU per interval. The actual CPU may change over time. The
value of nn defaults to rate-per-second, but may also have an
optional time suffix as shown in the following table:
Table 11.1. Valid Time Suffixes
Suffix | Time Units |
|---|---|
| nanoseconds |
| microseconds |
| milliseconds |
| seconds |
| minutes |
| hours |
| days |
| hertz (frequency per second) |
tick- probes have several uses,
such as providing some periodic output or taking a periodic action.n
By default, the highest supported tick frequency is 5000 Hz
(tick-5000).
Unlike other providers, the profile provider creates probes
dynamically on an as-needed basis. Thus, the desired probe might not appear in a listing of
all probes (for example, by using dtrace -l -P profile) but the probe is
created when it is explicitly enabled.
The profile provider uses DTrace's stability mechanism to describe
its stabilities as shown in the following table.
Element | Name Stability | Data Stability | Dependency Class |
|---|---|---|---|
Provider | Evolving | Evolving | Common |
Module | Unstable | Unstable | Unknown |
Function | Private | Private | Unknown |
Name | Evolving | Evolving | Common |
Arguments | Evolving | Evolving | Common |
For more information about the stability mechanism, see Chapter 14, Stability.