当前位置: 首页 > ds >正文

iostat 系统IO监控命令学习

一、iostat 命令描述

“iostat”命令用于监测系统输入/输出设备的负载情况,其通过观察设备处于活跃状态的时间与平均传输速率之间的关系来实现这一目的。该命令会生成报告,这些报告可用于调整系统配置,以更好地平衡物理磁盘之间的输入/输出负载。
iostat 命令生成的第一份报告会提供有关系统自启动以来的时间的统计信息(除非使用了 -y 选项)。在这种情况下,第一份报告将被省略。每次后续报告都会涵盖自上一次报告以来的时间。每次运行 iostat 命令时,都会报告所有统计信息。报告包括一个 CPU 标题行,随后是一行 CPU 统计信息。在多处理器系统中,CPU 统计信息是按系统范围计算的,即所有处理器的平均值。会显示一个设备标题行,随后是每个配置设备的一行统计信息。
“间隔参数”指定了每次报告之间的时间间隔(以秒为单位)。而“计数参数”则可以与“间隔参数”一同设定。如果指定了“计数参数”,其值将决定在每隔“间隔时间”秒内生成的报告数量。如果
如果未指定计数参数,则间隔参数一经设定,iostat 命令就会持续生成报告。

安装: yum -y install sysstat

二、iostat 常用参数介绍

参数作用与说明典型用法示例
-c仅显示 CPU 统计(%user %nice %system %iowait %idle)iostat -c 1 3
-d仅显示磁盘/设备统计iostat -d 1
-x扩展模式:额外给出 await svctm %util avgqu-sz 等关键指标,定位 I/O 瓶颈必用iostat -x 1
-k/-m以 KiB/s 或 MiB/s 为单位显示吞吐量(默认是 block/s)iostat -dk 1
-p指定某个设备或分区,避免被无关设备刷屏iostat -p sda 1
-t输出时间戳,方便做日志或趋势对比iostat -xt 1 10 > io.log
-y跳过第一次采样(避免系统启动平均值干扰)iostat -xy 1
-z隐藏无活动的设备,输出更干净iostat -dz 1

三、实例:

实例1. 输出所有设置负载情况

如下可以看出我只有一块设置 nvme0n1

# iostat
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.45    0.00    1.36    2.74    0.00   95.44Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1         676.62     11660.61     11867.46  159227855  162052488
scd0              0.00         0.08         0.00       1041          0

cpu属性值说明:

  • %user:正常优先级用户进程占 CPU 的时间
  • %nice:被 nice 降过优先级的用户进程占 CPU 的时间
  • %system:内核态(系统调用、中断等)占 CPU 的时间
  • %iowait:CPU 空闲但等待 I/O 完成的时间
  • %steal:被虚拟机 Hypervisor 或其他 VM 偷走的 CPU 时间
  • %idle:CPU 真正空闲、无任务可运行的时间

disk属性值说明:

  • tps:每秒传输(I/O)次数
  • kB_read/s:每秒从设备读数据量
  • kB_wrtn/s:每秒向设备写数据量
  • kB_read:启动至今累计读量
  • kB_wrtn:启动至今累计写量

实例2. 定时显示所有信息

每隔两秒显示,总共显示3次

# iostat 2 3
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.44    0.00    1.32    2.65    0.00   95.59Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1         654.28     11275.47     11475.50  159227963  162052618
scd0              0.00         0.07         0.00       1041          0avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.06    0.00    0.31    0.00    0.00   99.62Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1           0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.06    0.00    0.25    0.00    0.00   99.69Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1           0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0

实例3. 查看TPS和吞吐量

查看nvme0n1 磁盘的吞吐量信息,第一次tps显示644.79 是系统启动以来(或工具启动以来)的累计统计”,从第二次开始才是“每 1 秒的实时增量”。

# iostat -d nvme0n1 -m 1 3
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1         644.79        10.85        11.04     155496     158254Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1           0.00         0.00         0.00          0          0Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
nvme0n1           0.00         0.00         0.00          0          0

实例4. 查看设备使用率(%util)和响应时间(await)

# iostat -d nvme0n1 -x -k 1 1
Linux 4.18.0-348.7.1.el8_5.x86_64 (localhost.localdomain)       08/04/2025      _x86_64_        (8 CPU)Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1        293.84  341.03  10940.83  11135.15     0.00     0.21   0.00   0.06    3.06    4.47   2.42    37.23    32.65   0.09   5.59
  • r/s:每秒读请求个数(读 IOPS)
  • w/s:每秒写请求个数(写 IOPS)
  • rMB/s:每秒读取的数据量(读吞吐量)
  • wMB/s:每秒写入的数据量(写吞吐量)
  • rrqm/s:每秒合并的读请求(合并后减少实际磁盘读)
  • wrqm/s:每秒合并的写请求(合并后减少实际磁盘写)
  • %rrqm:读请求合并比例(越高越省磁盘)
  • %wrqm:写请求合并比例(越高越省磁盘)
  • r_await:读请求平均响应时间(从提交到完成,单位毫秒)
  • w_await:写请求平均响应时间(从提交到完成,单位毫秒)
  • aqu-sz:平均队列长度
  • rareq-sz:(等待 + 正在服务的 I/O 数)
  • wareq-sz:平均读请求大小(KB/请求)
  • svctm:平均写请求大小(KB/请求)
  • %util:设备繁忙度(100% 表示磁盘饱和)
http://www.xdnf.cn/news/17158.html

相关文章:

  • AR技术赋能轨道交通培训:虚实结合提升学习效率
  • Kotlin Daemon 简介
  • 从零开始搞定类与对象(中)
  • AI 面试 vs 真人面试:破解企业招聘效率困局
  • 【STM32】GPIO的输入输出
  • 数据结构(2)
  • SpringBoot3.0+Vue3.0开源版考试系统
  • ubuntu22.04系统实践 linux基础入门命令(三) 用户管理命令
  • 抗辐照DCDC与MCU在核环境监测设备中的集成应用
  • Jwts用于创建和验证 ​​JSON Web Token(JWT)​​ 的开源库详解
  • 【MATLAB例程】水下AUV自主导航定位例程,定位使用TDOA(到达时间差),适用于三维环境,附代码下载链接
  • MySQL详解
  • ICCV 2025|单视频生成动态4D场景!中科大微软突破4D生成瓶颈,动画效果炸裂来袭!
  • Linux下载安装mysql,客户端(Navicat)连接Linux中的mysql
  • 消防器材检测数据集介绍-9,600 张图片 智慧安防系统 建筑施工安全监管 AI 消防巡检机器人 自动审核系统 公共场所安全监测
  • 【核心技术二】Uvicorn:高性能 ASGI 服务器
  • React Hooks 原理深度解析与最佳实践
  • 在CentOS 7上安装配置MySQL 8.0完整指南
  • JVM-垃圾回收器与内存分配策略详解
  • 模拟-6.N字形变换-力扣(LeetCode)
  • 基于springboot的学习辅导系统设计与实现
  • 【深度学习新浪潮】谷歌新推出的AlphaEarth是款什么产品?
  • spring-ai-alibaba 之 graph 槽点
  • 若没有安全可靠性保障,对于工程应用而言,AI或许就是大玩具吗?
  • 嵌入式通信协议解析(基于红外NEC通信协议)
  • 深入解析C++函数重载:从原理到实践
  • 模型学习系列之参数
  • C# LINQ(LINQ to XML)
  • OpenWrt | 如何在 ucode 脚本中打印日志
  • 基于BiLSTM+CRF实现NER