Thursday, April 22, 2010

solaris - iostat


iostat - report I/O statistics


/usr/bin/iostat [ -cdDItx ] [ -l n ] [ disk ... ]
[ interval [ count ] ]


iostat iteratively reports terminal and disk I/O activity,
as well as CPU utilization. The first line of output is for
all time since boot; each subsequent line is for the prior
interval only.

To compute this information, the kernel maintains a number
of counters. For each disk, the kernel counts reads,
writes, bytes read, and bytes written. The kernel also
takes hi-res time stamps at queue entry and exit points,
which allows it to keep track of the residence time and
cumulative residence-length product for each queue. Using
these values, iostat produces highly accurate measures of
throughput, utilization, queue lengths, transaction rates
and service time. For terminals collectively, the kernel
simply counts the number of input and output characters.

For more general system statistics, use sar(1), sar(1M), or

See Solaris 1.x to Solaris 2.x Transition Guide for device
naming conventions for disks.


iostat's activity class options default to tdc (terminal,
disk, and CPU). If any activity class options are specified,
the default is completely overridden. Therefore, if only -d
is specified, neither terminal nor CPU statistics will be
reported. The last disk option specified (-d, -D, or -x) is
the only one that is used.

-c Report the percentage of time the system has
spent in user mode, in system mode, waiting for
I/O, and idling.

-d For each disk, report the number of kilobytes
transferred per second, the number of transfers
per second, and the average service time in mil-

-D For each disk, report the reads per second,
writes per second, and percentage disk utiliza-

rates (where applicable).

-t Report the number of characters read and written
to terminals per second.

-x For each disk, report extended disk statistics.
The output is in tabular form.

-l n Limit the number of disks included in the report
to n; the disk limit defaults to 4 for -d and -D,
and unlimited for - x. Note: disks explicitly
requested (see disk below) are not subject to this
disk limit.

disk Explicitly specify the disks to be reported; in
addition to any explicit disks, any active disks
up to the disk limit (see -l above) will also be

count Only print count reports.

interval Report once each interval seconds.


example% iostat -xtc 5 2
extended disk statistics tty cpu
disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b tin tout us sy wt id
sd0 6.2 0.0 21.5 0.0 0.0 0.1 24.1 0 15 0 84 4 94 2 0
sd1 1.8 0.0 14.3 0.0 0.0 0.1 41.6 0 7
sd2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd3 5.6 0.2 25.7 0.2 0.0 0.1 22.5 0 13
extended disk statistics tty cpu
disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b tin tout us sy wt id
sd0 2.6 3.0 20.7 22.7 0.1 0.2 59.2 6 19 0 84 3 85 11 0
sd1 4.2 1.0 33.5 8.0 0.0 0.2 47.2 2 23
sd2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd3 10.2 1.6 51.4 12.8 0.1 0.3 31.2 3 31

The fields have the following meanings:

disk name of the disk
r/s reads per second
w/s writes per second
Kr/s kilobytes read per second
Kw/s kilobytes written per second
wait average number of transactions waiting for ser-
vice (queue length)
actv average number of transactions actively being
serviced (removed from the queue but not yet

%w percent of time there are transactions waiting
for service (queue non-empty)
%b percent of time the disk is busy (transactions
in progress)

No comments:

Post a Comment