iostat Command

Purpose

Reports Central Processing Unit (CPU) statistics, asynchronous input/output (AIO) and input/output statistics for the entire system, adapters, TTY devices, disks CD-ROMs, tapes and file systems.

Syntax

iostat [ -a ] [-b] [ -l ] [ -s ] [ -t ] [ -T ] [-V] [ -z ] [ { -A [ -P ] [ -q | -Q ] } | { [ -d | -p ] [ -D ] [ -R ] }[ -m ] ] [ { -f | -F } [ filesystems,… ] ][ -S power] [ -@ wparname | ALL | Global ] [ drives ... ] [ interval] [ count ]

iostat [-X [-o filename]] [interval[count]]

Restriction: The -a, -A, -b, -d, -D, -m, -p, -P, -q, -Q, -R, -t, and -z flags, the drives parameter, and the wparname parameter are restricted inside workload partitions.
Note: You must set an interval when you are using the -b flag. The minimum value of the interval that you can specify is 2 seconds for the -b flag. The Block IO statistics need to be enabled using the raso tunable biostat. Once the raso tunable is enabled to collect Block IO statistics, the operating system takes couple of second to populate the statistics before it can be reported. Hence, you need to wait for few seconds before you issue the iostat -b command, after enabling the Block IO statistic collection.

Description

The iostat command is used to monitor system input/output (I/O) devices (physical and logical) that are loaded, by observing the time for which these devices are active. The iostat command also generates reports that can be used to change system configuration to better balance the I/O load between file systems, physical volumes, and adapters.

The iostat command generates an XML file when the –X option is specified.

The iostat command generates various utilization and throughput reports based on the options that you specify. On multiprocessor systems, CPU statistics are calculated system-wide as averages among all processors.

A report generated by the iostat command consists of system configuration information and various utilization and throughput reports. The system configuration row displays at the start of the iostat command and whenever there is a change in monitored configuration. In addition to system configuration, WPAR configuration is also displayed for the WPAR that has enforced resource limits when the -@ flag is used.

The system configuration and WPAR configuration information includes the following values:
lcpu
Indicates the number of logical CPUs.
drives
Indicates the number of disks (including CDs). This information is displayed only when adapters, disks, or CDs are monitored.
tapes
Indicates the number of tapes. This information is displayed only when adapters or tapes are monitored.
ent
Indicates the entitled capacity. This information is displayed only when the partition is running with shared processor.
vdisk
Indicates the number of virtual devices. This information is displayed only when adapters, disks, or CDs are monitored.
wpars
Indicates the number of active system workload partitions. This information is displayed only when you specify the -@ flag.
maxserver
Indicates the maximum number of AIO servers that can serve slow-path IOs. This is a system-wide value. It is displayed only if asynchronous I/O is monitored.
cpulim
Indicates the processor-resource limit for a WPAR in terms of processor units. This information is displayed only for WPARs with enforced processor-resource limit.
rset
Indicates the resource-set type (regular or exclusive) that is associated with the WPAR. This information is displayed only when there is a resource set that is associated with the WPAR.

The Interval parameter specifies the amount of time in seconds between each report. If the Interval parameter is not specified, the iostat command generates a single report containing statistics for the time since system startup (boot). The Count parameter can be specified in conjunction with the Interval parameter. If the Count parameter is specified, the value of count determines the number of reports generated at Interval seconds apart. If the Interval parameter is specified without the Count parameter, the iostat command generates reports continuously.

The iostat command is useful in determining whether a physical volume is becoming a performance bottleneck and if there is potential to improve the situation. The % utilization field for the physical volumes indicates how evenly the file activity is spread across the drives. A high % utilization on a physical volume is a good indication that there may be contention for this resource. Since the CPU utilization statistics are also available with the iostat report, the percentage of time the CPU is in I/O wait can be determined at the same time. Consider distributing data across drives if the I/O wait time is significant and the disk utilization is not evenly distributed across volumes.

