Linux - iostat 命令详解(监视磁盘 I/O)

iostat 是最常用的磁盘 I/O 性能观测工具,它提供了每个磁盘的使用率、IOPS、吞吐量等各种常见的性能指标,这些指标实际上来自 /proc/diskstats。

使用方式说明

[root@izwz98ahlvpkv3l7551ud2z ~]# iostat -help
用法:
	iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]

选项:
  [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
  [ -j {
    
     ID | LABEL | PATH | UUID | ... } ]
  [ [ -T ] -g <用户组名> ] [ -p [ <设备> [,...] | ALL ] ]
  [ <设备> [...] | ALL ]

选项参数说明:

  • -c: 仅显示CPU统计信息,与-d选项互斥
  • -d:仅显示磁盘统计信息,与-c选项互斥
  • -h:使用NFS(Network File System网络文件系统)的输出报告,更加友好可读。需要使用-n参数开启NFS。
  • -k:以 kb 为单位显示,默认情况下,iostat的输出是以block作为计量单位,加上这个参数可以以kb作为计量单位显示。(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -m:以 mb 为单位显示(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -N:显示磁盘阵列(LVM) 信息。
  • -V:显示版本信息
  • -x:显示更详细的磁盘报告信息,默认只显示六列,加上该参数后会显示更详细的信息(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -n:显示NFS(Network File System网络文件系统) 使用情况(该参数仅在linux内核版本2.6.17以后有效)
  • -t:输出报告时显示系统时间
  • -p:[ { device [,…] | ALL } ] 显示磁盘分区的相关统计信息(默认粒度只到磁盘,没有显示具体的逻辑分区)
  • -y:跳过不显示第一次报告的数据,因为iostat使用的是采样统计,所以iostat的第一次输出的数据是自系统启动以来的累计的数据,这个参数非常重要,因为第一次数据不属于正常数据,所以如果做数据统计时,计入了统计,会影响最终数据结果
  • -z:只显示在采样周期内有活动的磁盘
  • -j:{ ID | LABEL | PATH | UUID | … } 磁盘列表的Device列要用什么维度来描述磁盘

指标含义说明

iostat 基本输出界面如下:
老街头的猫。

指标说明:

  • avg-cpu(CPU性能指标):
性能指标 含义
%usr CPU在用户模式下的时间百分比
%nice CPU处在带NICE值的用户模式下的时间百分比
%system CPU在系统模式下的时间百分比
%iowait CPU等待输入输出完成时间的百分比
%steal 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle CPU空闲时间百分比
  • Device(设备性能指标):
性能指标 含义
tps 该设备每秒传输次数
kB_read/s 每秒从设备读取的数据量
kB_wrtn/s 每秒向设备写入的数据量
kB_read 读取的总数据量
kB_wrtn 写入的总数据量

iostat 详细输出界面如下:
老街头的猫。
指标说明:

性能指标 含义 提示
Device 磁盘设备的名字
rrqm/s 每秒合并的读请求数 %rrqm表示合并读请求的百分比
wrqm/s 每秒合并的写请求数 %wrqm表示合并写请求的百分比
r/s 每秒发送给磁盘的读请求数 合并后的请求数,r/s+w/s就是磁盘IOPS
w/s 每次发送给磁盘的写请求数 合并后的请求数
rkB/s 每秒向磁盘读取的数据量 单位为kB,rkB/s+wkB/s就是磁盘吞吐量
wkB/s 每秒向磁盘写入的数据量 单位为kB
avgrq-sz 平均每次设备I/O操作的 (扇区)数据大小。
avgqu-sz 平均I/O队列长度,即IO等待个数。数值越低越好。 新版中为aqu-sz
await 每一个IO请求的处理的平均时间(单位ms)。
r_await 读请求处理完成等待时间 包括队列中的等待时间和设备实际处理的时间,单位为毫秒,r_await+w_await就是磁盘对请求响应时间
w_await 写请求处理完成等待时间 包括队列中的等待时间和设备实际处理的时间,单位为毫秒
rareq-sz 平均读请求大小 单位为kB
wareq-sz 平均写请求大小 单位为kB
svctm 处理I/O请求所需的平均时间(不包括等待时间) 单位为毫秒。注意这是推断的数据,并不保证完全准确
%util 磁盘处理I/O的时间百分比 即磁盘IO使用率,由于可能存在并行I/O,100%并不一定表明磁盘I/O饱和。

猜你喜欢

转载自blog.csdn.net/weixin_44988085/article/details/129059899