1、概述
iostat 主要用于输出磁盘IO 和 CPU的统计信息
2、安装
iostat属于sysstat软件可以用yum install -y sysstat 进行安装
3、用法
[root@localhost ~]# iostat --help
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
选项:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <用户组名> ] [ -p [ <设备> [,...] | ALL ]
]
[ <设备> [...] | ALL ]
[root@localhost ~]# man iost
at --可以查看命令详细参数
4、常用参数
-c
显示CPU使用情况
-d
显示磁盘使用情况
-N
显示磁盘阵列(LVM) 信息
-n
显示NFS 使用情况
-k
以 KB 为单位显示
-m
以 M 为单位显示
-t
报告每秒向终端读取和写入的字符数和CPU的信息
-V
显示版本信息
-x
显示详细信息
-p
[磁盘] 显示磁盘和分区的情况
5、示例
[root@localhost ~]# iostat -m
Linux 3.10.0-1160.71.1.el7.x86_64 (localhost.localdomain) 2022年11月09日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.16 0.00 4.12 19.79 0.00 75.93
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.96 0.01 0.07 373 2184
sdb 160.08 0.03 6.30 800 185427
sdc 160.33 0.03 6.30 803 185428
sdd 160.47 0.03 6.30 803 185435
sde 118.79 0.03 4.09 743 120415
sdf 113.98 0.03 1.79 738 52648
sdg 91.51 0.02 1.44 599 42242
scd0 0.00 0.00 0.00 1 0
dm-0 0.91 0.01 0.07 334 2182
dm-1 0.00 0.00 0.00 2 0
dm-2 405.56 0.07 7.32 2058 215306
dm-3 55.08 0.00 6.85 9 201536
CPU属性值说明
%user
CPU处在用户模式下的时间百分比
%nice
CPU处在带NICE值的用户模式下的时间百分比
%system
CPU处在系统模式下的时间百分比
%iowait
CPU等待输入输出完成时间的百分比
%steal
管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle
CPU空闲时间百分比
备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU
DISK属性值说明
device
磁盘名称
tps
每秒钟发送到的I/O请求数
Blk_read/s
每秒读取的block数
Blk_wrtn/s
每秒写入的block数
Blk_read
读入的block总数
Blk_wrtn
写入的block总数
[root@localhost ~]# iostat -dxk 1 1 #查看设备使用率(%util)、响应时间(await) 间隔一秒显示1次,总共显示1次
Linux 3.10.0-1160.71.1.el7.x86_64 (localhost.localdomain) 2022年11月09日 _x86_64_ (2 CPU)
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.03 0.38 0.57 12.93 75.74 186.32 0.16 166.10 293.19 81.12 33.06 3.15
sdb 0.00 39.13 1.72 157.69 27.73 6427.18 80.99 18.55 116.36 61.17 116.97 1.30 20.74
sdc 0.00 38.90 1.73 157.93 27.86 6427.19 80.86 17.49 109.53 61.73 110.05 1.30 20.72
sdd 0.00 38.84 1.74 158.05 27.86 6427.46 80.80 18.49 115.74 61.36 116.33 1.30 20.83
sde 0.00 65.77 1.60 116.69 25.78 4173.77 71.00 14.41 121.82 43.08 122.90 1.06 12.58
sdf 0.00 8.23 1.59 111.91 25.60 1824.87 32.61 0.04 0.39 6.93 0.29 0.36 4.04
sdg 0.00 6.89 1.29 89.84 20.79 1464.18 32.59 0.07 0.76 0.32 0.76 0.19 1.72
scd0 0.00 0.00 0.00 0.00 0.03 0.00 114.22 0.00 1.61 1.61 0.00 1.17 0.00
dm-0 0.00 0.00 0.31 0.60 11.61 75.67 191.57 0.16 179.25 364.28 85.51 34.36 3.13
dm-1 0.00 0.00 0.00 0.00 0.07 0.00 50.09 0.00 0.19 0.19 0.00 0.09 0.00
dm-2 0.00 0.00 4.47 399.39 71.35 7462.82 37.31 106.57 263.83 19.31 266.56 0.40 16.30
dm-3 0.00 0.00 0.04 54.81 0.32 6985.53 254.76 140.58 2563.18 33.11 2564.81 1.73 9.47
x参数详细说明
rrqm/s
每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s
每秒进行 merge 的写操作数目。即 wmerge/s
r/s
每秒完成的读 I/O 设备次数。即 rio/s
w/s
每秒完成的写 I/O 设备次数。即 wio/s
rkB/s
每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节
wkB/s
每秒写K字节数。是 wsect/s 的一半
avgrq-sz
平均每次设备I/O操作的数据大小 (扇区)
avgqu-sz
平均I/O队列长度
await
平均每次设备I/O操作的等待时间 (毫秒)
r_await
每个读操作平均所需的时间不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间
w_await
每个写操作平均所需的时间不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
svctm
平均每次设备I/O操作的服务时间 (毫秒)
%util
一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待