Man Linux: Main Page and Category List

NAME

       iostat   -   Report   Central  Processing  Unit  (CPU)  statistics  and
       input/output statistics for devices, partitions and network filesystems
       (NFS).

SYNOPSIS

       iostat  [  -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [
       -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] |  ALL  ]  ]  [
       interval [ count ] ]

DESCRIPTION

       The  iostat  command  is used for monitoring system input/output device
       loading by observing the time the devices are  active  in  relation  to
       their average transfer rates. The iostat command generates reports that
       can be used to  change  system  configuration  to  better  balance  the
       input/output load between physical disks.

       The  first  report  generated by the iostat command provides statistics
       concerning the time since the system was booted. Each subsequent report
       covers  the time since the previous report. All statistics are reported
       each time the iostat command is run.  The  report  consists  of  a  CPU
       header  row  followed  by  a  row  of CPU statistics. On multiprocessor
       systems, CPU statistics are calculated system-wide  as  averages  among
       all  processors. A device header row is displayed followed by a line of
       statistics for each device that is configured.  When option -n is used,
       an  NFS  header  row  is displayed followed by a line of statistics for
       each network filesystem that is mounted.

       The interval parameter specifies the amount of time in seconds  between
       each  report.  The  first report contains statistics for the time since
       system startup  (boot).  Each  subsequent  report  contains  statistics
       collected  during  the  interval  since  the previous report. 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.

