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

Linux磁盘IO查看方法速查

使用iostat命令实时监控磁盘I/O性能,或通过iotop查看进程级读写详情,vmstat提供系统级I/O统计,而sar -d可生成历史报告,dstat工具提供彩色动态视图,/proc/diskstats文件记录原始数据。

在Linux系统中,监控磁盘I/O(输入/输出)性能是诊断系统瓶颈、优化存储效率的关键操作,以下详细介绍多种专业方法,结合命令行工具和系统文件,帮助您全面掌握磁盘I/O状态。

Linux磁盘IO查看方法速查 第1张

Linux磁盘IO查看方法速查 第2张

核心命令行工具

iostat(最常用)

  • 功能:实时监控磁盘读写速率、IOPS、等待时间等。
  • 安装:包含在sysstat包中(Ubuntu/Debian: sudo apt install sysstat;CentOS/RHEL: sudo yum install sysstat)。
  • 基础用法: iostat -dx 2 5 # 每2秒刷新1次,共显示5次,-d显示磁盘报告,-x显示扩展统计
  • 输出关键指标
    • r/s、w/s:每秒读写请求数(IOPS)。
    • rkB/s、wkB/s:每秒读写数据量(KB)。
    • await:I/O平均等待时间(ms)。
    • %util:磁盘利用率(≥80%表示可能过载)。

iotop(类似任务管理器)

  • 功能:按进程实时排序显示I/O使用情况。
  • 安装:sudo apt install iotop(Debian系)或 sudo yum install iotop(RHEL系)。
  • 用法: sudo iotop -oP # -o仅显示活跃I/O进程,-P关闭线程显示
  • 输出列
    • DISK READ、DISK WRITE:进程读写速率。
    • SWAPIN、IO>:I/O等待时间占比。

vmstat(系统资源概览)

  • 功能:综合报告CPU、内存、磁盘I/O状态。
  • 用法: vmstat 1 5 # 每1秒刷新,共5次
  • 磁盘相关列
    • bi(Block In):每秒读取块数。
    • bo(Block Out):每秒写入块数。

dstat(多功能监控)

  • 功能:整合vmstat、iostat、netstat数据。
  • 安装:sudo apt install dstat 或 sudo yum install dstat。
  • 用法: dstat -tdD sda # -t加时间戳,-D指定磁盘(如sda)
  • 优势:实时显示磁盘读写速率(read/writ列)及CPU、网络数据。


系统文件直接解析

/proc/diskstats(原始数据源)

  • 路径:cat /proc/diskstats
  • 字段解释(以sda为例): 8 0 sda IOPS读 合并读 扇区读 读耗时 IOPS写 合并写 扇区写 写耗时 I/O队列长度 总耗时
  • 计算实时读写速率: cat /proc/diskstats | grep sda | awk '{print "读速率(KB/s): "$6*512/1024, "写速率(KB/s): "$10*512/1024}'

/sys/block/sda/stat(可读性更高)

  • 路径:cat /sys/block/sda/stat
  • 字段顺序:与/proc/diskstats一致,但以空格分隔。


高级工具与技巧

sar(历史数据分析)

  • 功能:查看历史磁盘I/O记录(需先启动sadc服务)。
  • 用法: sar -d -p 1 3 # 每1秒采样,共3次

结合watch动态刷新

  • 示例:实时监控sdb的I/O: watch -n 1 'iostat -dx sdb | tail -n +4'

图形化工具(可选)

  • 推荐工具:nmon(终端图形)、gnome-disk-utility(GUI)。
  • 安装:sudo apt install nmon 或使用系统自带磁盘管理器。


实际场景示例

诊断高I/O进程

sudo iotop -oP | head -10 # 显示前10个I/O最高的进程

检查磁盘瓶颈

iostat -dx 1 | grep -A 1 "%util" # 持续观察%util和await

  • :若%util持续>80%且await显著增加,表明磁盘过载。


总结建议

  • 快速检查:使用iostat -dx 1或iotop。
  • 历史分析:用sar配合sysstat日志。
  • 进程级排查:iotop定位具体进程。
  • 底层数据:直接解析/proc/diskstats。

引用说明

Linux磁盘IO查看方法速查 第3张

通过以上工具组合,您可精准识别磁盘I/O瓶颈,确保系统高效运行,建议定期监控关键指标,尤其在部署高负载应用前进行基线测试。

0