iostat

iostat 是一个用于监控系统 I/O(输入/输出)性能的工具,常用于分析 CPU 使用率和磁盘设备的读写性能。它是 sysstat 包的一部分,广泛应用于 Linux 系统。以下是 iostat 的常用命令选项及其用法说明,包括示例。


安装 iostat

如果系统中没有 iostat,需要安装 sysstat

验证安装:

iostat -V

基本语法

iostat [选项] [间隔时间] [次数]

常用选项

以下是 iostat 的常用选项及其含义:

  1. -c

    • 显示 CPU 使用率统计。
    • 示例:
      iostat -c
      
      输出:
      avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                5.00    0.10    2.00    0.50    0.00   92.40
      
  2. -d

    • 显示磁盘设备统计(不包括 CPU)。
    • 示例:
      iostat -d
      
      输出:
      Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
      sda              10.20      128.50       64.30     128500      64300
      
  3. -x

    • 显示扩展统计信息(更详细的磁盘性能指标)。
    • 示例:
      iostat -x
      
      输出:
      Device:  rrqm/s  wrqm/s  r/s  w/s  rkB/s  wkB/s  avgrq-sz  avgqu-sz  await  r_await  w_await  svctm  %util
      sda       0.10    0.20  5.00 5.20 128.50 64.30    40.00     0.05    10.00   8.00    12.00   4.00  40.00
      
  4. -k

    • 以 KB/s(千字节每秒)显示数据(默认是块/秒)。
    • 示例:
      iostat -d -k
      
  5. -m

    • 以 MB/s(兆字节每秒)显示数据。
    • 示例:
      iostat -d -m
      
  6. -t

    • 显示时间戳。
    • 示例:
      iostat -t
      
      输出:
      04/06/2025 10:00:00 AM
      avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                5.00    0.10    2.00    0.50    0.00   92.40
      
  7. -p [设备名]

    • 显示特定设备的统计信息(例如只监控 sda)。
    • 示例:
      iostat -p sda
      
  8. -N

    • 显示设备映射名称(如 LVM 或 RAID 设备)。
    • 示例:
      iostat -N
      
  9. -z

    • 隐藏空闲设备(只显示有活动的设备)。
    • 示例:
      iostat -d -z
      
  10. 间隔时间次数

    • 动态监控,每隔指定秒数刷新,运行指定次数。
    • 示例:
      iostat -d 2 5
      
      • 每 2 秒刷新,运行 5 次。

输出字段解释

CPU 统计(-c

磁盘统计(-d

扩展统计(-x


常用用法示例

  1. 基本 CPU 和磁盘统计

    iostat
    
    • 显示 CPU 和所有磁盘的概况。
  2. 实时监控磁盘性能(每 2 秒刷新)

    iostat -d -k 2
    
    • 输出磁盘读写速率(KB/s),持续更新。
  3. 详细磁盘性能分析

    iostat -x -k 2
    
    • 显示扩展统计(如延迟、利用率),以 KB/s 为单位。
  4. 监控特定设备

    iostat -p sda -x 2
    
    • 只监控 sda 的详细性能。
  5. 带时间戳的统计

    iostat -t -d -k 2 5
    
    • 每 2 秒刷新 5 次,包含时间戳。
  6. 结合 CPU 和磁盘扩展统计

    iostat -c -d -x -k 2
    
    • 同时监控 CPU 和磁盘的详细性能。

实用场景

  1. 检查磁盘瓶颈

    iostat -x -k 1
    
    • 查看 %util 是否接近 100%(磁盘饱和),await 是否过高(延迟)。
  2. 分析 I/O 负载

    iostat -d -k 2
    
    • 观察 kB_read/skB_wrtn/s,判断读写压力。
  3. 排查 CPU I/O 等待

    iostat -c 2
    
    • 如果 %iowait 高,可能表示 I/O 是瓶颈。

注意事项


示例输出解析

运行 iostat -x -k 2

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          5.00    0.10    2.00    0.50    0.00   92.40

Device:  rrqm/s  wrqm/s  r/s  w/s  rkB/s  wkB/s  avgrq-sz  avgqu-sz  await  svctm  %util
sda       0.10    0.20  5.00 5.20 128.50 64.30    40.00     0.05    10.00   4.00  40.00

如果需要更具体的使用场景或输出解释,请提供你的需求,我会进一步定制示例!