REPORTS

       The  iostat  command  generates  three  types  of  reports,   the   CPU
       Utilization  report,  the  Device  Utilization  report  and the Network
       Filesystem report.

       CPU Utilization Report
              The first report generated by the  iostat  command  is  the  CPU
              Utilization  Report.  For multiprocessor systems, the CPU values
              are global averages among all processors.  The  report  has  the
              following format:

              %user
                     Show  the  percentage  of  CPU  utilization that occurred
                     while executing at the user level (application).

              %nice
                     Show the percentage  of  CPU  utilization  that  occurred
                     while executing at the user level with nice priority.

              %system
                     Show  the  percentage  of  CPU  utilization that occurred
                     while executing at the system level (kernel).

              %iowait
                     Show the percentage of time that the  CPU  or  CPUs  were
                     idle  during which the system had an outstanding disk I/O
                     request.

              %steal
                     Show the percentage of time spent in involuntary wait  by
                     the   virtual  CPU  or  CPUs  while  the  hypervisor  was
                     servicing another virtual processor.

              %idle
                     Show the percentage of time that the  CPU  or  CPUs  were
                     idle  and the system did not have an outstanding disk I/O
                     request.

       Device Utilization Report
              The second report generated by the iostat command is the  Device
              Utilization  Report.  The device report provides statistics on a
              per physical  device  or  partition  basis.  Block  devices  and
              partitions  for  which  statistics  are  to  be displayed may be
              entered on the command line.  If  no  device  nor  partition  is
              entered,  then statistics are displayed for every device used by
              the system, and providing that the kernel  maintains  statistics
              for  it.   If the ALL keyword is given on the command line, then
              statistics are displayed for every device defined by the system,
              including  those that have never been used.  The report may show
              the following fields, depending on the flags used:

              Device:
                     This column gives the device (or partition)  name,  which
                     is  displayed  as  hdiskn  with  2.2 kernels, for the nth
                     device. It is displayed as devm-n with 2.4 kernels, where
                     m  is the major number of the device, and n a distinctive
                     number.  With newer kernels, the device name as listed in
                     the /dev directory is displayed.

              tps
                     Indicate  the  number  of  transfers per second that were
                     issued to the device. A transfer is an I/O request to the
                     device.  Multiple logical requests can be combined into a
                     single I/O request  to  the  device.  A  transfer  is  of
                     indeterminate size.

              Blk_read/s
                     Indicate   the  amount  of  data  read  from  the  device
                     expressed in a number of blocks per  second.  Blocks  are
                     equivalent  to  sectors  with  kernels  2.4 and later and
                     therefore have a size of 512 bytes. With older kernels, a
                     block is of indeterminate size.

              Blk_wrtn/s
                     Indicate  the  amount  of  data  written  to  the  device
                     expressed in a number of blocks per second.

              Blk_read
                     The total number of blocks read.

              Blk_wrtn
                     The total number of blocks written.

              kB_read/s
                     Indicate  the  amount  of  data  read  from  the   device
                     expressed in kilobytes per second.

              kB_wrtn/s
                     Indicate  the  amount  of  data  written  to  the  device
                     expressed in kilobytes per second.

              kB_read
                     The total number of kilobytes read.

              kB_wrtn
                     The total number of kilobytes written.

              MB_read/s
                     Indicate  the  amount  of  data  read  from  the   device
                     expressed in megabytes per second.

              MB_wrtn/s
                     Indicate  the  amount  of  data  written  to  the  device
                     expressed in megabytes per second.

              MB_read
                     The total number of megabytes read.

              MB_wrtn
                     The total number of megabytes written.

              rrqm/s
                     The number of read requests merged per second  that  were
                     queued to the device.

              wrqm/s
                     The  number of write requests merged per second that were
                     queued to the device.

              r/s
                     The number of read  requests  that  were  issued  to  the
                     device per second.

              w/s
                     The  number  of  write  requests  that were issued to the
                     device per second.

              rsec/s
                     The number of sectors read from the device per second.

              wsec/s
                     The number of sectors written to the device per second.

              rkB/s
                     The number of kilobytes read from the device per  second.

              wkB/s
                     The number of kilobytes written to the device per second.

              rMB/s
                     The number of megabytes read from the device per  second.

              wMB/s
                     The number of megabytes written to the device per second.

              avgrq-sz
                     The average size (in sectors) of the requests  that  were
                     issued to the device.

              avgqu-sz
                     The average queue length of the requests that were issued
                     to the device.

              await
                     The average  time  (in  milliseconds)  for  I/O  requests
                     issued to the device to be served. This includes the time
                     spent by  the  requests  in  queue  and  the  time  spent
                     servicing them.

              svctm
                     The  average  service  time  (in  milliseconds)  for  I/O
                     requests that were issued to the device.

              %util
                     Percentage of CPU time during  which  I/O  requests  were
                     issued  to  the  device  (bandwidth  utilization  for the
                     device). Device saturation  occurs  when  this  value  is
                     close to 100%.

       Network Filesystem report
              The Network Filesystem (NFS) report provides statistics for each
              mounted network filesystem.   The  report  shows  the  following
              fields:

              Filesystem:
                     This  columns  shows  the  hostname  of  the  NFS  server
                     followed by a colon and by the directory name  where  the
                     network filesystem is mounted.

              rBlk_nor/s
                     Indicate  the  number  of blocks read by applications via
                     the read(2) system call interface. A block has a size  of
                     512 bytes.

              wBlk_nor/s
                     Indicate the number of blocks written by applications via
                     the write(2) system call interface.

              rBlk_dir/s
                     Indicate the number of blocks read from files opened with
                     the O_DIRECT flag.

              wBlk_dir/s
                     Indicate  the  number  of  blocks written to files opened
                     with the O_DIRECT flag.

              rBlk_svr/s
                     Indicate the number of blocks read from the server by the
                     NFS client via an NFS READ request.

              wBlk_svr/s
                     Indicate  the  number  of blocks written to the server by
                     the NFS client via an NFS WRITE request.

              rkB_nor/s
                     Indicate the number of kilobytes read by applications via
                     the read(2) system call interface.

              wkB_nor/s
                     Indicate  the number of kilobytes written by applications
                     via the write(2) system call interface.

              rkB_dir/s
                     Indicate the number of kilobytes read from  files  opened
                     with the O_DIRECT flag.

              wkB_dir/s
                     Indicate  the number of kilobytes written to files opened
                     with the O_DIRECT flag.

              rkB_svr/s
                     Indicate the number of kilobytes read from the server  by
                     the NFS client via an NFS READ request.

              wkB_svr/s
                     Indicate the number of kilobytes written to the server by
                     the NFS client via an NFS WRITE request.

              rMB_nor/s
                     Indicate the number of megabytes read by applications via
                     the read(2) system call interface.

              wMB_nor/s
                     Indicate  the number of megabytes written by applications
                     via the write(2) system call interface.

              rMB_dir/s
                     Indicate the number of megabytes read from  files  opened
                     with the O_DIRECT flag.

              wMB_dir/s
                     Indicate  the number of megabytes written to files opened
                     with the O_DIRECT flag.

              rMB_svr/s
                     Indicate the number of megabytes read from the server  by
                     the NFS client via an NFS READ request.

              wMB_svr/s
                     Indicate the number of megabytes written to the server by
                     the NFS client via an NFS WRITE request.

              ops/s
                     Indicate the number of operations that were issued to the
                     filesystem per second.

              rops/s
                     Indicate the number of ’read’ operations that were issued
                     to the filesystem per second.

              wops/s
                     Indicate the  number  of  ’write’  operations  that  were
                     issued to the filesystem per second.

