iostat: A Tool for Monitoring System I/O Statistics

Functionality:
iostat is a utility used to gather and report system I/O statistics, commonly employed for analyzing disk performance.

Syntax:
iostat [options]

Overview:
In addition to I/O statistics, iostat can also display CPU usage information.

Common Options:

  • -c: Display CPU usage only.
  • -d: Show device utilization statistics only.
  • -k: Display statistics in kilobytes per second instead of blocks per second.
  • -m: Display statistics in megabytes per second.
  • -p: Display statistics for block devices and all utilized partitions.
  • -t: Display the time each report is generated.
  • -V: Display version information and exit.
  • -x: Display extended I/O statistics.

Examples:

To display the usage of all devices at the current time:

$ iostat -x
Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)  2024年10月18日  _x86_64_  (2 CPU)

avg-cpu:  %user  %nice  %system  %iowait  %steal  %idle
           0.10   0.02    0.27     0.01    0.00   99.60

Device      r/s  rkB/s  rrqm/s  %rrqm  r_await  rareq-sz  w/s  wkB/s  wrqm/s  %wrqm  w_await  wareq-sz  %util
loop0      0.00   0.00    0.00   0.00    0.00     1.21   0.00    0.00   0.00   0.00    0.00     0.00    0.00
...
sda        0.30  10.96    0.10  24.42    0.35    36.60   0.51   23.23   0.64  55.59    0.41    45.13    0.02

Field Descriptions:

  • Device: Device name.
  • r/s: Number of read requests per second.
  • w/s: Number of write requests per second.
  • rkB/s: Kilobytes read per second.
  • wkB/s: Kilobytes written per second.
  • %util: Percentage of time the device was busy with I/O requests.

To display statistics for the device sda:

$ iostat -x /dev/sda
Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)  2024年10月18日  _x86_64_  (2 CPU)

avg-cpu:  %user  %nice  %system  %iowait  %steal  %idle
           0.10   0.02    0.27     0.01    0.00   99.60

Device      r/s  rkB/s  rrqm/s  %rrqm  r_await  rareq-sz  w/s  wkB/s  wrqm/s  %wrqm  w_await  wareq-sz  %util
sda        0.30  10.95    0.10  24.42    0.35    36.60   0.51   23.21   0.64  55.57    0.41    45.09    0.02

To display only device usage without CPU statistics:

$ iostat -xd /dev/sda

For overall system I/O status:

$ iostat
Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)  2024年10月18日  _x86_64_  (2 CPU)

avg-cpu:  %user  %nice  %system  %iowait  %steal  %idle
           0.10   0.02    0.27     0.01    0.00   99.60

Device     tps  kB_read/s  kB_wrtn/s  kB_dscd/s  kB_read  kB_wrtn  kB_dscd
loop0      0.00      0.00      0.00      0.00        17        0        0
...
sda        0.81     10.95     23.21      0.00   4791860  10157237       0

To display CPU I/O statistics only:

$ iostat -c

To display statistics in megabytes per second:

$ iostat -m

iostat用于统计系统I/O状态信息

功能说明:用于统计系统I/O状态信息,常用于分析磁盘性能。

语  法:iostat [options]

补充说明:也能显示CPU使用情况。

   项:

-c    仅显示CPU使用情况

-d    仅显示设备利用率

-k    显示状态以千字节每秒为单位,而不使用块每秒

-m   显示状态以兆字节每秒为单位

-p    仅显示块设备和所有被使用的其他分区的状态

-t     显示每个报告产生时的时间

-V   显示版号并退出

-x    显示扩展状态

参  数:

   例:

显示当前时刻所有设备使用情况:

$ iostat -x

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日   _x86_64_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.10    0.02    0.27    0.01    0.00   99.60

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util

loop0            0.00      0.00     0.00   0.00    0.00     1.21    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop1            0.00      0.00     0.00   0.00    0.07     2.88    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop10           0.02      0.05     0.00   0.00    0.02     3.20    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop11           0.00      0.00     0.00   0.00    0.29     4.80    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop12           0.00      0.00     0.00   0.00    0.24     7.20    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop13           0.00      0.01     0.00   0.00    0.27    13.64    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop14           0.00      0.00     0.00   0.00    0.46    12.07    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop15           0.00      0.16     0.00   0.00    0.04    50.89    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop16           0.00      0.00     0.00   0.00    0.32    18.27    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop17           0.00      0.00     0.00   0.00    0.06     8.36    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop2            0.00      0.00     0.00   0.00    0.05     2.88    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop3            0.00      0.00     0.00   0.00    0.06     4.50    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop4            0.00      0.03     0.00   0.00    0.20    13.73    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop5            0.00      0.00     0.00   0.00    0.23    14.72    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop6            0.00      0.23     0.00   0.00    0.55    52.20    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop7            0.00      0.01     0.00   0.00    0.03     3.79    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop8            0.00      0.01     0.00   0.00    0.05     3.89    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

