linux命令之iostat

1.iostat介绍

linux命令iostat(即:I/O statistics)是用来对系统的磁盘操作进行监视

2.iostat用法

iostat [参数]

iostat参数

参数说明-c显示CPU的使用情况-d显示磁盘的使用情况-k以KB为单位显示m以MB为单位显示-x显示详细信息-t显示终端和CPU的信息

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 在等待

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。