插件窝 干货文章 Linux系统中如何监控磁盘I/O

Linux系统中如何监控磁盘I/O

使用 每秒 磁盘 install 230    来源:    2025-05-07

Linux系统磁盘I/O监控方法

在Linux系统中,有多种工具可以监控磁盘I/O性能和使用情况。以下是几种常用的方法:

1. 使用iostat工具

iostat是sysstat包的一部分,提供详细的I/O统计信息:

# 安装sysstat(如果尚未安装)
sudo apt-get install sysstat    # Debian/Ubuntu
sudo yum install sysstat        # RHEL/CentOS

# 基本使用(每2秒刷新一次)
iostat -dx 2

# 显示更详细信息(包括设备利用率)
iostat -dxm 2

输出字段说明: - r/s, w/s - 每秒读写次数 - rkB/s, wkB/s - 每秒读写数据量(KB) - await - 平均I/O等待时间(ms) - %util - 设备利用率百分比

2. 使用iotop工具

iotop类似top命令,但专门用于监控磁盘I/O:

# 安装iotop
sudo apt-get install iotop    # Debian/Ubuntu
sudo yum install iotop       # RHEL/CentOS

# 运行iotop(需要root权限)
sudo iotop

3. 使用vmstat工具

vmstat提供系统整体性能概览,包括I/O:

vmstat 1  # 每秒刷新一次

关注bi(块设备每秒接收的块数)和bo(块设备每秒发送的块数)字段。

4. 使用dstat工具

dstat是多功能系统资源统计工具:

# 安装dstat
sudo apt-get install dstat    # Debian/Ubuntu
sudo yum install dstat        # RHEL/CentOS

# 监控磁盘I/O
dstat -d

5. 使用sar工具

sar也是sysstat包的一部分,可以收集历史I/O数据:

# 查看当天磁盘I/O统计
sar -d

# 查看特定日期的数据(如01号)
sar -d -f /var/log/sa/sa01

6. 使用/proc文件系统

直接查看内核提供的I/O统计:

# 查看块设备I/O统计
cat /proc/diskstats

# 查看各进程I/O使用情况
cat /proc/[pid]/io

7. 使用blktrace进行深入分析

对于需要深入分析I/O性能问题:

# 安装blktrace
sudo apt-get install blktrace    # Debian/Ubuntu
sudo yum install blktrace        # RHEL/CentOS

# 基本使用
blktrace -d /dev/sda -o trace

8. 使用Grafana+Prometheus长期监控

对于生产环境,建议设置长期监控:

  1. 安装node_exporter收集系统指标
  2. 配置Prometheus抓取数据
  3. 使用Grafana展示磁盘I/O仪表盘

监控指标关注点

  • 吞吐量:每秒读写数据量(rkB/s, wkB/s)
  • IOPS:每秒I/O操作次数(r/s, w/s)
  • 延迟:I/O操作等待时间(await)
  • 队列长度:平均请求队列长度(avgqu-sz)
  • 利用率:设备繁忙百分比(%util)

通过综合使用这些工具,您可以全面了解Linux系统的磁盘I/O性能状况,及时发现和解决I/O瓶颈问题。