Linux iostat 命令 - 显示 I/O 统计信息
介绍
iostat(英文全拼:I/O statistics)是 Linux 系统中用于查看系统的磁盘 I/O(输入/输出)统计信息的命令。它能够提供关于磁盘和 CPU 使用情况的详细报告,对于监控系统性能和磁盘活动非常有用。
和 vmstat 一样,iostat 也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat 命令由 sysstat 软件包提供,使用前需要安装,安装命令如下。
- Debian/Ubuntu
 - RedHat/CentOS
 
sudo apt install sysstat
sudo yum install sysstat
语法:
iostat [选项] [间隔时间] [次数]
选项:
-c:显示 CPU 使用情况。-d:显示磁盘活动情况。-k:以 KB 为单位显示磁盘活动情况。-m:以 MB 为单位显示磁盘活动情况。-t:在输出中添加时间戳。
间隔时间:指定报告之间的时间间隔,单位为秒。
次数:指定生成报告的次数。
示例
显示整体系统的平均磁盘活动情况:
$ iostat 
Linux 5.14.0-1059-oem (Latitude-3420) 	2023年12月19日 	_x86_64_	(8 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.17    0.04    1.32    0.16    0.00   94.31
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         17          0          0
loop1             0.01         0.26         0.00         0.00      30552          0          0
nvme0n1          22.66       223.72       438.86         0.00   26153612   51304365          0
sda               5.50        95.04       165.04         0.00   11110209   19294060          0
sdb               0.02         0.24         0.01         0.00      27975       1368          0
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。
显示磁盘活动详细信息(包括读取和写入速率、I/O 等待时间等):
iostat -d
显示 CPU 使用情况的报告(包括用户、系统和空闲时间):
iostat -c
每 5 秒显示一次磁盘活动的详细报告:
iostat -d 5
以 MB 为单位显示磁盘活动情况(而不是默认的块大小):
iostat -m
