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

相关推荐

  • ASP如何获取支付宝信息?

    在Web开发中,通过ASP(Active Server Pages)获取支付宝相关信息是许多电商或支付系统集成中的常见需求,这一过程涉及技术对接、安全验证和数据交互,开发者需遵循支付宝开放平台的规范,确保流程合规与数据安全,以下从技术原理、实现步骤、注意事项及代码示例等方面进行详细说明,技术原理与准备工作ASP……

    2025年12月6日
    4700
  • 如何掌握基础调用语法?

    在AutoLISP中调用AutoCAD命令是实现CAD自动化操作的核心技术,通过(command)函数可直接与AutoCAD交互,以下是详细指南(符合E-A-T原则:基于AutoLISP官方文档及AutoCAD开发经验):(command "命令名称" 参数1 参数2 …)命令名称:字符……

    2025年7月5日
    12600
  • 为什么你的存款总是不见涨

    在Linux系统中,sudo(SuperUser DO)是管理权限的核心工具,允许授权用户以其他身份(通常是root)执行命令,它通过细粒度控制提升系统安全性,避免长期使用root账户的风险,以下是详细使用指南:sudo基础语法sudo [选项] 命令常用选项:-u 用户名:以指定用户身份执行(默认root……

    2025年7月7日
    9300
  • ASP链接MySQL为何更优?高效连接方法与优势解析?

    在Web开发领域,ASP(Active Server Pages)作为一种经典的动态网页开发技术,凭借其简单易用、与Windows服务器环境深度整合的特性,仍被广泛应用于中小型企业项目或遗留系统维护中,而MySQL作为全球最受欢迎的开源关系型数据库管理系统,以高性能、高可靠性和零成本优势,成为众多开发者的首选数……

    2025年11月16日
    5600
  • ASP皮肤包如何安装使用?

    在网站开发领域,ASP(Active Server Pages)作为一种经典的服务器端脚本技术,至今仍被许多企业和开发者用于构建动态网站,为了提升网站的用户体验和视觉吸引力,ASP皮肤包(ASP Skin Package)应运而生,它是一种集成了页面样式、布局结构和交互效果的综合性解决方案,能够帮助开发者快速实……

    2025年12月25日
    2800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信