Linux 下查看硬盘读写情况的命令

2025.5.30 杂七杂八 1585

Linux 下查看硬盘读写情况的命令

本文详细介绍Linux系统中用于监控硬盘读写性能的实用命令,包括iostatiotopvmstat等工具的使用方法和参数解析,帮助系统管理员快速定位磁盘I/O瓶颈,优化存储性能。

一、为什么需要监控硬盘读写

在Linux服务器运维中,磁盘I/O性能直接影响系统整体响应速度。当出现应用卡顿、服务延迟等问题时,通过监控硬盘读写情况可以:

  • 定位高负载进程
  • 发现异常磁盘活动
  • 评估存储设备性能
  • 为扩容/优化提供数据支撑

二、核心监控命令详解

1. iostat – 全面的I/O统计工具

iostat -x 1 5

参数说明:

  • -x:显示扩展统计信息
  • 1:每秒刷新一次
  • 5:共显示5次

关键指标解读:

  • %util:设备利用率(超过80%需警惕)
  • await:I/O平均等待时间(毫秒)
  • svctm:服务时间(反映磁盘本身性能)

2. iotop – 交互式进程监控

sudo iotop -oP

功能特点:

  • 实时显示进程级磁盘I/O
  • -o:只显示活跃I/O进程
  • -P:仅显示进程(不显示线程)

3. vmstat – 系统资源全景监控

vmstat -d 1

输出字段:

  • bi:块设备读取量(blocks/s)
  • bo:块设备写入量(blocks/s)

三、高级用法组合

1. 持续监控特定磁盘

iostat -xmd /dev/sda 2

-m以MB为单位显示,-d仅显示磁盘统计

2. 生成CSV格式报告

iostat -x -o JSON 1 3 > disk_report.json

3. 结合awk快速分析

iostat -dx | awk '$12 > 50 {print}'

筛选利用率超过50%的设备

四、性能优化建议

  1. SSD设备建议关注%utilawait指标
  2. 机械硬盘重点关注svctmawait的差值
  3. 长期高负载应考虑:
    • 升级RAID配置
    • 使用LVM条带化
    • 调整I/O调度器(如改为deadline

评论