11.7 iostat: I/O信息统计
iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视。它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况。同vmstat命令一样,iostat命令也不能对某个进程进行深入分析,仅会对系统的整体情况进行分析。
iostat [option] [interval [count]]
1)在iostat命令及后面的选项里,每个元素之间都至少要有一个空格。
2)interval 表示两次输出之间的间隔时间。
3)count表示按照delay指定的时间间隔统计的次数。
iostat命令的参数选项及说明
-c 显示CPU的使用情况
-d 显示磁盘的使用情况
-k 每秒以kB为单位显示数据
-m 每秒以MB为单位显示数据
-n 显示NFS的使用情况
-t 显示每次统计的执行时间
-p device指定要统计的磁盘设备名称,默认为所有的磁盘设备
-x 显示扩展统计
[root@cs6 ~]# iostat
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月06日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.26 0.00 0.28 0.04 0.00 99.42
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.81 58.79 37.24 181198 114780
dm-0 6.02 55.86 37.23 172178 114752
dm-1 0.10 0.78 0.00 2400 0
以下是命令结果说明。
第1~2行中各列的含义具体如下。
%user:用户进程消耗的CPU时间百分比。
%nice:改变过优先级的进程占用的CPU时间百分比。
%system:系统(内核)进程消耗的CPU时间百分比。
%iowait:I0等待所占用的CPU时间百分比。
%steal:虚拟机强制CPU等待的时间百分比。
%idle:CPU处在空闲状态的时间百分比。
第3~4行中各列的含义如下。
tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
Blk_read/s:表示每秒读取的数据块数。
Blk_wrtn/s:表示每秒写人的数据块数。
Blkread:表示读取的所有块数。
Blk_wrtn:表示写入的所有块数。
定时显示所有信息
[root@cs6 ~]# iostat 2 3
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.24 0.00 0.26 0.04 0.00 99.47
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.70 51.07 36.11 182710 129196
dm-0 5.70 48.55 36.10 173690 129168
dm-1 0.08 0.67 0.00 2400 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
只显示磁盘统计信息。
[root@cs6 ~]# iostat -d
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.69 50.88 35.98 182710 129196
dm-0 5.68 48.36 35.97 173690 129168
dm-1 0.08 0.67 0.00 2400 0
[root@cs6 ~]# iostat -d -k
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.63 24.51 17.33 91355 64598
dm-0 5.47 23.30 17.33 86845 64584
dm-1 0.08 0.32 0.00 1200 0
[root@cs6 ~]# iostat -d -m
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 1.63 0.02 0.02 89 63
dm-0 5.45 0.02 0.02 84 63
dm-1 0.08 0.00 0.00 1 0
查看扩展信息
[root@cs6 ~]# iostat -d -x -k
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.28 2.99 0.89 0.39 19.03 13.52 50.97 0.00 1.38 1.23 1.73 0.73 0.09
dm-0 0.00 0.00 0.89 3.38 18.09 13.52 14.82 0.01 2.51 1.89 2.67 0.21 0.09
dm-1 0.00 0.00 0.06 0.00 0.25 0.00 8.00 0.00 0.09 0.09 0.00 0.09 0.00
以下是命令结果说明。
rrqm/s:每秒进行merge的读操作数目。
wrqm/s:每秒进行merge的写操作数目。
r/s:每秒完成的读I/O设备次数。
w/s:每秒完成的写I/O设备次数。
rkB/s:每秒读入的千字节数。
wkB/s:每秒写人的千字节数。
avgrq-sz:设备平均每次进行I/O操作的数据大小(扇区)。
avgqu-sz;平均I/O队列长度。
await:设备平均每次I/O操作的等待时间(毫秒)。
svctm:设备平均每次1/0操作的服务时间(毫秒)。
%util:每秒钟用于I/O操作的百分比。
只查看CPU的统计信息
[root@cs6 ~]# iostat -c
Linux 2.6.32-754.el6.x86_64 (cs6) 2019年05月05日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 0.19 0.03 0.00 99.60