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 ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

22 0 2020-09-05


分享:
使用 Nginx 代理做个下载站

类似许多镜像下载站和 ftp 一样,有时候需要去找一个包何...

阅读全文
CentOS7 开启 IPv6

随着 IPv4 的地址用尽,IPv6 的使用趋势愈来愈明显...

阅读全文
Linux 更新 gcc 版本

有些软件需要新版本的 gcc 环境支撑,CentOS 默认...

阅读全文
tar 解压报错 resolve failed

解压 tar 包报错 resolve failed 的解决...

阅读全文
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
  • 默认
  • 护眼
  • 夜晚
  • 壁纸
  • 默认