iostat 用于监控统计系统输入输出设备和 CPU 的使用情况,英文 I/O statistics 的缩写。

它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU 使用情况。同 vmstat 一样,iostat 也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat 属于 sysstat 软件包,所以使用前需先安装 sysstat

命令格式

1
iostat [参数] [间隔时间] [报告次数]
  • 间隔时间:每次报告的间隔时间(秒)
  • 报告次数:显示报告的次数

常用参数

  • -C 显示 CPU 使用情况
  • -d 显示磁盘使用情况
  • -k 以 KB 为单位显示
  • -m 以 M 为单位显示
  • -N 显示磁盘阵列(LVM) 信息
  • -n 显示 NFS 使用情况
  • -p[磁盘] 显示磁盘和分区的情况
  • -t 显示终端和 CPU 的信息
  • -x 显示详细信息
  • -V 显示版本信息

更多参数和说明,可用 man iostat 查看。

属性说明

CPU 属性值

标示说明
%user CPU 处在用户模式下的时间百分比
%nice CPU 处在带 NICE 值的用户模式下的时间百分比
%system CPU 处在系统模式下的时间百分比
%iowait CPU 等待输入输出完成时间的百分比
%steal 管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比
%idle CPU 空闲时间百分比

DISK 属性值

标示说明
Device 监测设备名称
rrqm/s 每秒需要读取需求的数量
wrqm/s 每秒需要写入需求的数量
r/s 每秒实际读取需求的数量
w/s 每秒实际写入需求的数量
rsec/s 每秒读取区段的数量
wsec/s 每秒写入区段的数量
rkB/s 每秒实际读取的大小,单位为 KB
wkB/s 每秒实际写入的大小,单位为 KB
rMB/s 每秒实际读取的大小,单位为 MB
wMB/s 每秒实际写入的大小,单位为 MB
avgrq-sz 需求的平均大小区段
avgqu-sz 需求的平均队列长度
await 等待 I/O 平均的时间(milliseconds)
svctm I/O 需求完成的平均时间
%util 被 I/O 需求消耗的 CPU 百分比

TPS 属性值

标识说明
tps 该设备每秒的传输次数
kB_read/s 每秒从设备读取的数据量
kB_wrtn/s 每秒向设备写入的数据量
kB_read 读取的总数据量
kB_wrtn 写入的总数据量

应用实例

1
2
3
4
5
6
7
8
9
iostat -k

Linux 2.6.32-642.13.1.el6.x86_64 (upfor106) 	2016年04月21日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.49    0.00    0.17    0.03    0.00   99.31

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.88         1.41         8.30   47983021  281958128

参考资料