linux命令之iostat
1.iostat介绍
linux命令iostat(即:I/O statistics)是用来对系统的磁盘操作进行监视
2.iostat用法
iostat [参数]
|----|-------------|
| 参数 | 说明 |
| -c | 显示CPU的使用情况 |
| -d | 显示磁盘的使用情况 |
| -k | 以KB为单位显示 |
| m | 以MB为单位显示 |
| -x | 显示详细信息 |
| -t | 显示终端和CPU的信息 |
[iostat参数]
3.实例
3.1.显示所有设备负载
命令:
iostat
[root@centos79 ~]# iostat
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.00 0.79 1.02 0.00 96.38
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 7.51 215.34 19.60 1431398 130315
scd0 0.01 0.31 0.00 2074 0
dm-0 7.62 213.00 18.99 1415827 126219
dm-1 0.01 0.33 0.00 2208 0
dm-2 0.03 0.39 0.31 2583 2048
[root@centos79 ~]#
其中:
%user:表示处在用户模式下的CPU时间百分比
%nice:表示处在带nice值的用户模式下的CPU时间百分比
%system:表示处在系统模式下的
%iowait:表示CPU等待输入输出完成的时间百分比
%steal:表示虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比
tps:设备每秒的传输次数
kB_read/s:每秒从设备读取的数据量
kB_wrtn/s:每秒向设备写入的数据量
kB_read:读取的总数据量
kB_wrtn:写入的总数据量
如果 %iowait 的值过高,表示硬盘存在 I/O 瓶颈,%idle 值高,表示 CPU 较空闲,如果 %idle值
高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。%idle 值如果持续低于
10,那么系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU
3.2.实时显示所有设备负载
命令:
iostat 2 3
每隔2秒刷新显示,显示3次设备负载
[root@centos79 ~]# iostat 2 3
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.72 0.00 0.75 0.94 0.00 96.60
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 7.04 198.66 19.06 1431398 137336
scd0 0.01 0.29 0.00 2074 0
dm-0 7.15 196.50 18.49 1415827 133240
dm-1 0.01 0.31 0.00 2208 0
dm-2 0.02 0.36 0.28 2583 2048
avg-cpu: %user %nice %system %iowait %steal %idle
0.76 0.00 0.25 0.00 0.00 98.99
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
scd0 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 0.25 0.00 0.00 99.24
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
scd0 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
[root@centos79 ~]#
3.3.显示指定磁盘信息
命令:
iostat -d sda2
[root@centos79 ~]# iostat -d sda2
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda2 6.95 195.36 18.66 1422746 135865
[root@centos79 ~]#
3.4.显示tty和cpu的信息
命令:
iostat -t
[root@centos79 ~]# iostat -t
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
2023年11月30日 10时40分58秒
avg-cpu: %user %nice %system %iowait %steal %idle
1.69 0.00 0.74 0.92 0.00 96.64
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.93 195.03 18.92 1431398 138852
scd0 0.01 0.28 0.00 2074 0
dm-0 7.04 192.91 18.36 1415827 134756
dm-1 0.01 0.30 0.00 2208 0
dm-2 0.02 0.35 0.28 2583 2048
[root@centos79 ~]#
3.5.以KB为单位显示所有信息
命令:
iostat -k
[root@centos79 ~]# iostat -k
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.69 0.00 0.74 0.92 0.00 96.66
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.91 193.78 18.94 1431398 139898
scd0 0.01 0.28 0.00 2074 0
dm-0 7.01 191.67 18.38 1415827 135802
dm-1 0.01 0.30 0.00 2208 0
dm-2 0.02 0.35 0.28 2583 2048
[root@centos79 ~]#
3.6.以MB为单位显示所有信息
命令:
iostat -m
[root@centos79 ~]# iostat -k
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.69 0.00 0.74 0.92 0.00 96.66
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.91 193.78 18.94 1431398 139898
scd0 0.01 0.28 0.00 2074 0
dm-0 7.01 191.67 18.38 1415827 135802
dm-1 0.01 0.30 0.00 2208 0
dm-2 0.02 0.35 0.28 2583 2048
[root@centos79 ~]#
3.7.查看设备使用率、响应时间
命令:
iostat -d -x -k 1 1
[root@centos79 ~]# iostat -d -x -k 1 1
Linux 3.10.0-1160.102.1.el7.x86_64 (centos79) 2023年11月30日 _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.01 0.16 5.17 1.65 190.45 18.84 61.45 0.09 13.67 17.11 2.88 4.35 2.96
scd0 0.00 0.00 0.01 0.00 0.28 0.00 94.27 0.00 16.00 16.00 0.00 15.14 0.01
dm-0 0.00 0.00 5.12 1.80 188.38 18.30 59.73 0.09 13.54 17.35 2.74 4.27 2.95
dm-1 0.00 0.00 0.01 0.00 0.29 0.00 49.62 0.00 1.78 1.78 0.00 1.75 0.00
dm-2 0.00 0.00 0.02 0.00 0.34 0.27 53.54 0.00 4.15 4.24 0.50 4.12 0.01
[root@centos79 ~]#
其中,
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 字节数
wKB/s:每秒写 K 字节数
avgrq-sz:平均每次设备 I/O 操作的数据大小
avgqu-sz:平均 I/O 队列长度
await:平均每次设备 I/O 操作的等待时间 (毫秒)
r_await:平均每次设备I/O读操作的等待时间(毫秒)
w_await:平均每次设备I/O写操作的等待时间(毫秒)
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 在等待