上一篇
Linux磁盘IO查看方法速查
- Linux
- 2025-06-18
- 2661
使用iostat命令实时监控磁盘I/O性能,或通过iotop查看进程级读写详情,vmstat提供系统级I/O统计,而sar -d可生成历史报告,dstat工具提供彩色动态视图,/proc/diskstats文件记录原始数据。
在Linux系统中,监控磁盘I/O(输入/输出)性能是诊断系统瓶颈、优化存储效率的关键操作,以下详细介绍多种专业方法,结合命令行工具和系统文件,帮助您全面掌握磁盘I/O状态。

核心命令行工具
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手册页(
man iostat、man iotop)- sysstat官方文档
- Linux内核文档:/proc/diskstats
- IBM Developer:磁盘I/O性能分析指南
通过以上工具组合,您可精准识别磁盘I/O瓶颈,确保系统高效运行,建议定期监控关键指标,尤其在部署高负载应用前进行基线测试。


