«

Linux查看磁盘IO负载iostat命令使用教程

时间:2026-11-14 07:09     作者:emer     分类: Linux


前言

服务器 CPU、内存都正常,但业务响应慢、数据库卡顿,很多时候瓶颈在磁盘 IO。top 只能看整体负载,无法区分是 CPU 还是磁盘排队。iostat 属于 sysstat 工具集,可以按设备显示磁盘读写速率、IO 等待时间和繁忙百分比,是定位磁盘瓶颈的首选命令。本文讲解 iostat 安装、常用参数、重点指标含义,以及如何判断磁盘是否打满,适配 CentOS、Ubuntu、Debian。

操作步骤

1. 安装 sysstat

# CentOS/Rocky
sudo dnf install -y sysstat
# Ubuntu/Debian
sudo apt install -y sysstat

2. 基本查看,显示 CPU 和磁盘统计

iostat

第一行是系统自启动以来的平均值,要看实时情况需加间隔参数。

3. 每隔 2 秒刷新一次,共 5 次

iostat -x 2 5

-x 显示扩展统计,最关键的列就在这里。

4. 只看某块磁盘,并显示 MB 单位

iostat -x -m 2 5

-m 把 kB 换算成 MB,更直观;也可指定设备:

iostat -x -m /dev/sda 2 5

5. 重点关注的指标

6. 结合进程定位是谁在写盘

iotop

没有 iotop 可安装:

sudo dnf install -y iotop
sudo iotop -o

-o 只显示正在产生 IO 的进程。

常见坑

  1. 只看 iostat 第一行平均值,它是开机以来累计值,不代表当前负载,必须用间隔采样。
  2. 机械磁盘 %util 高是正常瓶颈,SSD 才看 await 飙升。
  3. 云盘(云硬盘)受网络后端影响,本地 iostat 正常但远端仍慢。
  4. 没装 sysstat,直接敲 iostat 报 command not found。
  5. 把 r/s、w/s 请求数当流量看,单位是次不是字节,需配合 -m。
  6. 数据库场景磁盘瓶颈常表现为 await 高,应优先检查慢查询和日志刷盘,而不是先换盘。

总结

iostat -x 间隔 次数 是定位磁盘瓶颈的标准用法,重点看 %util 是否接近满、await 是否异常升高。发现 IO 瓶颈后再用 iotop 找到对应进程,区分是大文件写入、日志堆积还是数据库刷盘导致。平时把 iostat 加入巡检脚本,可在故障前发现磁盘趋势。

遇到问题加QQ23979811 协助处理

标签: Linux iostat 磁盘IO 性能监控