Beginning with AIX® 5.3, the iostat command reports number of physical processors consumed (physc) and the percentage of entitlement consumed (% entc) in Micro-Partitioning® environments. These metrics will only be displayed on Micro-Partitioning environments.

Note: Some system resource is consumed in maintaining disk I/O history for the iostat command. Use the sysconfig subroutine, or the SMIT to stop history accounting. While the iostat command is running for Count of iterations and if there is a change in system configuration that affects the output of iostat command, it prints a warning message about the configuration change. It then continues the output after printing the updated system configuration information and the header.
If you specify the -a flag, the information is displayed in a report in the following order:
  • An adapter-header row.
  • A line of statistics for the adapter.
  • A disk or tape-header row and the statistics of all the disks, CD-ROMs, or tapes connected to the adapter. Such reports are generated for all the disk or tape adapters that are connected to the system.
  • A line of statistics for each disk or tape that is configured.

If the Drive parameter is specified, only those names specified are displayed. One or more alphabetic or alphanumeric values can be specified for Drives. If you specify the Drive parameter, the TTY and CPU reports are displayed and the disk or tape report contains statistics for the specified drives. If a drive name that you specified is not found, the report lists that name and displays the message Drive Not Found and gives the report of all the available drives on the system. If you did not configure drives on the system, no disk or tape report is generated.

Restriction: The first character in the Drive parameter cannot be numeric.

Tape utilization report is generated only if you specified the -p or -a flag.

Note: The -@ option is not supported when executed within a workload partition.

Reports

The iostat command generates four types of reports, the TTY and CPU utilization report, the disk/tape utilization report, the file system utilization report, the system throughput report and the adapter throughput report.

Tips:
  • When you invoke the iostat command with the -@ ALL option, if there is no information related to a workload partition (WPAR) for a metric, a dash ( - ) is displayed in the place of a value.
  • When you invoke the iostat command with the -@ WparName option or inside a WPAR, if there is no information related to a workload partition (WPAR) for a metric, that metric is marked with "@" and the system-wide value is displayed for that metric.
  • If a metric is not available for that release, a dash ( - ) is displayed in the place of a value.

TTY and CPU Utilization Report

The first report generated by the iostat command is the TTY and CPU utilization report. For multiprocessor systems, the CPU values are global averages among all processors. Also, the I/O wait state is defined system-wide and not per processor. The TTY and CPU utilization report has the following format:

Column Description
tin Shows the total number of characters read by the system for all TTYs.
tout Shows the total number of characters written by the system to all TTYs.
% user Shows the percentage of CPU utilization that occurred while executing at the user level (application).
% sys Shows the percentage of CPU utilization that occurred while executing at the system level (kernel).
% idle Shows the percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.
% iowait Shows the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.
physc Shows the number or the fraction of physical processors consumed, displayed only if the partition is running with shared processor.
% entc Shows the percentage of entitled capacity consumed, which is displayed only if the partition is running with shared processor. Because the time base over which this data is computed can vary, the entitled capacity percentage can sometimes exceed 100%. This excess is noticeable only with small sampling intervals.
% rc Shows the percentage of the consumed processor resource. The information is displayed only for WPARs with enforced processor-resource limit.

This information is updated at regular intervals by the kernel (typically sixty times per second). The TTY report provides a collective account of characters per second received from all terminals on the system as well as the collective count of characters output per second to all terminals on the system.

Methods Used to Compute CPU Disk I/O Wait Time

The method used to compute CPU disk I/O wait time is as follows: The AIX operating system only marks an idle CPU as wio if an outstanding I/O was started on that CPU. This method can report much lower wio times when just a few threads are doing I/O and the system is otherwise idle. For example, a system with four CPUs and one thread doing I/O will report a maximum of 25 percent wio time. A system with 12 CPUs and one thread doing I/O will report a maximum of 8 percent wio time. NFS client reads/writes go through the VMM, and the time that biods spend in the VMM waiting for an I/O to complete is now reported as I/O wait time.

Disk/Tape Utilization Report

The second report generated by the iostat command is the disk/tape utilization report. By default, the disk utilization report is displayed, and you must specify the -p flag to display the tape utilization report.

