Linux命令(140)之iostat

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

相关推荐
云飞云共享云桌面38 分钟前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq1 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮2 小时前
Linux 使用中的问题
linux·运维
dsywws3 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零4 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge4 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱4 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
free5 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程5 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克6 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节