OPTIONS

       -c     Display the CPU utilization report.

       -d     Display the device utilization report.

       -h     Make  the  NFS report displayed by option -n easier to read by a
              human.

       -k     Display statistics in kilobytes per second instead of blocks per
              second.   Data  displayed  are  valid  only with kernels 2.4 and
              later.

       -m     Display statistics in megabytes per second instead of blocks  or
              kilobytes  per  second.   Data  displayed  are  valid  only with
              kernels 2.4 and later.

       -N     Display the registered device mapper names for any device mapper
              devices.  Useful for viewing LVM2 statistics.

       -n     Display  the  network filesystem (NFS) report. This option works
              only with kernel 2.6.17 and later.

       -p [ { device [,...] | ALL } ]
              The -p option displays statistics  for  block  devices  and  all
              their  partitions that are used by the system.  If a device name
              is entered on the command line, then statistics for it  and  all
              its  partitions  are  displayed. Last, the ALL keyword indicates
              that statistics have to be displayed for all the  block  devices
              and  partitions defined by the system, including those that have
              never been used.  Note that this option works only with post 2.5
              kernels.

       -t     Print  the  time for each report displayed. The timestamp format
              may  depend  on  the  value  of  the  S_TIME_FORMAT  environment
              variable (see below).

       -V     Print version number then exit.

       -x     Display  extended  statistics.   This option works with post 2.5
              kernels since it needs /proc/diskstats file or a  mounted  sysfs
              to  get  the  statistics.  This  option may also work with older
              kernels (e.g. 2.4) only if extended statistics are available  in
              /proc/partitions (the kernel needs to be patched for that).

       -z     Tell  iostat  to omit output for any devices for which there was
              no activity during the sample period.

ENVIRONMENT

       The  iostat  command  takes  into  account  the  following  environment
       variable:

       S_TIME_FORMAT
              If  this  variable  exists and its value is ISO then the current
              locale will be ignored when printing  the  date  in  the  report
              header.  The  iostat  command  will  use  the  ISO  8601  format
              (YYYY-MM-DD) instead.  The timestamp displayed  with  option  -t
              will also be compliant with ISO 8601 format.

EXAMPLES

       iostat
              Display  a  single  history  since  boot  report for all CPU and
              Devices.

       iostat -d 2
              Display a continuous device report at two second intervals.

       iostat -d 2 6
              Display six reports at two second intervals for all devices.

       iostat -x sda sdb 2 6
              Display  six  reports  of  extended  statistics  at  two  second
              intervals for devices sda and sdb.

       iostat -p sda 2 6
              Display  six  reports at two second intervals for device sda and
              all its partitions (sda1, etc.)

BUGS

       /proc filesystem must be mounted for iostat to work.

       Extended statistics are available only with post 2.5 kernels.

FILES

       /proc/stat contains system statistics.

       /proc/uptime contains system uptime.

       /proc/partitions contains disk statistics (for  pre  2.5  kernels  that
       have been patched).

       /proc/diskstats contains disks statistics (for post 2.5 kernels).

       /sys contains statistics for block devices (post 2.5 kernels).

       /proc/self/mountstats contains statistics for network filesystems.

AUTHOR

       Sebastien Godard (sysstat <at> orange.fr)

SEE ALSO

       sar(1), pidstat(1), mpstat(1), vmstat(8)

       http://pagesperso-orange.fr/sebastien.godard/