Linux(Centos 7.6)命令详解:iostat

1.命令作用

报告中央处理器(CPU)的统计数据,以及设备分区的输入/输出统计数据(Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions);在最小安装下没有此命令,需要yum install sysstat安装

2.命令语法

Usage: iostat [ options ] [ <interval> [ <count> ] ]

3.参数详解

OPTION:

  • -c,仅显示CPU利用率报告
  • -d,仅显示设备使用情况报告
  • -h,让设备使用情况报告更易于人类阅读(默认参数)
  • -k,以千字节每秒为单位显示统计数据(默认参数)
  • -m,以兆字节每秒为单位显示统计数据
  • -N,显示任何设备映射设备所注册的设备映射名称;有助于查看LVM2的统计信息
  • -t,打印每份报告显示的时间;时间戳的格式将取决于环境变量S_TIME_FORMAT的值(详情见下文)
  • -V,打印版本号后退出
  • -x,显示详细统计信息
  • -y,如果在设定的时间间隔内显示多条记录,则在系统启动后省略首次报告(其中包含统计数据)
  • -z,告诉 iostat 不要为在采样期间没有发生任何活动的任何设备输出数据
  • -j { ID | LABEL | PATH | UUID | ... },
  • -T,此选项必须与 -g 选项一同使用,并表示仅需显示该组的全局统计信息,而不包括该组中各个设备的统计信息
  • -g <group_name>,显示一组设备的统计信息。iostat 命令会为列表中的每个单独设备报告统计信息,然后会显示一组设备的全局统计信息,其名称为“组名”,由列表中的所有设备组成。ALL 关键字表示系统定义的所有块设备都将包含在该组中
  • -p [ <device> [,...] | ALL ],-p 选项会显示系统所使用的块设备及其所有分区的统计信息。如果在命令行中输入了设备名称,则会显示该设备及其所有分区的统计信息。最后,ALL 关键字表示必须为系统定义的所有块设备和分区(包括那些从未使用过的设备)显示统计信息。如果在该选项之前定义了 -j 选项,则可以在命令行中使用所选的持久名称类型来指定设备名称
  • <device> [...] | ALL,显示指定的一个、多个或者所有设备查看其设备统计信息

interval,连续输出的时间间隔

count,连续输出的总次数

4.常用用例

4.1.无参数输出CPU和设备统计信息

显示自系统启动以来所有CPU和设备的单条历史记录报告

[root@node2 ~]# iostat 
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          24.05    1.40   26.11    1.09    0.00   47.36

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             407.01     17670.61       542.20    1186581      36408
sdb               1.70        36.28         0.00       2436          0

[root@node2 ~]# 

# 输出信息解释:
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)
      内核版本号             主机名      当前日期     CPU架构      CPU核数

avg-cpu:        cpu部分
    %user       显示在用户级别(应用程序)执行过程中所出现的CPU利用率的百分比值
    %nice       显示在以"良好"优先级执行时,用户级别下所发生的CPU利用率的百分比
    %system     显示在系统级别(内核级别)执行过程中所出现的CPU利用率的百分比
    %iowait     展示在系统存在未完成的磁盘I/O请求期间,CPU或多个CPU处于空闲状态的时间所占的百分比;即CPU等待I/O操作完成的空闲时间百分比(若持续过高,可能表示I/O瓶颈)
    %steal      展示在虚拟CPU或这些虚拟CPU中,因主机虚拟化系统正在为其他虚拟处理器服务而处于非自愿等待状态的时间所占的百分比;即虚拟化环境下其他虚拟机占用的CPU时间百分比
    %idle       展示CPU或多个CPU在闲置状态下(系统中不存在未完成的磁盘I/O请求)所占用的时间百分比;即CPU完全空闲时间百分比(低于10%可能表示CPU不足)

Device:         设备部分
    tps         指出每秒向该设备发出的I/O请求次数;多个逻辑请求可以合并为对设备的单个I/O请求;仅是次数,每次传输的大小不确定
    kB_read/s   每秒从设备读取的数据量(默认千字节每秒)
    kB_wrtn/s   每秒写入设备的数据量(默认千字节每秒)
    kB_read     读取的总数据块数量;启动至今累计读取数据总量(KB)
    kB_wrtn     已写入的块总数;启动至今累计写入数据总量(KB)

4.2.仅输出CPU统计信息部分

[root@node2 ~]# iostat -c
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          13.20    4.95   16.65    1.61    0.00   63.59

[root@node2 ~]# 

4.3.仅输出设备统计信息部分

[root@node2 ~]# iostat -d
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             326.57     20807.25       498.58    2896369      69403
sdb               0.82        17.50         0.00       2436          0

[root@node2 ~]# 

4.4.设备以兆字节作为单位显示

