NAME
dtrace_io
—
a DTrace provider for tracing events
related to disk I/O
SYNOPSIS
io:::start
(struct
bio *, struct devstat
*);
io:::done
(struct
bio *, struct devstat
*);
DESCRIPTION
Theio
provider allows the tracing of disk I/O events.
The
io:::start
()
probe fires when a I/O request is about to be sent to the backing driver of a
disk(9) object. This occurs after all
GEOM(4) transformations have been performed on the request. The
io:::done
()
probe fires when a I/O request is completed. Both probes take a
struct bio * representing the I/O request as their first
argument. The second argument is a struct devstat * for
the underlying disk(9) object.
ARGUMENTS
The fields of struct bio are described in the g_bio(9) manual page, and the fields of struct devstat are described in the devstat(9) manual page. Translators for the bufinfo_t and devinfo_t D types are defined in /usr/lib/dtrace/io.d.
FILES
- /usr/lib/dtrace/io.d
- DTrace type and translator definitions for the
io
provider.
EXAMPLES
The following script shows a per-process breakdown of total I/O by disk device:
#pragma D option quiet io:::start { @[args[1]->device_name, execname, pid] = sum(args[0]->bio_bcount); } END { printf("%10s %20s %10s %15s\n", "DEVICE", "APP", "PID", "BYTES"); printa("%10s %20s %10d %15@d\n", @); }
COMPATIBILITY
This provider is not compatible with the
io
provider found in Solaris, as its probes use
native FreeBSD argument types.
SEE ALSO
HISTORY
The io
provider first appeared in
FreeBSD 9.2 and 10.0.
AUTHORS
This manual page was written by Mark Johnston <markj@FreeBSD.org>.
BUGS
The io:::wait-start
() and
io:::wait-done
() probes are not currently
implemented on FreeBSD.