用途:iostat 属于 sysstat 软件包,用于报告 CPU 统计信息和每块设备的磁盘吞吐量、IOPS 与延迟指标,是排查磁盘 I/O 性能问题的标准命令行工具。它无持久化配置和日志,直接调用,输出到终端。
主要能力:可输出单次快照、按秒连续采样、扩展统计(延迟、队列深度、利用率)、指定设备或分区统计、人类可读单位、MB/s 输出、时间戳以及 JSON 机器可解析格式。扩展列包括 r/s、w/s、rkB/s、wkB/s、await、r_await、w_await、aqu-sz、%util 等。
使用方式:安装命令为 apt install sysstat 或 dnf install sysstat。常用命令:iostat 输出自启动以来的平均值;iostat 1 每秒连续输出;iostat -x 1 输出扩展统计;iostat -x sda 1 或 iostat -x nvme0n1 1 针对特定设备;iostat -h 1 人类可读单位;iostat -m 1 以 MB/s 输出;iostat -t 1 加时间戳;iostat -p sda 1 按分区统计;iostat -o JSON 1 输出 JSON;iostat -xht 1 组合扩展、人类可读与时间戳;iostat -x 2 10 以 2 秒间隔采样 10 次。
适用场景:磁盘性能诊断、延迟与队列深度分析、吞吐量评估、NVMe 与 RAID 设备监控。
限制与注意事项:第一行是自启动以来的平均值,需从第二行起读取当前活动;await 是关键延迟指标,HDD 持续超过 20ms、NVMe 超过 1ms 值得关注,需结合 aqu-sz 判断延迟来自排队还是设备本身;%util 对 NVMe 和 RAID 有误导性,100% 不代表饱和,应改用 await 和 aqu-sz;sysstat 通常需单独安装;NVMe 设备名为 nvme0n1、分区为 nvme0n1p1,而非 sdX,设备名错误或无活动设备时无输出,可用 lsblk 核对。