[root@node2 ~]# iostat -m
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.79    0.61    2.22    0.21    0.00   95.18

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda              47.75         2.80         0.07       2953         74
sdb               0.11         0.00         0.00          2          0

[root@node2 ~]# 

4.5.设备统计信息显示更详细

[root@node2 ~]# iostat -x
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.52    0.51    1.88    0.17    0.00   95.91

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.76     7.06   36.74    3.41  2406.09    60.52   122.86     0.02    0.58    0.59    0.49   0.22   0.88
sdb               0.00     0.00    0.09    0.00     1.94     0.00    42.74     0.00    0.15    0.15    0.00   0.08   0.00

[root@node2 ~]# 

# 输出信息解释:
主机信息、cpu信息部分与默认一致

Device:          设备部分
    rrqm/s       每秒合并到设备上的排队读取请求的数量
    wrqm/s       每秒合并到设备上的写排队入请求的数量
    r/s          该设备每秒完成的读请求次数(合并后)
    w/s          该设备每秒完成的写请求次数(合并后)
    rkB/s        每秒从设备读取的数据块数量(单位KB)
    wkB/s        每秒写入设备的数据块数量(KB)
    avgrq-sz     向该设备发出的请求的平均大小(以扇区为单位)
    avgqu-sz     发送至该设备的请求的平均排队长度(值 >1 可能表示磁盘过载)
    await        对设备发出I/O请求被处理完成所需的平均时间(单位ms);包括队列等待时间
    r_await      向设备发出的读取请求被处理完成的平均时间(单位ms);包括队列等待时间
    w_await      向设备发出的写入请求被处理的平均所需时间(单位ms);包括队列等待时间
    svctm        向该设备发出的I/O请求的平均服务时间(单位ms,将会弃用)
    %util        设备接收到I/O请求所占用的时间比例(即设备的带宽利用率),接近100%时,表示设备达到饱和状态

4.6.查看指定设备统计信息

多个设备之间空格分开

[root@node2 ~]# iostat sda sdb
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.57    0.17    0.74    0.06    0.00   98.46

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              14.57       807.39        23.29    3118258      89952
sdb               0.03         0.63         0.00       2436          0

[root@node2 ~]#

 4.7.显示设备及其分区的统计信息

[root@node2 ~]# iostat -p            # 显示所有设备及其分区统计信息
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.56    0.17    0.73    0.06    0.00   98.48

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              14.37       796.23        22.97    3118258      89952
sda1              0.53         1.56         0.53       6126       2068
sda2              0.11         2.00         9.11       7844      35664
sda3             13.72       792.33        13.33    3102987      52220
sdb               0.03         0.62         0.00       2436          0

[root@node2 ~]# iostat -p sda        # 显示指定设备及其分区统计信息
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.56    0.17    0.73    0.06    0.00   98.48

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              14.33       794.36        22.91    3118258      89952
sda1              0.53         1.56         0.53       6126       2068
sda2              0.11         2.00         9.09       7844      35664
sda3             13.69       790.47        13.30    3102987      52220

[root@node2 ~]# 

4.8.连续输出CPU设备统计信息

Usage: iostat [ options ] [ <interval> [ <count> ] ]
interval,连续输出的时间间隔,一般取正整数值
count,连续输出的总次数,一般取正整数值,设置count必须前面设置interval

作用:可用于统计命令执行时间段CPU和设置的使用情况,一般可与-y参数一起使用

4.8.1.指定连续输出的时间间隔

之间命令后添加整数值即为间隔时间,然后Ctrl + c 退出连续输出

[root@node2 ~]# iostat 2
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.53    0.15    0.69    0.06    0.00   98.57

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              13.34       738.23        21.35    3119126      90192
sdb               0.03         0.58         0.00       2436          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.50    0.00    0.00   99.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0

4.8.2.指定连续输出的次数

[root@node2 ~]# iostat 2 3
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.53    0.15    0.68    0.05    0.00   98.59

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              13.16       728.36        21.06    3119126      90195
sdb               0.03         0.57         0.00       2436          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.50    0.00   99.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.50    0.00    0.00   99.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0

[root@node2 ~]# 

4.8.3.连续输出省略首次报告

[root@node2 ~]# iostat -y 2 2
Linux 3.10.0-957.el7.x86_64 (node2) 	08/01/2025 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    0.00    0.00    0.00   99.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0

[root@node2 ~]# 

4.9.其他常用命令

iostat                  # 显示自系统启动以来所有 CPU 和设备的单条历史记录报告
iostat -d 2             # 每隔两秒显示一次连续的设备报告
iostat -d 2 6           # 每隔两秒为所有设备显示六份报告
iostat -x sda sdb 2 6   # 每隔两秒显示 sda 和 sdb 设备的六项扩展统计报告
iostat -p sda 2 6       # 每隔两秒显示关于设备 sda 及其所有分区(如 sda1 等)的六份报告
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆是浪个

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值