iostat

iostat用于输出CPU和磁盘I/O相关的统计信息.
命令格式:

iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ]

[ interval [ count ] ]


1)iostat的简单使用

iostat可以显示CPU和I/O系统的负载情况及分区状态信息.
直接执行iostat可以显示下面内容:

# iostat

Linux 2.6.9-8.11.EVAL (ts3-150.ts.cn.tlan) 08/08/2007


avg-cpu: %user %nice %sys %iowait %idle

12.01 0.00 2.15 2.30 83.54


Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

hda 7.13 200.12 34.73 640119 111076

各个输出项目的含义如下:

avg-cpu段:

%user: 在用户级别运行所使用的CPU的百分比.

%nice: nice操作所使用的CPU的百分比.

%sys: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%idle: CPU空闲时间的百分比.

Device段:

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的block数.

Blk_wrtn/s: 每秒写入的block数.

Blk_read: 读入的block总数.

Blk_wrtn: 写入的block总数.

2)iostat参数说明

iostat各个参数说明:

-c 仅显示CPU统计信息.与-d选项互斥.

-d 仅显示磁盘统计信息.与-c选项互斥.

-k 以K为单位显示每秒的磁盘请求数,默认单位块.

-p device | ALL

与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:

# iostat -p hda

或显示所有设备

# iostat -p ALL

-t 在输出数据时,打印搜集数据的时间.

-V 打印版本号和帮助信息.

-x 输出扩展信息.

3)iostat输出项目说明

Blk_read

读入块的当总数.


Blk_wrtn

写入块的总数.


kB_read/s

每秒从驱动器读入的数据量,单位为K.


kB_wrtn/s

每秒向驱动器写入的数据量,单位为K.


kB_read

读入的数据总量,单位为K.


kB_wrtn

写入的数据总量,单位为K.


rrqm/s

将读入请求合并后,每秒发送到设备的读入请求数.


wrqm/s

将写入请求合并后,每秒发送到设备的写入请求数.


r/s

每秒发送到设备的读入请求数.


w/s

每秒发送到设备的写入请求数.


rsec/s

每秒从设备读入的扇区数.


wsec/s

每秒向设备写入的扇区数.


rkB/s

每秒从设备读入的数据量,单位为K.


wkB/s

每秒向设备写入的数据量,单位为K.


avgrq-sz

发送到设备的请求的平均大小,单位是扇区.


avgqu-sz

发送到设备的请求的平均队列长度.


await

I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.


svctm

发送到设备的I/O请求的平均执行时间.单位是毫秒.


%util

在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.

当这个值接近100%时,表示设备带宽已经占满.

4)iostat示例

# iostat

显示一条统计记录,包括所有的CPU和设备.


# iostat -d 2

每隔2秒,显示一次设备统计信息.


# iostat -d 2 6

每隔2秒,显示一次设备统计信息.总共输出6次.


# iostat -x hda hdb 2 6

每隔2秒显示一次hda,hdb两个设备的扩展统计信息,共输出6次.


# iostat -p sda 2 6

每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次.