When you specify the -m flag, the path utilization report is displayed.

The disk report provides statistics on a per-physical-disk basis, and tape utilization report provides statistics on a per-tape-basis. The default report has the following format:

Item Description
% tm_act Indicates the percentage of time the physical disk/tape was active (bandwidth utilization for the drive).
Kbps Indicates the amount of data transferred (read or written) to the drive in KB per second.
tps Indicates the number of transfers per second that were issued to the physical disk/tape. A transfer is an I/O request to the physical disk/tape. Multiple logical requests can be combined into a single I/O request to the disk. A transfer is of indeterminate size.
Kb_read The total number of KB read.
Kb_wrtn The total number of KB written.

If you specify the -D flag, the report has the following metrics for disk/tape. Extended metrics for disk are displayed by default and users need to specify the –p option for tape utilization report:

Metrics related to transfers (xfer):  
% tm_act Indicates the percentage of time the physical disk/tape was active (bandwidth utilization for the drive).
bps Indicates the amount of data transferred (read or written) per second to the drive. Different suffixes are used to represent the unit of transfer. Default is in bytes per second.
tps Indicates the number of transfers per second that were issued to the physical disk/tape. A transfer is an I/O request to the physical disk/tape. Multiple logical requests can be combined into a single I/O request to the disk. A transfer is of indeterminate size.
bread Indicates the amount of data read per second, from the drive. Different suffixes are used to represent the unit of transfer. Default is in bytes per second.
bwrtn Indicates the amount of data written per second, to the drive. Different suffixes are used to represent the unit of transfer. Default is in bytes per second.

Read Service Metrics (read):  
rps Indicates the number of read transfers per second.
avgserv Indicates the average service time per read transfer. Different suffixes are used to represent the unit of time. Default is in milliseconds.
minserv Indicates the minimum read service time. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxserv Indicates the maximum read service time. Different suffixes are used to represent the unit of time. Default is in milliseconds.
timeouts Indicates the number of read timeouts per second.
fails Indicates the number of failed read requests per second.

Write Service Metrics (write):  
wps Indicates the number of write transfers per second.
avgserv Indicates the average service time per write transfer. Different suffixes are used to represent the unit of time. Default is in milliseconds.
minserv Indicates the minimum write service time. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxserv Indicates the maximum write service time. Different suffixes are used to represent the unit of time. Default is in milliseconds.
timeouts Indicates the number of write timeouts per second.
fails Indicates the number of failed write requests per second.

Item Description
Wait Queue Service Metrics (queue): Restriction: These metrics are not applicable for tapes.
avgtime Indicates the average time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
mintime Indicates the minimum time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxtime Indicates the maximum time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
avgwqsz Indicates the average wait queue size.
avgsqsz Indicates the average service queue size.
sqfull Indicates the number of times the service queue becomes full (that is, the disk is not accepting any more service requests) per second.

Suffix Description
K 1000 bytes
M 1 000 000 bytes if displayed in xfer metrics. Minutes, if displayed in read/write/wait service metrics.
G 1 000 000 000 bytes.
T 1 000 000 000 000 bytes.
S Seconds.
H Hour.
Note: For drives that do not support service time metrics, read, write and wait queue service metrics will not be displayed.

Statistics for CD-ROM devices are also reported.

Block IO Device Utilization Report

The Block IO Device Utilization report provides statistics per IO device. The report helps you in analyzing the IO statistics at VMM or filesystem, and disk layers of IO stack. The report also helps you in analyzing the performance of the IO stack. The default report has the following format:

