好的,阿杰 😊
我来给你整理一份 Linux iostat 命令详解,包含作用、参数说明、常见用法和输出解释。


📌 Linux iostat 命令详解

一、命令简介

iostat(Input/Output Statistics)是 sysstat 工具包中的一个命令,主要用于监控 CPU 使用情况 和 磁盘 I/O 使用情况
它能够帮助我们发现 磁盘瓶颈 和 系统性能问题

👉 所属包:sysstat
安装方式:

# Debian/Ubuntu
sudo apt install sysstat -y

# CentOS/RHEL
sudo yum install sysstat -y


二、基本语法

iostat [参数] [时间间隔] [次数]

  • 时间间隔:每隔多少秒输出一次
  • 次数:输出几次数据

例如:

iostat 2 5

👉 表示每 2 秒统计一次,总共统计 5 次。


三、常用参数

参数说明
-c仅显示 CPU 使用情况
-d仅显示磁盘使用情况
-x显示扩展统计信息(推荐)
-k以 KB/s 显示(默认)
-m以 MB/s 显示
-p [设备]显示某个设备的统计信息
-t显示时间戳
-N显示 LVM 逻辑卷统计信息

四、输出解释

1. CPU 部分

avg-cpu:  %user  %nice %system %iowait %steal %idle

  • %user:用户态 CPU 使用率
  • %system:内核态 CPU 使用率
  • %iowait:等待 I/O 的时间百分比(高说明磁盘瓶颈)
  • %idle:空闲时间

👉 iowait 长期高说明磁盘成为性能瓶颈。


2. 设备 I/O 部分(扩展模式 -x

Device:    rrqm/s wrqm/s r/s  w/s  rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

字段含义
r/sw/s每秒读/写请求数
rkB/swkB/s每秒读/写 KB 数
avgrq-sz平均请求大小(扇区数)
avgqu-sz平均请求队列长度
await平均每个 I/O 请求等待时间(毫秒)
svctm平均服务时间(毫秒,已废弃,很多系统显示 0.00)
%util设备利用率,接近 100% 表示磁盘繁忙

👉 常用判断标准:

  • await > 20ms,磁盘可能存在性能问题
  • %util 长期 > 80%,磁盘 I/O 过载

五、常见用法示例

  1. 查看 CPU 使用情况
iostat -c 2 5

  1. 查看磁盘 I/O 情况(扩展模式)
iostat -x 1 10

  1. 以 MB 显示磁盘吞吐量
iostat -xm 2

  1. 查看某个磁盘(如 sda)的 I/O
iostat -x -p sda 1

  1. 带时间戳,方便日志分析
iostat -x -t 5


六、总结

  • CPU 部分主要关注 %iowait
  • 磁盘部分主要关注 await 和 %util
  • 长期高负载时,需考虑 优化 I/O、加缓存、换 SSD 或分布式存储

好的,下面我给你整理一份 Linux iostat 命令详解,包含作用、常用选项和使用示例:


📌 Linux iostat 命令详解

1. iostat 简介

iostat(Input/Output Statistics) 是 Linux 系统中常用的性能监控工具,主要用于 监控 CPU 使用率 和 磁盘 I/O 性能
它通常属于 sysstat 工具包(需要先安装)。

安装方式(不同系统):

# Debian/Ubuntu
sudo apt install sysstat -y

# CentOS/RHEL
sudo yum install sysstat -y


2. iostat 输出解释

执行:

iostat

可能输出如下:

Linux 5.15.0 (hostname)   09/01/2025  _x86_64_   (4 CPU)

avg-cpu:  %user  %nice %system %iowait  %steal  %idle
           3.45   0.00   1.23    0.10     0.00   95.22

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              5.23       120.34       230.56   1002345    2002345

CPU 部分

  • %user:用户态 CPU 使用率
  • %nice:低优先级进程占用 CPU 百分比
  • %system:内核态 CPU 使用率
  • %iowait:CPU 等待 I/O 的时间比例
  • %steal:虚拟化环境中被 “偷走” 的 CPU 时间
  • %idle:CPU 空闲时间比例

设备部分

  • Device:设备名称(如 sdanvme0n1
  • tps:每秒 I/O 请求次数
  • kB_read/s:每秒读取的 KB 数
  • kB_wrtn/s:每秒写入的 KB 数
  • kB_read:总读取 KB
  • kB_wrtn:总写入 KB

3. 常用参数

参数作用
iostat显示 CPU 与磁盘 I/O 使用情况
iostat -x显示扩展统计(利用率、等待时间等)
iostat -d仅显示磁盘 I/O 统计
iostat -c仅显示 CPU 统计
iostat -k以 KB 为单位显示数据(默认也是 KB)
iostat -m以 MB 为单位显示数据
iostat -t显示时间戳
iostat -x 1 5每 1 秒刷新一次,输出 5 次扩展统计
iostat -p sda显示 sda 磁盘及其分区的统计信息

4. 实用示例

  1. 每秒刷新一次磁盘 I/O,持续监控iostat -x 1
  2. 查看 CPU 使用率变化(每 2 秒输出 3 次)iostat -c 2 3
  3. 显示所有磁盘的读写性能(MB 单位)iostat -d -m
  4. 分析某个磁盘的详细性能iostat -p sda -x 1 5

5. 运维常用技巧

  • 如果 %iowait 长时间很高(比如 >30%),说明系统磁盘性能可能成为瓶颈。
  • 如果某块磁盘的 util 接近 100%,说明该磁盘 I/O 已经跑满。
  • 可以结合 sarvmstatiotop 等工具综合分析系统性能。