NAME
dio [ -o <output file> ] <device name> <time interval> [ <max count> ]
dio -l
DESCRIPTION
dio is a device I/O analysis tool. It takes a device name and a time interval in seconds as parameters. dio then samples kernel statistics an optional maximum of max count times at the specified time interval and uses them to derive useful real-time and cumulative performance statistics. It presents the output in a standard terminal window.
The device name can be an entire disk, a disk slice, a metadevice or any other kind of I/O device. The -l option can be used to list the names of all available I/O devices.
The abbreviated column headings on the output are explained below:
br: | number of bytes read during time interval. |
bw: | number of bytes written during time interval. |
rkb/s: | kilobytes per second read from device. |
wkb/s: | kilobytes per second written to the device. |
%r:%w: | ratio of data read to data written. Useful for visualising the changing direction of data flow. |
ro: | number of read operations. |
wo: | number of write operations. |
rq: | average run queue length over the time interval. |
rq %b: | percentage of time that the run queue was occupied, i.e. rq w as non-zero. |
wq: | average wait queue length. |
wq %b: | percentage of time that the wait queue was occupied, i.e. wq was non-zero. |
Also included in the output is maximum recorded read rate recorded, maximum write rate, total megabytes read and total megabytes written during the period that dio was running.
Although it may seem that the run queue length would be preferable measurement to the average run queue length, in practice this is rarely true. The run queue length is continually changing, so it's value at any given moment gives no measure of what it was a nanosecond before it was sampled. Therefore the average run queue length is often found to be more useful and is derived from the run queue length integral over time which is maintained by the operating system.
To quit out of dio, press q or Ctrl-d.
OPTIONS
-o file | Specify the name of the out put log file. |
-l | List all the I/O devices on the machine. The output consists of three columns, Device Name, Class and Mapping. Device Name is the name of the device in the fo rmat expected by dio. Class is the type of I/O device, such as disk, partition, nfs or tape. Where the device is a disk or a partition, the Mapping column map s the device name to the more familiar cXtXdXsX notation. |
EXAMPLES
Following are some examples of dio can be invoked.
Example 1:
In this example, dio is invoked to measure I/O on a slice c4t2d0s2.
First run dio -l, to list all I/O devices. The output will show the device name that maps to slice c4t2d0s2. In the example output below, it maps to device sd62,c.
Device Name Class Mapping
sd62 -> disk -> c4t2d0
sd62,a -> partition -> c4t2d0s0
sd62,c -> partition -> c4t2d0s2
sd62,g -> partition -> c4t2d0s6
Then invoke dio as follows to monitor slice c4t2d0s2 at four second intervals:
% dio sd62,c 4
Example 2:
In this instance, dio is invoked to measure I/O on a mirrored file system.
% dio md30 2
where md30 appears is a metadevice. The sample rate is every two seconds.
TIPS
Running dio -l option is a very good place to start for identifying the names of devices you would like to analyse.
NOTES
Some older versions of Solaris and Solaris for Intel do not collect I/O statisti cs for slices of disks. In such cases you will only will only be able to analys e entire disks and will not be able to go down the level of analysing slices.
AUTHOR
Donald McIntosh