命令介绍
iostat
命令是sysstat
工具包中的一个命令,用于收集和报告系统的I/O(输入/输出)统计信息。它可以帮助系统管理员监视系统的磁盘和文件系统的活动情况,从而识别潜在的性能问题或瓶颈。
通过iostat
命令,用户可以收集并查看有关系统磁盘、块设备和文件系统的各种I/O统计数据,包括读取速率、写入速率、I/O请求次数等。这些统计数据有助于用户了解系统的负载情况、磁盘使用情况和性能瓶颈。
iostat
命令通常与其他sysstat
工具(如pmstat
)一起使用,以提供对系统性能和资源利用情况的全面监视。
命令格式
iostat 命令
iostat
命令用于监控系统输入/输出设备负载情况。
1
| iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
|
其中:
- 选项:用于指定
iostat
命令的参数和选项。
- <时间间隔>:指定统计数据的时间间隔,即
iostat
命令每次收集统计数据的时间间隔。单位为秒。
- <次数>:指定
iostat
命令收集统计数据的次数。
参数说明
参数 |
描述 |
备注 |
-c |
显示 CPU 使用率 |
- |
-d |
显示磁盘使用情况 |
- |
-h |
以易读格式显示输出 |
- |
-k |
以 KB/s 为单位显示输出 |
- |
-m |
以 MB/s 为单位显示输出 |
- |
-N |
显示网络接口名称 |
- |
-s |
显示启动时间和活动时间 |
- |
-t |
显示时间戳 |
- |
-V |
显示版本信息 |
- |
-x |
显示详细磁盘活动 |
- |
-y |
显示 TTY 设备活动 |
- |
-z |
显示增长的页码活动 |
- |
-f <目录> |
为文件系统设置基准目录 |
- |
+f <目录> |
添加额外的基准目录 |
- |
-j {ID|LABEL|PATH|UUID|…} |
指定 JSON 格式输出的字段 |
- |
–compact |
使用紧凑格式输出 |
- |
–dec={0|1|2} |
设置十进制数字的显示格式 |
- |
–human |
以易读格式显示输出 |
- |
–pretty |
以易读格式显示输出 |
- |
-o JSON |
输出格式为 JSON |
- |
-H -g <用户组名> |
显示指定用户组的活动情况 |
- |
-p [<设备> [,…] | ALL] |
显示指定设备的活动情况 |
- |
<设备> […] | ALL |
指定要显示的设备列表 |
- |
命令实例
基本用法
1.显示所有设备的 I/O 统计信息
1 2 3 4 5 6 7 8 9 10 11
| leazhi@leazhi-ubuntu2310:~/Templates$ iostat 1 2 -h Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 13.7% 0.0% 7.3% 0.0% 0.0% 79.0%
tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd Device 0.00 0.0k 0.0k 0.0k 13.0k 0.0k 0.0k loop0 0.00 0.0k 0.0k 0.0k 24.0k 0.0k 0.0k loop1 0.00 0.0k 0.0k 0.0k 15.0k 0.0k 0.0k loop10
|
2.显示 CPU 使用率:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| leazhi@leazhi-ubuntu2310:~/Templates$ iostat -c Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 13.59 0.00 7.23 0.05 0.00 79.14
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
leazhi@leazhi-ubuntu2310:~/Templates$ iostat -c 1 2 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 13.58 0.00 7.22 0.05 0.00 79.14
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
avg-cpu: %user %nice %system %iowait %steal %idle 3.20 0.00 1.04 0.03 0.00 95.73
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
|
3.显示指定设备的 I/O 统计信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| leazhi@leazhi-ubuntu2310:~/Templates$ iostat -p nvme0n1 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 13.53 0.00 7.17 0.05 0.00 79.25
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 6.63 35.55 98.66 0.00 5056045 14033057 0 nvme0n1p1 0.00 0.04 0.01 0.00 5413 824 0 nvme0n1p2 0.00 0.06 0.00 0.00 8905 1 0 nvme0n1p3 0.82 17.99 16.84 0.00 2559049 2395076 0 nvme0n1p4 0.00 0.02 0.00 0.00 3380 0 0 nvme0n1p5 5.55 8.81 74.82 0.00 1253129 10641664 0 nvme0n1p6 0.26 8.60 7.00 0.00 1223697 995492 0
|
4.显示 I/O 统计信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| leazhi@leazhi-ubuntu2310:~/Templates$ iostat -N Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 13.55 0.00 7.19 0.05 0.00 79.20
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd loop0 0.00 0.00 0.00 0.00 13 0 0 loop1 0.00 0.00 0.00 0.00 24 0 0 loop10 0.00 0.00 0.00 0.00 15 0 0 loop11 0.00 0.00 0.00 0.00 39 0 0 loop12 0.00 0.00 0.00 0.00 12 0 0 loop13 0.00 0.00 0.00 0.00 51 0 0 loop14 0.00 0.00 0.00 0.00 16 0 0 loop15 0.00 0.00 0.00 0.00 51 0 0 loop16 0.00 0.00 0.00 0.00 11 0 0 loop17 0.00 0.00 0.00 0.00 28 0 0 loop18 0.00 0.00 0.00 0.00 11 0 0 loop19 0.00 0.15 0.00 0.00 20864 0 0 loop2 0.00 0.00 0.00 0.00 14 0 0 loop20 0.00 0.00 0.00 0.00 270 0 0 loop21 0.00 0.00 0.00 0.00 108 0 0 loop22 0.00 0.00 0.00 0.00 10 0 0 loop3 0.00 0.04 0.00 0.00 5774 0 0 loop4 0.00 0.00 0.00 0.00 11 0 0 loop5 0.01 0.55 0.00 0.00 78377 0 0 loop6 0.00 0.00 0.00 0.00 11 0 0 loop7 0.00 0.01 0.00 0.00 1570 0 0 loop8 0.02 0.22 0.00 0.00 30896 0 0 loop9 0.04 0.10 0.00 0.00 14329 0 0 nvme0n1 6.62 35.56 98.58 0.00 5056045 14015761 0 nvme1n1 0.00 0.02 0.00 0.00 3320 0 0 nvme2n1 0.00 0.02 0.00 0.00 3348 0 0 sda 0.36 1.70 0.01 0.00 241590 1364 0
|
扩展用法
1.结合 grep 命令过滤结果
1 2 3 4 5 6
| 过滤只显示 CPU 使用率超过 50% 的设备 iostat | grep -E "avg-cpu.+50.0"
avg-cpu: %user %nice %system %iowait %steal %idle 51.23 0.00 0.00 0.00 0.00 48.77
|
2.使用 iostat 命令监控系统 I/O 活动
1 2 3 4 5 6 7 8 9
| while true; do iostat 1; sleep 1; done
... Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn vda 0.00 0.00 0.00 0.00 0.00 vda1 0.00 0.00 0.00 0.00 0.00 ...
|
高级用法
1.使用 iostat 命令分析 I/O 瓶颈
1 2 3 4 5 6 7 8
| iostat -x 1 10 | grep -E "await|svctm" | sort -k 6nr
Device: await svctm sdb 10.00 20.00 sda 5.00 10.00 ...
|