> 软件包与系统管理 > iostat

iostat: CPU 和磁盘 I/O 统计报告

iostat 命令用于报告系统的 CPU 使用率和设备(磁盘、分区)的输入/输出统计信息,可以是实时的或按指定间隔报告。它对于诊断系统性能瓶颈和解决 I/O 相关问题非常有用。

概述

iostat 提供 CPU、磁盘和网络文件系统 (NFS) 的统计信息,帮助了解系统的整体性能状态并诊断 I/O 相关问题。它是识别高磁盘 I/O 负载系统瓶颈的关键工具。

主要功能

  • CPU 使用率统计 (user, nice, system, idle, iowait 等)
  • 设备 (磁盘、分区) 的每秒读/写请求数和数据传输量
  • 设备平均服务时间、队列长度、I/O 等待时间
  • 按指定间隔重复输出统计信息
  • 支持多种输出格式和单位

主要选项

iostat 命令通过各种选项可以精细控制输出统计信息的种类、格式和重复周期。

选择统计信息类型

输出格式和单位

生成的命令:

请尝试组合命令。

描述:

`iostat` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

使用 iostat 命令查看系统 CPU 和磁盘 I/O 统计信息的各种示例。

基本 CPU 和磁盘 I/O 统计

iostat

一次性输出 CPU 使用率和所有设备的 기본 I/O 统计信息。

每 5 秒重复 3 次

iostat 5 3

每 5 秒输出一次 CPU 和磁盘 I/O 统计信息,共输出 3 次。

仅查看 CPU 统计

iostat -c

仅输出 CPU 使用率统计信息。

查看扩展磁盘 I/O 统计

iostat -x

以扩展格式输出磁盘 I/O 统计信息,提供更多详细信息。

查看特定磁盘的扩展 I/O 统计

iostat -x sda

输出特定磁盘 (例如: sda) 的扩展 I/O 统计信息。

以人类可读单位查看磁盘 I/O 统计

iostat -h

以 K, M, G 等人类易读的单位输出磁盘 I/O 统计信息的数据传输量。

带时间戳,每 2 秒重复输出磁盘统计

iostat -d -t 2

在每个报告前添加时间戳,每 2 秒间隔持续输出磁盘 I/O 统计信息。

安装

iostat 是 `sysstat` 包的一部分。大多数 Linux 发行版可能默认未安装,如果需要,可以使用以下命令进行安装。

Debian/Ubuntu

sudo apt update
sudo apt install sysstat

使用 APT 包管理器进行安装。

CentOS/RHEL/Fedora

sudo yum install sysstat
# 或
sudo dnf install sysstat

使用 YUM 或 DNF 包管理器进行安装。

Arch Linux

sudo pacman -S sysstat

使用 Pacman 包管理器进行安装。

提示与注意事项

使用 iostat 分析系统性能时,以下是一些有用的提示和需要注意的事项。

输出解读指南

主要指标的简要说明。

  • **%user, %system, %iowait, %idle (CPU)**: 表示 CPU 使用率。如果 %iowait 较高,可能需要怀疑是否存在磁盘 I/O 瓶颈。
  • **r/s, w/s (Device)**: 每秒读/写请求数。值越高表示磁盘活动越频繁。
  • **rkB/s, wkB/s (Device)**: 每秒读/写数据量 (KB)。表示实际数据传输量。
  • **await (Device)**: I/O 请求在队列中等待并由磁盘处理的平均时间 (毫秒)。此值较高表示磁盘响应时间较慢。
  • **%util (Device)**: 设备使用率。接近 100% 表示该设备正在以最大容量运行,可能是瓶颈的原因。

持续监控

iostat 提供的是特定时间点的快照,但使用 `iostat interval count` 等重复选项进行长时间监控,可以更有效地掌握性能趋势并诊断间歇性问题。

与其他工具结合使用

iostat 专注于磁盘 I/O,因此建议将其与 `top`、`vmstat`、`free` 等其他系统监控工具结合使用,以全面分析 CPU、内存、网络等整体系统状态。


相同类别命令