Linux iostat 命令详解

简介:
iostat是I/O statistics(输入/输出)统计的缩写。iostat工具对系统磁盘操作活动进行监控。

安装:

[root@hankyoon ~]# yum install sysstat

语法:

iostat [选项] [<时间间隔> [次数]]

参数详解:

-c:仅显示CPU使用情况
-d:仅显示设备利用率
-k:显示状态以千字节每秒为单位,而不使用块每秒
-m:显示状态以兆字节每秒为单位
-N:显示任何设备映射器设备的注册设备映射器名称。用于查看LVM2统计信息。
-n:显示网络文件系统(NFS)报告。
-p:仅显示块设备和所有被使用的其他分区的状态
-t:显示每个报告产生的时间
-V:显示版本
-x:显示扩展状态

输出详解:

[root@hankyoon ~]# iostat
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     09/09/2020     _x86_64_    (40 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.17    0.01    0.41    0.00    0.00   99.40

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               1.25         0.23        21.48    6919686  649466207
sdb               4.55        66.16       374.91 1999989896 11333551479

avg-cpu:总体cpu使用情况,对于多核,为所有cpu平均值。重点关注 "%iowait",表示CPU用于等待 IO 请求的时间。
备注:
%user:  显示在用户级(应用程序)执行时发生的CPU利用率百分比
%nice:  以良好的优先级显示在用户级别执行时发生的CPU利用率百分比
%system:显示在系统级(内核)执行时发生的CPU利用率百分比
%iowait:显示当系统有未完成的磁盘I/O请求时,CPU或CPU空闲的时间百分比
%steal: 显示在虚拟机监控程序为另一个虚拟pro提供服务时,虚拟CPU或CPU花费的非自愿等待时间的百分比实现
%idle:  显示CPU空闲和系统没有未完成磁盘I/O请求的时间百分比

Device: 磁盘设备的IO统计信息:
tps:    每秒发送到设备的传输数。传输是对设备的I/O请求。
Blk_read/s:每秒从设备读取的数据量,以块数表示。单位KB
Blk_wrtn/s:以每秒块数表示的写入设备的数据量。单位KB
Blk_read:读取的块的总数。单位KB
Blk_wrtn:写入的块的总数。单位KB

磁盘输出详解:

[root@hankyoon ~]# iostat -dx -k 1
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     09/09/2020     _x86_64_    (40 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     1.17    0.00    1.24     0.11    10.74    17.39     0.00    0.73    2.55    0.72   0.44   0.06
sdb               0.00     0.03    0.28    4.26    33.08   187.45    97.04     0.02    3.58    1.39    3.73   0.54   0.25

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s: 每秒对该设备的写请求被合并次数
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz: 平均每次IO操作的数据量(扇区数为单位)
avgqu-sz: 平均等待处理的IO请求队列长度
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm: 平均每次IO请求的处理时间(毫秒为单位)
%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

重点关注参数:

1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。

2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。

3await 表示每次IO请求等待时间,包括等待时间和处理时间。

4、svctm 表示每次IO请求处理的时间。

5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。
原文地址:https://www.cnblogs.com/hankyoon/p/13637895.html