Item Description
device Indicates the device name.
rbytes Indicates the number of bytes read over the monitoring interval. Default unit is bytes; a suffix will be appended if required (1024 =K, 1024K =M).
wbytes Indicates the number of bytes written over the monitoring interval. Default unit is bytes; a suffix will be appended if required.
rserv Indicates the read service time per read over the monitoring interval. Different suffixes are used to represent unit, default unit is millisecond.
wserv Indicates the write service time per write over the monitoring interval. Different suffixes are used to represent unit, default unit is millisecond.
rerr Indicates the number of read errors over the monitoring interval. Default unit is numbers; a suffix will be appended if required (1000 = K, 1000K = M, 1000M = G).
werr Indicates the number of write errors over the monitoring interval. Default unit is numbers; a suffix will be appended if required (1000 = K, 1000K = M, 1000M = G).
reads Indicates the number of read requests over the monitoring interval. Default unit is numbers; a suffix will be appended if required (1000 = K, 1000K = M, 1000M = G).
writes Indicates the number of write requests over the monitoring interval. Default unit is numbers; a suffix will be appended if required (1000 = K, 1000K = M, 1000M = G).

System Throughput Report

This report is generated if the -s flag is specified. This report provides statistics for the entire system. This report has the following format:

Item Description
Kbps Indicates the amount of data transferred (read or written) in the entire system in KB per second.
tps Indicates the number of transfers per second issued to the entire system.
Kb_read The total number of KB read from the entire system.
Kb_wrtn The total number of KB written to the entire system.

Tip: The -s flag, when used with the -@ or -f flag, displays logical and physical volume throughput, which corresponds to File Systems and Disks respectively.

Adapter Throughput Report

This report is generated if the -a flag is specified. This report provides statistics on an adapter-by-adapter basis (for both physical and virtual adapters). This report has the following format for a physical adapter report:

Item Description
Kbps Indicates the amount of data transferred (read or written) in the adapter in KB per second.
tps Indicates the number of transfers per second issued to the adapter.
Kb_read The total number of KB read from the adapter.
Kb_wrtn The total number of KB written to the adapter.

The virtual adapter's default throughput report has the following format:

Item Description
Kbps Indicates the amount of data transferred (read or written) in the adapter in KB per second.
tps Indicates the number of transfers per second issued to the adapter.
bkread Number of blocks received per second from the hosting server to this adapter.
bkwrtn Number of blocks per second sent from this adapter to the hosting server.
partition-id The partition ID of the hosting server, which serves the requests sent by this adapter.

The virtual adapter's extended throughput report (-D option) has the following format:

Metrics related to transfers (xfer:)  
Kbps Indicates the amount of data transferred (read or written) in the adapter in KB per second.
tps Indicates the number of transfers per second issued to the adapter.
bkread Number of blocks received per second from the hosting server to this adapter.
bkwrtn Number of blocks per second sent from this adapter to the hosting server.
partition-id The partition ID of the hosting server, which serves the requests sent by this adapter.

Adapter Read Service Metrics (read:)  
rps Indicates the number of read requests per second.
avgserv Indicates the average time to receive a response from the hosting server for the read request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.
minserv Indicates the minimum time to receive a response from the hosting server for the read request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxserv Indicates the maximum time to receive a response from the hosting server for the read request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.

Adapter Write Service Metrics (write:)  
wps Indicates the number of write requests per second.
avgserv Indicates the average time to receive a response from the hosting server for the write request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.
minserv Indicates the minimum time to receive a response from the hosting server for the write request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxserv Indicates the maximum time to receive a response from the hosting server for the write request sent. Different suffixes are used to represent the unit of time. Default is in milliseconds.

Adapter Wait Queue Metrics (queue:)  
avgtime Indicates the average time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
mintime Indicates the minimum time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
maxtime Indicates the maximum time spent by a transfer request in the wait queue. Different suffixes are used to represent the unit of time. Default is in milliseconds.
avgwqsz Indicates the average wait queue size.
avgsqsz Indicates the average service queue size.
sqfull Indicates the number of times the service queue becomes full (that is, the hosting server is not accepting any more service requests) per second.

Suffix Description
K 1000 bytes.
M 1 000 000 bytes if displayed in xfer metrics. Minutes, if displayed in read/write/wait service metrics.
G 1 000 000 000 bytes.
T 1 000 000 000 000 bytes.
S Seconds.
H Hours.

Asynchronous I/O Report

