Linux iostat 命令使用详解

简介

iostat 命令用于监控 Linux 系统输入/输出设备的加载情况。它提供有关CPU 统计信息以及设备和分区的输入/输出统计信息。通过显示 I/O 操作如何影响系统性能,它对于诊断性能瓶颈(例如磁盘或网络活动缓慢)特别有用。

安装

  • Debian/Ubuntu
shell 复制代码
sudo apt update
sudo apt install sysstat
  • CentOS/RHEL
shell 复制代码
sudo yum install sysstat
  • Fedora
shell 复制代码
sudo dnf install sysstat

基本语法

shell 复制代码
iostat [options] [interval] [count]
  • interval:每次报告之间的时间间隔(以秒为单位)

  • count:要显示的报告数量

常用选项

  • -c:仅显示 CPU 统计信息

  • -d:仅显示设备级统计信息

  • -x:显示扩展统计数据,包括详细的 I/O 指标,例如每个设备的平均队列大小和平均服务时间

  • -p:显示设备分区的统计信息。例如,iostat -p sda 将显示 sda 所有分区的统计信息(例如 sda1sda2

  • -t:打印每个报告的时间戳

  • -h:显示带有可用选项的帮助消息

示例用法

显示基本 CPU 和 I/O 统计信息

默认情况下,iostat 将显示所有块设备(例如硬盘、SSD)的 CPU 统计信息和设备 I/O 统计信息。它不会自动刷新,因此只会看到一份报告

shell 复制代码
iostat

示例输出

shell 复制代码
Linux 5.4.0-70-generic (hostname)     04/27/2023      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice    %system   %iowait  %steal   %idle
           3.52    0.03     1.30      0.71     0.00    94.44

Device            tps    kB_read/s   kB_wrtn/s   kB_read   kB_wrtn
sda              10.58        206.23        98.64   1350224    656928

字段解释

  • CPU stats:显示 CPU 处于不同状态的时间百分比

    • %user:运行用户级进程所花费的时间
    • %nice:运行具有正 nice 值的用户进程所花费的时间
    • %system:运行内核进程所用的时间
    • %iowait:等待 I/O 操作完成所花费的时间
    • %idle:CPU 空闲的时间
  • Device stats:显示每个设备的 I/O 统计信息

    • tps:每秒I/O操作次数
    • kB_read/s:每秒读取的千字节数
    • kB_wrtn/s:每秒写入的千字节数
    • kB_read:读取的总千字节数
    • kB_wrtn:写入的总千字节数
每秒显示 I/O 统计信息,共 5 个报告

每 1 秒刷新一次报告,并在退出前显示总共 5 份报告

shell 复制代码
iostat 1 5

示例输出

shell 复制代码
Linux 5.4.0-70-generic (hostname)     04/27/2023      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice    %system   %iowait  %steal   %idle
           3.52    0.03     1.30      0.71     0.00    94.44

Device            tps    kB_read/s   kB_wrtn/s   kB_read   kB_wrtn
sda              10.58        206.23        98.64   1350224    656928
...

avg-cpu:  %user   %nice    %system   %iowait  %steal   %idle
           3.51    0.02     1.29      0.70     0.00    94.47

Device            tps    kB_read/s   kB_wrtn/s   kB_read   kB_wrtn
sda              10.55        205.12        99.56   1350324    657024
显示特定设备的 CPU 和 I/O 统计信息
shell 复制代码
iostat -d sda
仅显示 CPU 统计信息
shell 复制代码
iostat -c

示例输出

shell 复制代码
Linux 5.4.0-70-generic (hostname)     04/27/2023      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice    %system   %iowait  %steal   %idle
           3.52    0.03     1.30      0.71     0.00    94.44
仅显示 I/O 统计信息
shell 复制代码
iostat -d
实时监控磁盘 I/O

将每秒显示所有设备的扩展统计信息

shell 复制代码
iostat -x 1

扩展信息包括的字段示例

  • %util:设备繁忙的时间百分比

  • await:I/O 操作的平均时间(以毫秒为单位)

  • svctm:I/O 操作的平均服务时间

分析一段时间内的磁盘性能

每 5 秒显示一次扩展统计信息,总共显示 3 份报告

shell 复制代码
iostat -x 5 3
显示特定设备的统计信息
shell 复制代码
iostat -d sda1 sdb
相关推荐
tedcloud1236 小时前
Wand-Enhancer 怎么搭建?开源 Wand 客户端增强与远程控制工具介绍
大数据·服务器·人工智能·开源·音视频
Emily156853598708 小时前
ABB CI867K01 3BSE043660R1
服务器·plc·dcs·abb·ci867k01·3bse043660r1·工控模块
考虑考虑8 小时前
docker compose环境变量替换
运维·后端·自动化运维
Java陈序员9 小时前
轻量运维面板!一款现代化的服务器控制面板工具!
运维·服务器·python·react.js·github
bosins9 小时前
WSL 迁移指南:如何将 Linux 环境完整复制到另一台电脑
linux·运维·服务器
IT利刃出鞘9 小时前
Docker Compose--安装WordPress--方法/示例
运维·docker·容器
企鹅的蚂蚁10 小时前
LubanCat RK3588 实时 Linux 开发(六):启用 gs_usb 驱动并完成 USB-CAN 收发
linux·rk3588·linux驱动·socketcan·gs_usb·usb-can
2601_9622998811 小时前
Linux执行Python脚本方法
linux·python·脚本·解释器·shebang
snow@li11 小时前
服务器运维:Linux命令速查手册(全景梳理)
linux·服务器·网络
handler0111 小时前
【Linux】线程与虚拟内存的底层世界
linux·运维·服务器·c++·线程·虚拟地址空间·共享内存