在Linux中使用iotop监控磁盘I/O的步骤如下:
-
安装:
- Debian/Ubuntu:
sudo apt-get install iotop
- CentOS/RHEL:
sudo yum install iotop
或sudo dnf install iotop
- Debian/Ubuntu:
-
基础使用:
- 直接运行
sudo iotop
(需root权限) - 界面关键列说明:
- DISK READ/DISK WRITE:进程实时读写速度
- SWAPIN:进程等待交换的CPU占比
- IO>:I/O操作消耗的总CPU时间百分比
- 直接运行
-
常用参数:
-o/--only
:仅显示活跃I/O的进程-d 秒数
:设置刷新间隔(如-d 2
)-p PID
:监控特定进程-u 用户名
:按用户筛选-a
:显示累积I/O量(历史统计)-b
:非交互式批量模式(用于脚本)
-
高级操作:
- 按左右箭头键切换排序列(默认按I/O负载排序)
- 使用
--batch --numeric
生成纯文本输出(可重定向到文件) - 组合过滤:
sudo iotop -ob -d 5
(批量模式+2秒刷新)
-
故障排查:
- 若提示无权限:检查是否以root执行
- 若数据不更新:确认内核配置是否启用
CONFIG_TASK_IO_ACCOUNTING
(可通过grep CONFIG_TASK_IO_ACCOUNTING /boot/config-$(uname -r)
验证)
-
典型场景:
- 快速定位高I/O进程:
sudo iotop -oPa
- 持续监控并记录:
sudo iotop -b -d 10 -n 3 > iotop.log
- 分析特定进程:
sudo iotop -p $(pidof mysqld)
- 快速定位高I/O进程:
注意:iotop依赖内核I/O统计功能,较旧内核可能需手动启用。对于容器环境(如Docker),需在宿主机执行才能监控容器进程的I/O。