The asynchronous I/O report has the following column headers :
Item Description
avgc Average global AIO request count per second for the specified interval.
avfc Average fastpath request count per second for the specified interval.
maxgc Maximum global AIO request count since the last time this value was fetched.
maxfc Maximum fastpath request count since the last time this value was fetched.
maxreqs Specifies the maximum number of asynchronous I/O requests that can be outstanding at one time.

File System Utilization Report

The file system utilization report provides statistics on a per-file-system basis. The default report has the following format:

Item Description
Filesystem Indicates the file system name.
% tm_act Indicates the percentage of time the file system is active.
Kbps Indicates the amount of data transferred (read or written) to the file system in KB per second.
Tps Indicates the number of transfers per second that are issued to the file system. A transfer is of indeterminate size.
Kb_read The total number of KBs read.
Kb_wrtn The total number of KBs written.

Important: You must specify the disk names before you invoke the -f or -F flag. If you specify the -f or -F flag, separate file system names to be monitored by commas.

Disk Input/Output History

To improve performance, the collection of disk input/output statistics is disabled by default. To enable the collection of this data, enter the following command:
chdev -l sys0 -a iostat=true
To display the current settings, enter the following command:
lsattr -E -l sys0 -a iostat

If the collection of disk input/output history is disabled and the iostat command is called without an interval, the iostat command output displays the message Disk History Since Boot Not Available instead of disk statistics.

Flags

Item Description
-a

Displays the adapter throughput report. The -a flag can be specified with the -A flag, but not when the -q or -Q flag is specified. The -a flag is mutually exclusive with the -f or -F flag.

-A

Displays the legacy asynchronous IO utilization report, and turns off the display of TTY utilization report.

-b

Displays the block I/O device utilization statistics. The -b flag is mutually exclusive to all flags, except the -T flag.

-d

Turns off the display of TTY utilization report or CPU utilization report. If you do not specify the -d or -p flag, then by default the -d flag is turned on. The -t and -d flags together turn off both disks and TTY or CPU statistics, allowed only with the -a or -s flags. The -d flag is mutually exclusive with the -t flag unless you specify the -a or -s flag, too. The -d flag is mutually exclusive with the -p flag unless you specify the -a or -s flag, too.

-D

Displays the extended tape/drive utilization report. Use the -D flag with the -d or -p flag. The -D flag is mutually exclusive with the -t flag unless you specify the -a or -s flag, too. The -D flag is mutually exclusive with the -f or -F flag.

-f Displays the file system utilization report. The -f flag is mutually exclusive with the -a or -D flag. The -f flag can be specified with the -A flag, but not when the -q or -Q flag is specified.
-F Displays the file system utilization report, and turns off other utilization reports. The -F flag is mutually exclusive with the -a or -D flag. The -F flag can be specified with the -A flag, but not when the -q or -Q flag is specified.
-l Displays the output in long listing mode.
-m Displays the path utilization report. The -m flag is mutually exclusive with the -t flag.
-p Displays the tape utilization report. The -p flag is mutually exclusive with the -d flag unless you specify the -a or -s flag, too.
Note: Only the Atape device utilization is reported.
-P

Displays the POSIX asynchronous IO utilization report, and turns off the display of TTY utilization report.

-q Specifies AIO queues and their request counts. The -q flag can be specified only with -A or -P flag.
-Q Displays a list of all the mounted file systems and the associated queue numbers with their request counts. The -Q flag can be specified only with -A or -P flag.
-R Specifies that the reset of min* and max* values should happen at each interval. The default is to reset the values once when iostat is started. The -R flag can be specified only with the -D flag.
-s Specifies the system throughput report. You can specify the -a flag with the -A flag, but not when you have specified the -q or -Q flag. Inside a workload partition, you can specify the -s flag only with the -f or -F flag.
-S power Displays the processor statistics that are multiplied by a value of 10power. The default value of the power parameter is 0. The following fields are scaled:
  • % user
  • % sys
  • % idle
  • % iowait
  • physc
  • entc
