子曰:工欲善其事,必先利其器。
命令描述
iostat命令用于通过观察设备相对于其平均传输速率的活动时间来监视系统输入/输出设备负载。iostat命令生成的报告可以指导更改系统配置,以更好地平衡物理磁盘之间的输入/输出负载
iostat命令生成的第一个报告提供有关自系统引导以来的统计信息。每个后续报告都涵盖自上次报告以来的时间。每次运行iostat命令时都会报告所有统计信息。该报告由一个CPU标题行和一行CPU统计信息组成。在多处理器系统上,CPU统计信息是在系统范围内计算所有处理器的平均值。将显示一个设备标,然后显示已配置的每个设备的统计信息行。使用选项-n时,将显示NFS标题行,然后显示已mount的每个网络文件系统的统计信息行。
interval参数指定每个报告之间以秒为单位的时间间隔。第一个报告包含自系统启动(引导)以来的时间统计信息。每个后续报告都包含自上次报告以来间隔期间收集的统计信息。count参数可以与interval参数一起使用。如果指定了count参数,则count的值确定间隔内生成的报告数量。如果指定了interval参数而没有指定count参数,则iostat命令会连续生成报告。
报告格式
iostat命令生成三种类型的报告:CPU利用率报告、设备利用率报告和网络文件利用率报告。
CPU Utilization Report
iostat命令生成的第一个报告是CPU利用率报告。 对于多处理器系统,CPU利用率的值是所有处理器的全局平均值。 CPU利用率报告的格式如下:
%user
用户模式下CPU利用率百分比。%nice
用户模式下使用NICE全新的CPU利用率百分比。%system
系统模式下CPU利用率百分比。%iowait
CPU因等待I/O操作而处于空闲状态的时间百分比。%steal
虚拟机管理程序为另一个虚拟处理器提供服务时虚拟CPU或CPU等待所花费的时间百分比。%idle
CPU处于空闲状态的时间百分比(无I/O操作)。.
Device Utilization Report
iostat命令生成的第二个报告是设备利用率报告。 设备报告提供有关每个物理设备或分区的统计信息。 可以在命令行上输入要显示统计信息的块设备。 如果不使用-x选项,也可以在命令行中输入分区。 如果未输入设备或分区,则显示系统使用的每个设备的统计信息,并提供内核维护统计信息的统计信息。 如果在命令行上给出了ALL关键字,则会显示系统定义的每个设备的统计信息,包括从未使用过的设备。 报告可能会显示以下字段,具体取决于使用的标志:
Device:
设备或分区名。tps
每秒传输给设备I/O的次数,一次传输对应设备一次I / O请求。 可以将多个逻辑请求组合到设备的单个I / O请求中。 传输的大小不确定。Blk_read/s
从设备读取的数据量,单位块/秒。 块等效于内核2.4及更高版本的扇区,因此快大小为512字节。 对于较旧的内核,块的大小不确定。Blk_wrtn/s
写入设备的数据量,单位块/秒。Blk_read
从设备读取块的总和。Blk_wrtn
写入设备的块的总和。kB_read/s
每秒从设备读取的数据量,单位KB/skB_wrtn/s
每秒写入设备的数据量,单位KB/s.kB_read
从设备读取的数据总和(KB)。kB_wrtn
写入设备的数据总和(KB)MB_read/s
每秒从设备读取的数据量,单位M/sMB_wrtn/s
每秒写入设备的数据量,单位M/s.MB_read
从设备读取的数据总和(M)。MB_wrtn
写入设备的数据总和(M)rrqm/s
每秒合并的读请求数。wrqm/s
每秒合并的写请求数。r/s
每秒读请求数。w/s
每秒写请求数。rsec/s
每秒读取的扇区数。wsec/s
每秒写入的扇区数。
*rkB/s
每秒读取的KB数据量。
wkB/s
每秒写入的KB数据量。rMB/s
每秒读取的M数据量。wMB/s
每秒写入的M数据量。avgrq-sz
发给设备的平均请求大小(单位扇区)。avgqu-sz
请求队列平均长度。await
请求I/O平均等待时间(队列等待时间+实际I/O时间)。svctm
废弃参数%util
CPU等待I/O的时间比,该值越大说明I/O为当前系统的瓶颈。
Network Filesystem report
Options
- -c
报告CPU利用率 - -d
报告设备利用率 - -k
以KB为单位展示统计数据。 - -m
以MB为单位展示统计数据。 - -N
显示所有的device mapper。 - -p [ { device [,…] | ALL } ]
展示系统使用的设备块及其所有分区的统计数据。 - -t
统计时间间隔。 - -V
打印版本并马上退出。 - -x
展示扩展统计项。 - -z
iostat忽略在采样期间没有活动的任何设备。