.TH IOSTAT 8
.UC
.SH NAME
iostat \- report I/O statistics
.SH SYNTAX
.B iostat
[ option ] ...
[ interval [ count ] ]
.SH DESCRIPTION
.I Iostat
delves into the system and reports certain statistics kept about
input-output activity.
Information is kept about different disks
and about terminal ports.
For each disk, I/O completions and number of words transferred
are counted; for terminal ports collectively, the number
of input and output characters are counted.
Also, each sixtieth of a second,
the state of each disk is examined
and a tally is made if the disk is active.
The state of the system is also examined and placed in
one of four categories, depending on whether the system is
executing in user mode, in `nice' (background)
user mode, in system mode, or idle.
From all these numbers and from the known transfer rates
of the devices it is possible to determine
information such as the degree of I/O overlap
and average seek times for each device.
.PP
The optional
.I interval
argument causes
.I iostat
to report once each
.I interval
seconds.
The first report is for  all time since a reboot and each
subsequent report is for the last interval only.
.PP
The optional
.I count
argument restricts the number of reports.
.PP
With no option argument
.I iostat
reports the number of characters of terminal I/O per second,
for each disk the number of transfers per minute,
the milliseconds per average seek,
and the milliseconds per data transfer exclusive of seek time.
It also gives the percentage of time the system has
spend in each of the four categories mentioned above.
.PP
The following options are available:
.TP
.B \-\^i
Report the percentage of time spent in each
of the four categories mentioned above,
the percentage of time spent in `I/O wait'
(iowt: idle, but with a disk active),
the percentage of time any disk was active (iact),
and the percentage of time each disk was active
(seeking, dks, or transferring, dkx).
.TP
.B \-\^o
Omit the headers and first line (data since boottime).
.TP
.B \-\^s
Report the raw timing information: 8 numbers indicating
the percentage of time spent in each of the possible
configurations of 4 system states with I/O active or not active,
and a number of I/O states (2**n for n disks) reflecting the combinations
of disks active at each sampling point.
.TP
.B \-\^b
Report on the usage of I/O buffers.
.TP
.B \-\^d
Print the date and time before each listing.
.TP
.B \-\^a
Print the actual time elapsed before each listing.
.TP
.B \-\^u
Print UNIBUS map allocation statistics.
.SH "PROGRAM CONFIGURATION"
The iostat program must be modified for each hardware configuration
for the disk monitoring to work correctly.
This must correspond to the way
the kernel maintains the disk metering information.
There are NDISK (param.c) disks monitored,
and the identity of each disk is determined by the definition
of \fIXX\fP_DKN in the appropriate disk driver header file.
The disk with \fIXX\fP_DKN of 0 will appear first in the output listings, etc.
SMD-type disk drivers (hp, rp, rm) use one entry for each disk's seeks,
from \fIXX\fP_DKN to \fIXX\fP_DKN + NDR \- 1, with NDR drives.
The entry \fIXX\fP_DKN + NDR is
used for the controller's transfers.
No other driver should be assigned a \fIXX\fP_DKN in this range.
Iostat expects that if there is an SMD driver, its \fIXX\fP_DKN will be 0.
In the iostat source,
the defined constant LAST_DRV should be set to the entry number of the
last slot used for drive seeks, e.g. 1 for use with 2 hp drives, or \-1 with
no SMD drives.
Also, the transfer rates of each controller must be entered in
the appropriate element of the array xf;
this is used to determine the transfer times printed.
.SH FILES
/unix
.br
/dev/kmem