2014年5月31日星期六

Linux_064:常用命令之二十:iostat

环境:RHEL 6.5

iostat(I/O statistics)命令可以查看CPU、网卡、tty设备、磁盘、CD-ROM 等设备的活动情况。
iostat属于sysstat软件包,可以用yum install sysstat 直接安装。

命令格式:iostat[参数][时间][次数]
(1)-C:显示CPU使用情况。
(2)-d:显示磁盘使用情况。
(3)-k:以 KB 为单位显示。
(4)-m:以 M 为单位显示。
(5)-N:显示磁盘阵列(LVM)信息。
(6)-n:显示NFS 使用情况。
(7)-p[磁盘]:显示磁盘和分区的情况。
(8)-t:显示终端和CPU的信息。
(9)-x:显示详细信息。
(10)-V:显示版本信息。

使用举例:

1.iostat:显示所有设备负载信息
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain) 2014年05月31日 _x86_64_(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                      0.25    0.01    0.27            0.12        0.00   99.34

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.11         0.00        420          0
scd2              0.02         0.12         0.00        440          0
sda               5.05       194.64        17.28     737452      65488
dm-0              8.57       187.42        17.28     710082      65456
dm-1              0.08         0.68         0.00       2576          0

1.1 CPU属性说明:
(1)%user:CPU处在用户模式下的时间百分比。
(2)%nice:CPU处在带NICE值的用户模式下的时间百分比。
(3)%system:CPU处在系统模式下的时间百分比。
(4)%iowait:CPU等待输入输出完成时间的百分比。
(5)%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
(6)%idle:CPU空闲时间百分比。
备注:
(1)如果%iowait的值过高,表示硬盘存在I/O瓶颈。
(2)如果%idle的值高,表示CPU较空闲。
(3)如果%idle的值高但系统响应慢时,有可能是CPU在等待分配内存,表明此时的系统的瓶颈是内存。
(4)如果%idle的值持续低于10,那么系统的CPU处理能力相对较低,表明此时系统的瓶颈是CPU。

1.2 Device属性值说明:
(1)tps:设备每秒的传输次数。
(2)kB_read/s:每秒从设备读取的数据量(单位KB)。
(3)kB_wrtn/s:每秒向设备写入的数据量(单位KB)。
(4)kB_read:读取的总数据量(单位KB)。
(5)kB_wrtn:写入的总数据量(单位KB)。
(6)Blk_read/s: 每秒读扇区数量(一扇区为512bytes)。
(7)Blk_wrtn/s: 每秒写扇区数量(一扇区为512bytes)。
(8)Blk_read: 取样时间间隔内读扇区总数量(一扇区为512bytes)。
(9)Blk_wrtn: 取样时间间隔内写扇区总数量(一扇区为512bytes)。

2. iostat 2 3:每隔2秒显示一次所有设备负载信息,显示三次。

3. iostat -d -x -k:显示所有磁盘的负载详细信息。

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.44    38.59  0.40 22.32    21.85   243.71    23.37     0.04    1.78   4.20   9.54
sda1              0.00     0.00  0.00  0.00     0.00     0.00    18.90     0.00    8.26   6.46   0.00
sda2              0.36     0.43  0.11  0.01     1.87     1.76    63.57     0.01   63.75   1.94   0.02
sda3              0.00     1.24  0.04  0.95     0.31     8.75    18.42     0.04   39.77   8.73   0.86
sda4              0.00     0.00  0.00  0.00     0.00     0.00     2.00     0.00   19.67  19.67   0.00
sda5              0.00     6.65  0.00  6.94     0.06    54.37    15.67     0.26   36.81   4.48   3.11
sda6              0.00     1.71  0.01  2.19     0.09    15.61    14.29     0.03   12.40   5.84   1.28
sda7              0.08    28.56  0.25 12.24    19.52   163.22    29.28     0.27   21.46   5.00   6.25

说明:
(1)rrqm/s:每秒进行 merge 的读操作数目。
(2)wrqm/s:每秒进行 merge 的写操作数目。
(3)r/s:每秒完成的读 I/O 设备次数。
(4)w/s:每秒完成的写 I/O 设备次数。
(5)rsec/s:每秒读扇区数。
(6)wsec/s:每秒写扇区数。
(7)rkB/s:每秒读K字节数,是 rsect/s 的一半,因为每扇区大小为512字节。
(8)wkB/s:每秒写K字节数,是 wsect/s 的一半。
(9)avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。
(10)avgqu-sz:平均I/O队列长度。
(11)await:平均每次设备I/O操作的等待时间(毫秒)。
(12)svctm:平均每次设备I/O操作的服务时间 (毫秒)。
(13)%util:  一秒中有百分之多少的时间用于 I/O 操作,即被IO消耗的CPU百分比。
备注:
(1)如果 %util 接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
(2)如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,I/O响应太慢,需要进行优化。
(3)如果avgqu-sz比较大,表示有I/O在等待。

4. iostat -c 1 3:显示CPU信息。

参考文献:
1. http://www.cnblogs.com/peida/archive/2012/12/28/2837345.html

没有评论: