iostat可以显示CPU和I/O系统的负载情况及分区状态信息.
Linux 2.6.18-308.el5 (localhost.localdomain) 06/08/2013
avg-cpu: %user %nice %system %iowait %steal %idle
0.18 0.04 0.94 0.60 0.00 98.24
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.96 41.13 14.78 665095 239046
sda1 0.00 0.11 0.00 1854 14
sda2 1.96 40.89 14.77 661186 238864
sda3 0.00 0.10 0.01 1615 168
hdc 0.00 0.25 0.00 3992 0
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总数.
扩展:
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 发送到设备的请求的平均大小,单位是扇区。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 发送到设备的请求的平均队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: I/O请求平均请求等待时间.包括发送请求和执行的时间。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
-c 仅显示CPU统计信息.与-d选项互斥.
-d 仅显示磁盘统计信息.与-c选项互斥.
-k 以K为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
# iostat -p hda
或显示所有设备
# iostat -p ALL
-t 在输出数据时,打印搜集数据的时间.
-V 打印版本号和帮助信息.
-x 输出扩展信息.
每隔2秒显示一次hda,hdb两个设备的扩展统计信息,共输出6次.
iostat -x hda hdb 2 6
sar:sar [options] [-A] [-o file] t [n] n(默认是1) 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔。
下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情 况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。