今天所做的努力
都是在为明天积蓄力量

Linux系统IO监控命令之iostat命令详解

简介

iostat主要用于监控系统设备的io负载情况,iostat首次运行是现实自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

语法

iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]

入门使用

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

# iostat
Linux 2.6.32-573.el6.x86_64 (node-5)     06/14/2017     _x86_64_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.12    0.00    0.32    0.56    0.00   99.00

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               4.38       169.17        28.12     283700      47162
scd0              0.02         0.16         0.00        264          0

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

第一行显示的为当前系统内核版本,系统时间,cpu核数。

avg-cpu段:
%user:在用户级别运行所使用的CPU的百分比。
%nice nice操作所使用的CPU的百分比。
%system:在系统级别(kernel)运行所使用的CPU的百分比。
%iowaitCPU等待硬件I/O时,所占用的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU无意识等待时间百分比。
%idleCPU空闲时的百分比。

Device段:
tps: 每秒钟发送到的I/O请求数。
Blk_read/s: 每秒读取的block数。
Blk_wrtn/s: 每秒写入的block数。
Blk_read: 读入的block总数。
Blk_wrtn: 写入的block总数。

iostat命令常用参数说明

-c 仅显示 CPU 统计信息。与 -d 选项互斥。
-d 仅显示磁盘统计信息。与 -c 选项互斥。
-k  KB为单位显示每秒的磁盘请求数,默认单位块。
-m MB为单位显示每秒的磁盘请求数。
-N 显示磁盘阵列信息
-n 显示网络文件系统NFS报告。此选项仅适用于Linux内核2.6.17以上版本。
-p device | ALL。与 -x 选项互斥,用于显示块设备及系统分区的统计信息,也可以在 -p 后指定一个设备名,如:iostat -p hda;或显示所有设备:iostat -p ALL
-t 在输出数据时,打印收集数据的时间。
-V 打印版本号和帮助信息。
-x 输出扩展信息。

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次.

iostat -x 参数说明

iostat -x会输出扩展信息,显示信息如下。

Linux 2.6.32-573.el6.x86_64 (node-5)     06/14/2017     _x86_64_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.19    0.28    0.00   99.47

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.03     1.21    1.63    0.54    83.63    13.96    45.00     0.02   10.37    4.34   28.61   2.79   0.60
scd0              0.00     0.00    0.01    0.00     0.08     0.00     8.00     0.00    4.97    4.97    0.00   4.97   0.00

第一行跟avg-cpu内容显示与前面的介绍一样,就不再详细说明。

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%时,表示设备带宽已经占满。
赞(0)
未经允许不得转载:流觞 » Linux系统IO监控命令之iostat命令详解
分享到: 更多 (0)