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、响应时间)。
相关推荐
gooxi_hui11 小时前
海量存力,智驭未来丨国鑫4U60盘位高密度存储服务器SL401-G4重磅上市
运维·服务器·人工智能
吴爃11 小时前
小微企业 SRE 稳定性建设
运维·稳定性·小微企业
天空'之城11 小时前
Linux 系统编程 10:线程同步
linux·开发语言·系统编程·线程同步
河铃旅鹿12 小时前
在Ubuntu系统上为Android交叉编译OpenSSL
android·linux·ubuntu
开开心心_Every12 小时前
带OCR识别的电子发票打印工具
运维·自动化·ocr·电脑·powerpoint·音视频·lua
长孙豪翔12 小时前
引发事件的问题
java·linux·数据库
小张成长计划..12 小时前
【Linux】7:第一个系统程序-进度条
linux·运维·服务器
2401_8854114712 小时前
linux进程间通信------命名管道
linux·运维·服务器
枳实-叶12 小时前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#
李子琪。12 小时前
云计算虚拟化技术全解析:从理论到实践
linux·centos·云计算