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逗号隔开如何实现数据高效处理?

    ASP是一种经典的Web开发技术,全称为Active Server Pages,主要用于动态网页的创建,它由微软公司推出,运行在Windows服务器环境中,通过服务器端脚本处理用户请求并生成HTML页面返回给客户端,ASP以其简单易学、开发效率高的特点,在中小型项目中得到了广泛应用,本文将详细介绍ASP的核心概……

    2025年11月23日
    10900
  • ASP连接MySQL数据库代码如何正确实现?

    在Web开发中,ASP(Active Server Pages)连接MySQL数据库是一项常见需求,尤其在构建动态网站或管理系统时,本文将详细介绍ASP连接MySQL数据库的代码实现、注意事项及最佳实践,帮助开发者高效完成数据库交互任务,准备工作在编写连接代码前,需确保以下环境已配置完成:MySQL数据库:已安……

    2025年11月29日
    8300
  • 哪里能找到可靠的ASP网站免费源码?

    在互联网技术快速发展的今天,搭建个人网站或小型企业网站的需求日益增长,而ASP(Active Server Pages)作为一种经典的Web开发技术,因其简单易用、开发效率高,仍被许多开发者青睐,对于预算有限或希望快速上手的用户来说,寻找可靠的ASP网站免费源码是一个不错的选择,本文将围绕ASP网站免费源码的特……

    2025年12月15日
    8700
  • ASP连接字符串设置中常见问题及正确配置方法有哪些?

    在ASP开发中,连接字符串是应用程序与数据库交互的核心桥梁,其配置的正确性直接影响数据访问的稳定性、安全性和性能,连接字符串本质上是一组包含数据库位置、身份验证信息、驱动类型等参数的文本,通过特定格式组织,供ADO.NET等数据访问组件解析使用,合理配置连接字符串不仅能避免常见的连接错误,还能提升系统的安全性与……

    2025年11月19日
    10000
  • ASP网站维护员日常运维关键点有哪些?

    核心职责范围ASP网站维护员的首要职责是保障网站的可用性,这包括定期检查服务器状态、监控网站运行日志,及时发现并处理宕机、数据库连接失败等突发问题,当用户反馈“页面无法加载”时,需快速定位问题是源于IIS配置错误、数据库权限变更还是代码逻辑漏洞,还需负责网站数据备份与恢复,制定每日增量备份与每周全量备份策略,确……

    2025年12月16日
    9600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信