loop9            0.02      0.36     0.00   0.00    0.16    19.87    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

sda              0.30     10.96     0.10  24.42    0.35    36.60    0.51     23.23     0.64  55.59    0.41    45.13    0.00      0.00     0.00   0.00    0.00     0.00    0.13    0.72    0.00   0.02

输出结果中的字段解释:

Device   设备名称

rrqm/s    每秒需要读取需求的数量

wrqm/s  每秒需要写入需求的数量

r/s          每秒实际读取需求的数量

w/s         每秒实际写入需求的数量

rsec/s     每秒读取区段的数量

wsec/s   每秒写入区段的数量

rkB/s     每秒实际读取的大小,单位为KB

wkB/s    每秒实际写入的大小,单位为KB

avgrq-sz       需求的平均大小区段

avgqu-sz       需求的平均队列长度

await     等待I/O平均的时间(milliseconds)

svctm    I/O需求完成的平均时间

%util     被I/O需求消耗的CPU百分比

显示当前时刻设备sda使用情况:

$ iostat -x /dev/sda

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日   _x86_64_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.10    0.02    0.27    0.01    0.00   99.60

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util

sda              0.30     10.95     0.10  24.42    0.35    36.60    0.51     23.21     0.64  55.57    0.41    45.09    0.00      0.00     0.00   0.00    0.00     0.00    0.13    0.72    0.00   0.02

可以使用-d选项不显示cpu使用情况,只显示设备的使用情况:

$ iostat -xd /dev/sda

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日   _x86_64_  (2 CPU)

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util

sda              0.30     10.95     0.10  24.42    0.35    36.60    0.51     23.21     0.64  55.57    0.41    45.09    0.00      0.00     0.00   0.00    0.00     0.00    0.13    0.72    0.00   0.02

显示系统整体I/O状态信息:

$ iostat

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日   _x86_64_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.10    0.02    0.27    0.01    0.00   99.60

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd

loop0             0.00         0.00         0.00         0.00         17          0          0

loop1             0.00         0.00         0.00         0.00       1000          0          0

loop10            0.02         0.05         0.00         0.00      22978          0          0

loop11            0.00         0.00         0.00         0.00        456          0          0

loop12            0.00         0.00         0.00         0.00        367          0          0

loop13            0.00         0.01         0.00         0.00       4052          0          0

loop14            0.00         0.00         0.00         0.00        495          0          0

loop15            0.00         0.16         0.00         0.00      68346          0          0

loop16            0.00         0.00         0.00         0.00       1681          0          0

loop17            0.00         0.00         0.00         0.00        301          0          0

loop2             0.00         0.00         0.00         0.00        991          0          0

loop3             0.00         0.00         0.00         0.00       1786          0          0

loop4             0.00         0.03         0.00         0.00      15142          0          0

loop5             0.00         0.00         0.00         0.00       1148          0          0

loop6             0.00         0.23         0.00         0.00     102514          0          0

loop7             0.00         0.01         0.00         0.00       2567          0          0

loop8             0.00         0.01         0.00         0.00       2434          0          0

loop9             0.02         0.36         0.00         0.00     155861          0          0

sda               0.81        10.95        23.21         0.00    4791860   10157237          0

只显示CPU的I/O状态:

$ iostat -c

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日 _x86_64_     (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.10    0.02    0.27    0.01    0.00   99.60

以兆字节每秒为单位显示:

$ iostat -m

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月18日   _x86_64_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.10    0.02    0.27    0.01    0.00   99.60

Device             tps    MB_read/s    MB_wrtn/s    MB_dscd/s    MB_read    MB_wrtn    MB_dscd

loop0             0.00         0.00         0.00         0.00          0          0          0

loop1             0.00         0.00         0.00         0.00          0          0          0

loop10            0.02         0.00         0.00         0.00         22          0          0

loop11            0.00         0.00         0.00         0.00          0          0          0

loop12            0.00         0.00         0.00         0.00          0          0          0

loop13            0.00         0.00         0.00         0.00          3          0          0

loop14            0.00         0.00         0.00         0.00          0          0          0

loop15            0.00         0.00         0.00         0.00         66          0          0

loop16            0.00         0.00         0.00         0.00          1          0          0

loop17            0.00         0.00         0.00         0.00          0          0          0

loop2             0.00         0.00         0.00         0.00          0          0          0

loop3             0.00         0.00         0.00         0.00          1          0          0

loop4             0.00         0.00         0.00         0.00         14          0          0

loop5             0.00         0.00         0.00         0.00          1          0          0

loop6             0.00         0.00         0.00         0.00        100          0          0

loop7             0.00         0.00         0.00         0.00          2          0          0

loop8             0.00         0.00         0.00         0.00          2          0          0

loop9             0.02         0.00         0.00         0.00        152          0          0

sda               0.81         0.01         0.02         0.00       4679       9920          0