iostat命令介绍

iostat命令是Linux/Unix系统中的一种工具,用于监控系统的磁盘I/O活动情况,可以展示磁盘的读写速率、I/O等待时间、CPU使用率等信息。iostat命令可以帮助系统管理员发现系统瓶颈,并且优化系统来提高性能。

iostat命令帮助

iostat帮助信息
  • 在Linux中的iostat帮助信息
# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]
iostat的选项解释
  • iostat选项解释
-c: 仅显示CPU利用率相关信息;
-d: 仅显示磁盘I/O相关信息;
-k: 显示输出的数据单位为KB/s而不是默认的字节/s;
-t: 在输出中显示时间戳(时间戳格式YYYY-MM-DD HH:MM:SS)。
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-V:显示版号并退出;
-x:显示扩展状态。
  • 参数解释
    间隔次数:每次报告的间隔时间(秒)
    次数:显示报告的次数

iostat命令基本使用

查看iostat工具版本
  • 查看iostat工具版本
# iostat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
直接使用iostat命令
  • 直接使用iostat命令,查看系统的整体情况,显示CPU的负载情况和磁盘的状态信息。
# iostat 
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451788474
每次间隔5秒,查看3次信息
  • 每隔5秒,查看系统的状态信息,一共查看3次。
# iostat 5 3
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451802514

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.30    0.00    0.65   15.52    0.05   82.47

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda              18.80         0.00       358.40          0       1792

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.81    0.00    0.65    0.85    0.15   96.54

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               4.40         0.00        78.40          0        392
只查看磁盘状态
  • 只查看磁盘的状态信息,展示磁盘的读写速率、I/O等待时间、CPU使用率等信息。
iostat -d
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451817510
  • 实时监控,每隔5秒就显示磁盘信息。
iostat -d 5
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.58    1805239 1451969910

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               4.40         0.00        85.60          0        428

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.00         0.00        64.80          0        324
以k或M为单位显示信息
  • 以k或M为单位显示信息
# iostat -k
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.58    1805239 1451980550

# iostat -m
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
vda               3.62         0.00         0.06       1762    1417951
显示磁盘I/O详细情况
  • 显示某块磁盘I/O的详细情况
# iostat -x /dev/vda
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00    10.99    0.00    3.62     0.07    59.58    32.98     0.01    2.44    8.40    2.44   0.74   0.27

Device 监测设备名称

  • rrqm/s:每秒需要读取需求的数量
  • wrqm/s:每秒需要写入需求的数量
  • r/s:每秒实际读取需求的数量
  • w/s:每秒实际写入需求的数量
  • rsec/s:每秒读取区段的数量
  • wsec/s:每秒写入区段的数量
  • rkB/s:每秒实际读取的大小,单位为KB
  • wkB/s:每秒实际写入的大小,单位为KB
  • avgrq-sz:需求的平均大小区段
  • avgqu-sz:需求的平均队列长度
  • await:等待I/O平均的时间(milliseconds)
  • svctm:I/O需求完成的平均时间
  • %util:被I/O需求消耗的CPU百分比
查看cpu状态信息
  • 查看cpu状态信息
iostat -c 5 2
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.60    0.00    0.55    0.00    0.00   97.84
  • %user:表示用户空间程序执行的CPU时间百分比。
  • %nice:表示以较高的优先级运行的用户进程的CPU时间百分比。
  • %system:表示内核空间程序执行的CPU时间百分比。
  • %iowait:表示CPU等待I/O操作完成的时间百分比。
  • %steal:表示由于运行虚拟机等原因被其他虚拟机占用的CPU时间百分比。
  • %idle:表示CPU空闲时间的百分比。

iostat命令的使用总结

磁盘模块分析

在使用iostat进行系统性能监控时,需要注意综合分析磁盘和CPU等多个性能指标,以全面评估系统性能瓶颈的位置和原因。

通过监控以上指标,可以识别磁盘的瓶颈位置,例如:

  • 如果r/s和w/s较高,说明磁盘IO压力较大,需要考虑更换更高性能的硬盘;
  • 如果await和svctm较高,说明磁盘处理I/O请求的能力不足,可能需要更换磁盘控制器或升级磁盘阵列等。
CPU模块分析

通过监控以上指标,可以识别CPU的瓶颈位置,例如:

  • 如果%user和%system较高,说明CPU的负载较大,可能需要考虑升级CPU或增加CPU核心数;
  • 如果%iowait较高,说明CPU等待IO完成的时间较长,可能需要优化磁盘性能或者减少磁盘IO操作;
  • 如果%idle值高,表示CPU较空闲,系统处于空闲状态,无太多处理任务;
  • 如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
  • 如果%idle较低,说明CPU负载较大,可能需要考虑优化应用程序或增加CPU资源等。
posted on 2024-08-15 18:34  jiayou111  阅读(124)  评论(0编辑  收藏  举报