Linux 查看 IO 负载情况命令之 iostat

文章
林里克斯

iostat 主要用于输出磁盘 IO 和 CPU 的统计信息,有一个很大的缺点 就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

实验平台:CentOS 7.7.1908

sysstat version 10.1.5



一、安装及介绍


1.iostat 依赖于 sysstat

$ yum -y install sysstat
$ rpm -qa | grep sysstat
sysstat-10.1.5-19.el7.x86_64

2.参数详情

$ iostat --help 或 iostat -?
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ]      #只显示 CPU 使用情况
[ -d ]      #只显示磁盘使用情况
[ -h ]      #是显示信息更容易查看
[ -k | -m ] #以 KB 为单位显示 | 以 M 为单位显示,不带代为默认以 KB 为单位
[ -N ]      #显示任何设备映射器设备的注册设备映射器名称。用于查看 LVM2 统计信息
[ -t ]      #显示当前时间,时间戳格式可能取决于 S_TIME_FORMAT 的值
[ -V ]      #打印版本号
[ -x ]      #显示扩展信息
[ -y ]      #如果以给定的时间间隔显示多个记录,则忽略系统启动后的第一个包含统计信息的报告
[ -z ]      #不采集没有活动的任何设备输出
[ [ -T ] -g <group_name> ] 
#此选项必须与选项-g一起使用,并指示只显示组的全局统计信息,而不是组中单个设备的统计数据
[ -p [ <device> [,...] | ALL ] ]
#显示系统使用的块设备及其所有分区的统计信息,如果查看一个分区接上分区名字

二、实例


1.iostat

$ iostat
Linux 3.10.0-957.21.3.el7.x86_64 (jarbo)        07/08/2019      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                     0.06     0.00        0.05         0.01      0.00   99.88

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                  0.36           11.19               8.44   3756603    2833676

%user:CPU处在用户模式下的时间百分比
%nice:CPU处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比

Device:所对应磁盘
Tps:每秒进程下发的IO读、写请求数量
kB_read/s:每秒从驱动器读入的数据量,单位为k
KB_wrtn/s:没秒从驱动器写入的数据量,单位为k
kB_read:读入数据总量,单位为k
kB_wrtn:写入数据总量,单位为k

2.每隔 1 秒输出 1 次,共输出 2 次,以 KB 为单位的磁盘信息

$ iostat -x -k -d 1 2

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     0.02    0.07    0.29    11.16     8.42   108.04     0.01   29.33   17.38   32.10   1.90   0.07

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           0.00    0.00    0.00    0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

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等待个数。 
 - 3、await 表示每次IO请求等待时间,包括等待时间和处理时间
 - 4、svctm 表示每次IO请求处理的时间
 - 5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

822 0 2020-09-05


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-04-26

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 215715 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!