Yolinux.com

iostat manpage

Search topic Section


IOSTAT(1)		      Linux User's Manual		     IOSTAT(1)



NAME
       iostat - Report Central Processing Unit (CPU) statistics and input/out-
       put statistics for devices and partitions.

SYNOPSIS
       iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -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  sys-
       tems,  CPU  statistics are calculated system-wide as averages among all
       processors. A device header row is displayed followed by a line of sta-
       tistics for each device that is configured.

       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 col-
       lected during the interval since the previous report. The count parame-
       ter 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 parame-
       ter is specified without the count parameter, the iostat command gener-
       ates reports continuously.


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

       CPU Utilization Report
	      The first report generated by the iostat command is the CPU Uti-
	      lization Report. For multiprocessor systems, the CPU values  are
	      global  averages	among all processors.  The report has the fol-
	      lowing 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  servic-
		     ing 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 parti-
	      tions 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.	Transfer rates are shown in 1K
	      blocks  by default, unless the environment variable POSIXLY_COR-
	      RECT is set, in which case 512-byte blocks are used.  The report
	      may show the following fields, depending on the flags used:

	      Device:
		     This  column  gives  the  device  (or  partition) name as
		     listed in the /dev directory.

	      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 inde-
		     terminate size.

	      Blk_read/s (kB_read/s, MB_read/s)
		     Indicate  the  amount  of	data  read  from  the	device
		     expressed	in  a  number of blocks (kilobytes, megabytes)
		     per second. Blocks are equivalent to sectors  and	there-
		     fore have a size of 512 bytes.

	      Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s)
		     Indicate  the  amount  of	data  written  to  the	device
		     expressed in a number of  blocks  (kilobytes,  megabytes)
		     per second.

	      Blk_read (kB_read, MB_read)
		     The total number of blocks (kilobytes, megabytes) read.

	      Blk_wrtn (kB_wrtn, MB_wrtn)
		     The  total	 number of blocks (kilobytes, megabytes) writ-
		     ten.

	      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 (after merges) of read requests completed  per
		     second for the device.

	      w/s
		     The number (after merges) of write requests completed per
		     second for the device.

	      rsec/s (rkB/s, rMB/s)
		     The number of sectors (kilobytes,	megabytes)  read  from
		     the device per second.

	      wsec/s (wkB/s, wMB/s)
		     The  number  of sectors (kilobytes, 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 servic-
		     ing them.

	      r_await
		     The  average  time	 (in  milliseconds)  for read requests
		     issued to the device to be served. This includes the time
		     spent by the requests in queue and the time spent servic-
		     ing them.

	      w_await
		     The average time (in  milliseconds)  for  write  requests
		     issued to the device to be served. This includes the time
		     spent by the requests in queue and the time spent servic-
		     ing them.

	      svctm
		     The  average  service  time  (in  milliseconds)  for  I/O
		     requests that were issued to the device. Warning! Do  not
		     trust this field any more.	 This field will be removed in
		     a future sysstat version.

	      %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%.

OPTIONS
       -c     Display the CPU utilization report.

       -d     Display the device utilization report.

       -h     Make the Device Utilization Report easier to read by a human.

       -k     Display statistics in kilobytes per second.

       -m     Display statistics in megabytes per second.

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

       -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.

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

       -V     Print version number then exit.

       -x     Display extended statistics.

       -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 vari-
       ables:


       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.


       POSIXLY_CORRECT
	      When this variable is set, transfer rates are shown in  512-byte
	      blocks instead of the default 1K blocks.


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	inter-
	      vals 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.

       Kernels older than 2.6.x are no longer supported.

       The average service time (svctm field) value  is	 meaningless,  as  I/O
       statistics  are	calculated  at block level, and we don't know when the
       disk driver starts to process a request. For this  reason,  this	 field
       will be removed in a future sysstat version.

FILES
       /proc/stat contains system statistics.

       /proc/uptime contains system uptime.

       /proc/diskstats contains disks statistics.

       /sys contains statistics for block devices.

       /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), nfsiostat(1), cifsiostat(1)

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



Linux				   MAY 2011			     IOSTAT(1)