iostat如何揪出Linux磁盘瓶颈?

安装与基础命令

  1. 安装(默认未安装时)

    • Ubuntu/Debian:sudo apt-get install sysstat
    • CentOS/RHEL:sudo yum install sysstat
    • 验证安装:iostat -V
  2. 基础语法

    iostat [选项] [间隔时间] [执行次数]
    • 示例:iostat 2 5 → 每 2 秒输出 1 次,共 5 次

核心选项解析

选项 作用 示例命令
-c 仅显示 CPU 使用率 iostat -c 1
-d 仅显示磁盘 I/O 统计 iostat -d 2
-x 显示扩展磁盘统计(关键指标) iostat -x 1
-m 以 MB/s 代替 KB/s 显示吞吐量 iostat -d -m
-p 指定单个设备(如 sda) iostat -p sda
-t 输出时包含时间戳 iostat -t 1
-h 人类可读格式(与 -m 配合) iostat -d -m -h

输出结果解读(重点)

执行 iostat -x 1 后的关键列:

  1. 磁盘标识

    • Device: 磁盘名称(如 sda、nvme0n1)
  2. I/O 性能指标

    • r/s:每秒读请求次数
    • w/s:每秒写请求次数
    • rkB/s:每秒读取数据量(KB)
    • wkB/s:每秒写入数据量(KB)
  3. 队列与延迟(瓶颈判断核心)

    • %util:磁盘繁忙百分比(>80% 表示可能过载
    • await:I/O 平均等待时间(ms)(>10ms 需警惕
    • svctm:磁盘处理 I/O 所需时间(ms)
    • aqu-sz:平均请求队列长度(>1 表示排队

实战场景示例

  1. 诊断磁盘瓶颈

    iostat -x 1 3  # 每1秒刷新,共3次,观察 %util 和 await
    • %util 持续 >90% 且 await 飙升 → 磁盘过载
  2. 对比读写吞吐量

    iostat -d -m 2  # 每2秒显示磁盘读写(MB/s)
    • 输出示例:
      Device    rMB/s   wMB/s  
      sda       45.2    12.8
  3. 监控特定分区

    iostat -p sdb1 -h 1  # 监控 /dev/sdb1 分区

高级技巧

  1. 结合 CPU 分析

    iostat -c -d -x 1  # 同时监控 CPU 和磁盘
    • %iowait(CPU 等待 I/O 时间)高 → 磁盘成为瓶颈
  2. 生成 CSV 日志

    iostat -o JSON -d -x 1 10 > iostat.log  # 保存为 JSON 格式
  3. 对比 SSD 与 HDD 性能

    iostat -x -p nvme0n1,sda 1  # 同时监控 SSD 和机械硬盘

注意事项

  1. 数据来源:统计基于 /proc/diskstats,非实时硬件监控。
  2. 首次输出:无间隔时间的命令(如 iostat)显示系统启动至今的平均值。
  3. %util 误区:RAID 或 SSD 可能 >100%,因并行处理(需结合 await 判断)。
  4. 性能基线:长期运行 iostat -x 60 > log.txt 建立基准数据。

iostat 是诊断磁盘 I/O 性能的首选工具:

  • 快速定位瓶颈:关注 %utilawaitaqu-sz
  • 关键命令组合:iostat -x 1(扩展统计) + iostat -d -m(吞吐量)
  • 结合场景分析:高 %iowait 需联动磁盘指标排查

引用说明参考 Linux 手册页(man iostat)、IBM 性能分析文档及 Red Hat 系统监控指南,数据指标定义遵循 Sysstat 工具集官方标准。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6717.html

(0)
酷番叔酷番叔
上一篇 2025年7月8日 18:51
下一篇 2025年7月8日 19:10

相关推荐

  • 必须满足哪些前提条件?

    在命令窗口(如Windows的CMD或PowerShell,以及Linux/macOS的Terminal)中执行SQL语句,是数据库管理、数据操作和自动化任务的核心技能,以下是详细的操作指南,涵盖主流数据库系统(MySQL、SQL Server、Oracle、PostgreSQL),确保安全性和高效性,安装数据……

    2025年7月2日
    4400
  • 如何启用IP转发?

    端口映射核心概念端口映射(Port Forwarding)是将公网IP的指定端口转发到内网设备的特定端口的技术,常用于远程访问NAS、搭建服务器或监控系统,实现需三个条件:操作系统的管理员权限知晓本机内网IP(如192.168.1.100)路由器登录权限(配置公网转发)⚠️ 风险提示:开放端口可能增加安全风险……

    2025年6月28日
    5100
  • Linux创建txt文件有哪些方法?

    核心创建方法touch 命令(创建空文件) touch filename.txt作用:创建空白文件或更新现有文件时间戳示例:touch report.txt # 创建空文件touch notes.txt log.txt # 同时创建多个文件重定向符 >(快速写入内容) echo "初始内容&qu……

    2025年6月22日
    4300
  • 如何用开始菜单快速搜索文件?

    在Windows开始菜单的搜索框中直接输入关键词,可快速查找并打开电脑上的应用程序、文件或设置项,此方法操作简单直观,适合所有用户快速定位所需内容。

    2025年7月20日
    4600
  • 新手如何使用 nmtui 工具?

    在 CentOS 系统中,通过命令行配置网卡是管理员必备技能,以下是专业、可靠且符合最佳实践的操作方法,适用于 CentOS 7 及更高版本(如 CentOS 8、Stream),操作前请确保拥有 root 权限(使用 sudo -i 或 su – 切换),nmtui 是 NetworkManager 提供的文……

    2025年6月18日
    5700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信