Note: By default, the %user, %sys, %idle, and %iowait fields are relative to the processor consumption of a WPAR. When you specify the -S flag with a nonzero power, the %user, %sys, %idle, and %iowait fields are relative to system-wide processor consumption.
Note: The value of power can only be between 0 and 3.
-t Turns off the display of disk utilization report. The -t and -d flags together turn off both disks and TTY or CPU statistics, allowed only with the -a or -s flags. The -t flag is mutually exclusive with the -d flag unless you specify the -a or -s flag, too. The -t flag is mutually exclusive with the -D flag unless you specify the -a or -s flag, too. The -t flag is mutually exclusive with the -m flag.
-T Displays the time stamp.
-V Displays valid nonzero statistics.
-z Resets the disk input/output statistics. Only root users can use this option.
-@ Reports I/O activities of a workload partition:
  • Specify -@ ALL to display the activity for the global environment and all workload partitions in the system.
  • Specify the -@ flag with a list of workload partition names to display the activity for that workload partition.
  • Specify -@ Global to display the activity for the global environment only.
  • Specify the -@ flag inside a WPAR to display system-wide statistics along with WPAR statistics.

The -@ flag can be specified only with –d and –D, -f or -F flags. All possible combinations of the -s, -T, -f, -F, -d, -D and -l flags are allowed.

Restriction: The -@ flag is mutually exclusive with -a, -t, -z, -A, -P, -q, -Q, and the -m flag.

-X Generates the XML output. The default file name is iostat_DDMMYYHHMM.xml unless you specify a different file name by using the –o option.
-o Specifies the file name for the XML output.

Security

Attention RBAC users and Trusted AIX users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.

Examples

  1. To display a single history since boot report for all TTY, CPU, and Disks, enter the following command:
    iostat
  2. To display a continuous disk report at two second intervals for the disk with the logical name disk1, enter the following command:
    iostat -d disk1 2
  3. To display six reports at two second intervals for the disk with the logical name disk1, enter the following command:
    iostat disk1 2 6
  4. To display six reports at two second intervals for all disks, enter the following command:
    iostat -d 2 6
  5. To display six reports at two second intervals for three disks named disk1, disk2, disk3, enter the following command:
    iostat disk1 disk2 disk3 2 6
  6. To print the System throughput report since boot, enter the following command:
     
    iostat -s
  7. To print the adapter throughput reports at 5-second intervals, enter the following command:
    iostat -a 5
  8. To print 10 system and adapter throughput reports at 20-second intervals, with only the TTY and CPU report (no disk reports), enter the following command:
      
    iostat -sat 20 10
  9. To print the system and adapter throughput reports with the disk utilization reports of hdisk0 and hdisk7 every 30 seconds, enter the following command:
    iostat -sad hdisk0 hdisk7 30
  10. To display time stamp next to each line of output of iostat, enter the following command:
    iostat -T 60
  11. To display 6 reports at 2-second intervals on AIO, enter the following command:
    iostat -A 2 6 
  12. To display AIO statistics since boot for queues associated with all mounted file systems, enter the following command:
    iostat -A -Q
  13. To display extended drive report for all disks, enter the following command:
    iostat -D 
  14. To display extended drive report for all tapes, enter the following command:
    iostat -Dp
  15. To display extended drive report for a specific disk, enter the following command:
    iostat –D hdisk0 
  16. To reset the disk input/output statistics, enter the following command:
    iostat –z 
  17. To display only file system statistics for all workload partitions, enter the following command:
    iostat –F -@ ALL 
  18. To display system throughput of all workload partitions along with the system, enter the following command:
    iostat -f -s -@ ALL
  19. To display file system statistics that are appended with default O/P, enter the following command:
    iostat –f
  20. To display logical and physical system throughput, enter the following command:
    iostat –s -f
  21. To display throughput for user-specified drives and file systems, enter the following command:
    iostat hdisk0 hdisk1 –f /dev/fslv00 /dev/fslv01 /dev/fslv02
  22. To display the processor statistics that are multiplied by a factor of 10, enter the following command:
    iostat -S 1

File

Item Description
/usr/bin/iostat Contains the iostat command.