Linux命令-iotop命令(实时磁盘 I/O 监控工具)

🧭 说明

iotop 是一个类似 top 命令的实时磁盘 I/O 监控工具,它能精确显示系统中各个进程或线程的磁盘读写情况,帮助快速定位 I/O 密集型进程 。

🔧 安装与基本使用

安装命令

大多数 Linux 发行版默认未安装 iotop,可以使用包管理器安装 :

  • Debian/Ubuntu : sudo apt install iotop
  • RHEL/CentOS : sudo yum install iotop
  • Fedora : sudo dnf install iotop
  • Arch Linux : sudo pacman -S iotop

基本使用

执行 sudo iotop 即可启动交互式界面 。界面顶部显示系统总的磁盘读写速度,下方表格列出每个进程/线程的详细信息 。

输出列说明

理解各列含义对分析至关重要 :

列名 说明
PID/TID 进程ID/线程ID。
USER 进程所有者。
DISK READ 进程的磁盘读取速率。
DISK WRITE 进程的磁盘写入速率。
SWAPIN 进程进行交换(swap)的百分比。
IO> 进程等待 I/O 的时间百分比,是判断 I/O 压力的关键指标。
COMMAND 进程名称。

⚙️ 常用参数与技巧

下表汇总了一些最实用的命令参数 :

参数 说明
-o / --only 只显示正在发生 I/O 的进程,让输出更聚焦 。
-b / --batch 非交互式模式,常用于将输出重定向到文件,用于后续分析 。
-p PID 仅监控指定的进程ID 。
-u USER 仅监控指定用户的进程 。
-d SEC 设置刷新间隔(秒),例如 -d 5 表示每5秒刷新一次 。
-n NUM 在非交互模式下运行的次数,配合 -b 使用 。
-a / --accumulated 显示累积 I/O 量,而非实时带宽 。
-t / --time 在输出中增加时间戳,便于记录 。

交互模式快捷键

iotop 的交互界面中,使用快捷键可以动态调整显示 :

  • 左右箭头:改变排序的列。
  • r:反转排序顺序。
  • o :切换"只显示活跃进程"的开关(相当于 -o 参数)。
  • q:退出程序。

💡 实际应用场景

  1. 快速定位系统卡顿元凶

    当系统响应缓慢时,可运行 sudo iotop -o,按 IO% 列排序,直观地看到是哪个进程在大量读写磁盘 。

  2. 监控特定服务

    若要监控数据库(如 MySQL)的 I/O 活动,可以使用 sudo iotop -u mysql -o,专门查看该用户的进程 。

  3. 记录特定时间段的 I/O 日志

    用于事后分析,例如,以下命令将每 10 秒采样一次,共 5 次,并将结果保存到文件:

    bash 复制代码
    sudo iotop -b -t -n 5 -d 10 > iotop_log.txt

⚠️ 注意事项

  • 权限要求iotop 需要 root 权限来读取所有进程的 I/O 信息,因此通常需使用 sudo
  • 内核支持iotop 需要内核开启 I/O 统计功能,主流发行版通常已支持 。
  • 综合诊断iotop 擅长找出"谁"在读写磁盘,但要理解"为什么"磁盘慢,还需结合 iostatvmstat 等工具查看设备级指标(如利用率 %util、响应时间)。
相关推荐
寒水馨5 小时前
Linux下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_linux.x86_64.zip)
linux·游戏引擎·godot·游戏开发·2d游戏·3d游戏·godot engine
念恒123065 小时前
Socket编程UDP(中)
linux·网络协议·udp
深耕运维十八载云架构实务5 小时前
系统故障玄学之内存明明显示空闲,服务器却频繁卡顿卡死?拆解被忽略的 Linux 隐性内存陷阱
linux
qetfw6 小时前
CentOS 7 搭建 Sendmail + Dovecot 邮件服务器:SMTP、POP3、IMAP 与 TLS
linux·centos
xlq223226 小时前
高并发服务器day5
java·服务器·数据库
明日清晨6 小时前
printf(“%p\n“,&((struct A *)NULL)->m_float)的原理
linux·服务器·前端
运维大师6 小时前
【K8S 运维实战】15-链路追踪Jaeger与OTel
运维·容器·kubernetes
William_cl6 小时前
WinForms EF Core 上下文频繁释放引发的异常排查与规范方案(MES 项目实录)
服务器·数据库·oracle
霁月的小屋7 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
其实防守也摸鱼7 小时前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统