在Linux系统中查看磁盘读写速率可通过以下多种方法实现,结合命令行工具和系统监控接口获取详细数据:
1. `iostat`工具
属于`sysstat`包,提供详细的设备级IO统计:
bash
iostat -x 1 # 每1秒刷新,显示扩展统计(包含%util、await、svctm等关键指标)
关键字段解析:
- `r/s`/`w/s`:每秒读/写请求数
- `rkB/s`/`wkB/s`:每秒读/写数据量(KB)
- `%util`:磁盘繁忙百分比(超过80%可能存在瓶颈)
2. `dstat`工具
综合监控工具,直观显示实时吞吐:
bash
dstat -d # 磁盘读写速度(单位为KB/s)
dstat -D sda # 指定磁盘设备
3. `vmstat`的IO块监控
bash
vmstat -d 1 # 展示磁盘的读写次数(IOPS)和扇区数
4. `iotop`(需root权限)
实时查看进程级磁盘IO占用:
bash
sudo iotop -o # 仅显示活跃IO进程
5. `/proc/diskstats`文件
直接读取内核提供的原始数据:
bash
cat /proc/diskstats | grep sda
字段说明:
第4列为读次数,第6列为写次数,第5/7列为读/写扇区数(1扇区=512B)。
6. `sar`工具(历史数据分析)
bash
sar -b 1 3 # 每1秒采样,共3次,报告缓冲区与磁盘统计
扩展知识:
性能分析建议:高`await`(IO等待时间)可能表示磁盘响应缓慢,需结合`%util`判断是否硬件瓶颈。
企业级场景:
- 使用`blktrace`进行深层IO栈分析。
- 通过`BPF工具`(如`bcc-tools`的`biosnoop`)追踪块设备级延迟。
SSD优化:关注`iostat`的`avgqu-sz`(队列长度),过高队列可能导致NVMe SSD性能下降。
容器环境:`docker stats`或`cAdvisor`可监控容器磁盘IO,但需底层驱动支持。
注意:部分工具需安装`sysstat`、`dstat`等包,建议通过`yum install sysstat`或`apt-get install dstat`提前部署。
查看详情
查看详情