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

iostat指令介绍

文章目录

    • 1. 功能介绍
    • 2. 语法介绍
    • 3. 应用场景
    • 4. 示例分析

1. 功能介绍

iostat (input/output statistics),是 Linux/Unix 系统中用于监控 CPU 使用率磁盘 I/O 性能的核心工具,可实时展示设备负载、吞吐量、队列状态等关键指标。

可以使用 man iostat查看详细介绍。

  • 核心监控维度

    • CPU 使用率:用户态(%user)、内核态(%system)、空闲(%idle)及 I/O 等待时间(%iowait)。
    • 磁盘 I/O:每秒读写请求数(tps)、数据量(kB_read/s/kB_wrtn/s)。
  • 数据模式

    首次报告:第一次iostat指令指示了系统启动以来的累计数据(需注意可能包含历史干扰)。
    持续监控:通过 iostat 间隔秒数 次数(如 iostat 2 5)动态刷新数据。

2. 语法介绍

使用 help 可以看到用法如下:

-sh-4.4$ iostat --help
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]

相关选项介绍如下:

选项功能描述示例命令
-c仅显示 CPU 统计信息(与 -d 互斥)iostat -c 1 5
-d仅显示磁盘统计信息(与 -c 互斥)iostat -d sda
-x输出扩展 I/O 详情(如 awaitsvctmiostat -x 1
-k/-m以 KB/MB 为单位显示数据(默认块单位)iostat -k
-p指定监控的磁盘分区(如 sdaiostat -p sda 2
-t添加时间戳(格式 HH:MM:SSiostat -t
-z跳过零 I/O 活动设备,仅显示活跃设备iostat -z
  • -x 扩展IO详细介绍

    • iostat -x 的输出分为两部分:CPU 统计信息(默认显示,可通过 -d 隐藏)和磁盘设备统计信息。以下重点解析磁盘部分的扩展字段(以设备 sda 为例):

      字段含义
      Device磁盘设备名称(如 sdanvme0n1)。
      r/s每秒完成的读请求数(实际发送到磁盘的读操作数)。
      w/s每秒完成的写请求数。
      rkB/s每秒读千字节数(需结合 -k 选项,或通过 rsec/s * 512 / 1024 计算)。
      wkB/s每秒写千字节数。
      rrqm/s每秒合并的读请求数(内核将相邻的读请求合并以提高效率)。
      wrqm/s每秒合并的写请求数。
      %rrqm在发送到设备之前合并在一起的读请求的百分比。
      %wrqm在发送到设备之前,写请求合并在一起的百分比。
      r_await发送到要服务的设备的读请求的平均时间(以毫秒为单位)。这包括队列中请求所花费的时间和为它们服务所花费的时间。
      w_await发送到要服务的设备的写请求的平均时间(以毫秒为单位)。这包括队列中请求所花费的时间和服务所花费的时间。
      aqu-sz平均等待处理的 IO 请求队列长度(值越高表示 IO 队列积压越严重)。老版本是 avgqu-sz
      rareq-sz发送到设备的读请求的平均大小(单位为千字节)。
      wareq-sz发送给设备的写请求的平均大小(单位为千字节)。
      svctm平均每个 IO 请求的设备处理时间(不包括队列等待时间),单位:毫秒。
      %util磁盘设备的利用率(即磁盘忙于处理 IO 请求的时间百分比,接近 100% 表示磁盘饱和)。

3. 应用场景

  • 性能瓶颈分析

    • CPU 瓶颈
      • %iowait >20% 表示 I/O 等待时间长,可能磁盘成为瓶颈。
      • %user + %sys >70% 提示 CPU 处理能力不足,需优化代码或扩容。
    • 磁盘瓶颈(iostat -x):
      • 高 %util(>80%):设备接近满载,需优化存储或升级硬件。
      • 高 await 与低 svctm:I/O 队列堆积,检查并发读写。
  • 数据库与存储调优

    • 数据库负载
      • 监控事务日志盘(如 /dev/sdb)的 tpsrkB/s,确保读写均衡。
  • 存储设备评估

    • SSD 与 HDD 对比
      • SSD 的 svctm 通常 <1ms,若 HDD 的 svctm 持续 >10ms,建议升级存储介质。

4. 示例分析

  • 高 %util 但低吞吐量:
    • 可能频繁小文件随机读写,导致磁盘频繁寻道。优化方法:合并 I/O 请求或改用 SSD。
  • await 远高于 svctm:
    • 表明 I/O 队列积压严重。需检查 avgqu-sz,若队列过长,需降低并发或提升磁盘性能。
  • rkB/s 突增:
    • 可能发生大规模数据读取(如数据库全表扫描)。需结合业务逻辑判断是否正常。

相关文章:

  • go-Casbin使用
  • 游戏引擎学习第239天:通过 OpenGL 渲染游戏
  • Unity Paint In 3D 入门
  • Python线程全面详解:从基础概念到高级应用
  • 鸿蒙生态新利器:华为ArkUI-X混合开发框架深度解析
  • android contentProvider 踩坑日记
  • uniapp 上传二进制流图片
  • 鸿蒙生态:鸿蒙生态校园行心得
  • Windows下Golang与Nuxt项目宝塔部署指南
  • L1-4、如何写出清晰有目标的 Prompt
  • vscode python 代码无法函数跳转的问题
  • 55、Spring Boot 详细讲义(十一 项目实战)springboot应用的登录功能和权限认证
  • 小刚说C语言刷题——1031 温度转化
  • Ubuntu-Linux中vi / vim编辑文件,保存并退出
  • 云账号安全事件分析:黑客利用RAM子账户发起ECS命令执行攻击
  • 联易融科技:以科技赋能驱动经营反转与价值重估
  • 可吸收聚合物:医疗科技与绿色未来的交汇点
  • K8s:概念、特点、核心组件与简单应用
  • 方案精读:华为智慧园区解决方案【附全文阅读】
  • [创业之路-380]:企业法务 - 企业经营中,企业为什么会虚开増值税发票?哪些是虚开増值税发票的行为?示例?风险?
  • 叶辛秦文君进校园推广阅读
  • 广州一男子早高峰爬上猎德大桥顶部疑似要跳桥,路段一度拥堵
  • 民生访谈|电动自行车换新补贴会优化吗?今年汛期情况如何?市应急局回应
  • 美股再遭重挫,标普500指数11个板块全线溃败
  • 大幅加仓美的、茅台,买入小米,银华基金李晓星:看好港股与A股消费股
  • 云南昭通一公园发现毒饵,多只宠物狗疑中毒致死