Skip to main content

Linux iotop 命令教程:监控磁盘 I/O 活动 📊

iotop 是一个 Linux 命令行工具,用于实时监控系统的磁盘 I/O(输入/输出)活动。它类似于 top 命令,但专注于显示与磁盘 I/O 相关的进程及其行为。通过 iotop,你可以查看哪个进程正在占用磁盘带宽,有助于进行性能分析和故障排除。

1. 简介

iotop 可以实时显示各个进程对磁盘的读取与写入活动。它非常适用于系统管理员和开发者,帮助他们识别哪些进程可能会导致磁盘性能问题,或者查找 I/O 密集型应用。💻

可惜界面太古老,不太现代化。你可以通过 apt install iotop 安装它。

iotop 的基本语法

sudo iotop [选项]

注意:iotop 需要 root 权限才能获取系统的 I/O 活动信息,因此需要使用 sudo

2. 常见操作概览 📋

操作命令格式说明
启动 iotopsudo iotop启动 iotop 命令,实时显示磁盘 I/O 活动。
显示特定进程的 I/O 信息sudo iotop -p <PID>显示指定进程(由进程号 PID 确定)的 I/O 活动。
以批处理模式运行sudo iotop -b启动批处理模式,适用于将输出保存到文件。
显示更详细的信息sudo iotop -o只显示正在进行 I/O 操作的进程。
刷新间隔设置sudo iotop -d <秒数>设置显示刷新时间间隔(单位为秒)。
显示所有 I/O 活动sudo iotop -a显示所有进行 I/O 操作的进程,包括后台进程。

3. 命令示例 ⚡

3.1 启动 iotop

基本的命令格式是直接运行 iotop

sudo iotop

这将显示一个实时更新的进程列表,其中包含每个进程的磁盘 I/O 活动,如读取速度(READ)、写入速度(WRITE)以及总 I/O 消耗(IO)。你可以按 q 键退出。

3.2 显示特定进程的 I/O 信息

如果你只关心某个进程的 I/O 活动,可以使用 -p 选项:

sudo iotop -p 1234

这个命令会显示进程 ID 为 1234 的进程的磁盘 I/O 活动。

3.3 启动批处理模式

如果你想将 iotop 的输出保存到文件中进行后续分析,可以使用批处理模式 -b 选项:

sudo iotop -b -n 10 > iotop_output.txt

这个命令会以批处理模式运行 iotop,并将输出保存到 iotop_output.txt 文件中。-n 10 指定了运行的次数(10 次)。

3.4 显示正在进行 I/O 操作的进程

如果你只关心当前正在进行磁盘 I/O 操作的进程,可以使用 -o 选项:

sudo iotop -o

此命令只会显示当前正在执行磁盘 I/O 操作的进程。

3.5 设置刷新间隔

你可以设置 iotop 刷新的时间间隔,单位为秒。默认情况下,iotop 每秒刷新一次:

sudo iotop -d 2

这将使得显示的内容每 2 秒刷新一次。

3.6 显示所有 I/O 活动

如果你想查看所有进行 I/O 操作的进程(包括后台进程),可以使用 -a 选项:

sudo iotop -a

这个命令会显示所有正在进行 I/O 操作的进程,包括那些处于后台的进程。

4. 帮助信息📝

info
以下是 sudo iotop -h 给出的帮助信息

使用:/usr/sbin/iotop [选项]

DISK READDISK WRITE 表示在采样期间使用的块I/O带宽。SWAPINIO 分别表示线程在交换内存(swapping in)和等待I/O时所花费的时间百分比。PRIO 表示线程运行的I/O优先级(使用ionice命令设置)。

控制:

  • 左右箭头键改变排序列
  • r键反转排序顺序
  • o键切换--only选项
  • p键切换--processes选项
  • a键切换--accumulated选项
  • i键更改I/O优先级
  • q键退出
  • 任何其他键强制刷新

选项:

  • --version 显示程序的版本号并退出
  • -h, --help 显示此帮助信息并退出
  • -o, --only 只显示实际执行I/O的进程或线程
  • -b, --batch 非交互模式
  • -n NUM, --iter=NUM 结束前的迭代次数 [无限]
  • -d SEC, --delay=SEC 迭代之间的延迟 [1秒]
  • -p PID, --pid=PID 要监控的进程/线程 [全部]
  • -u USER, --user=USER 要监控的用户 [全部]
  • -P, --processes 只显示进程,不显示所有线程
  • -a, --accumulated 显示累积的I/O而不是带宽
  • -k, --kilobytes 使用千字节而不是人类友好的单位
  • -t, --time 在每一行上添加时间戳(暗示--batch
  • -q, --quiet 压制头部的一些行(暗示--batch
  • --no-help 压制快捷方式列表

5. 小贴士 💡

  • 权限要求:由于 iotop 需要访问系统的 I/O 子系统,因此需要 root 权限。通常情况下,使用 sudo 运行。
  • top 结合使用iotoptop 类似,可以实时监控磁盘 I/O。你可以结合两者使用,以便全面监控系统的资源使用。
  • 适合诊断 I/O 问题:如果你发现系统响应变慢,iotop 是排查磁盘 I/O 问题的利器。它能够帮助你识别哪些进程占用了过多的磁盘带宽。

6. 总结 🎯

iotop 是一个功能强大的命令行工具,专门用于监控 Linux 系统中的磁盘 I/O 活动。通过实时显示进程的磁盘读写行为,它可以帮助你快速识别哪些进程可能导致系统性能下降,尤其是磁盘 I/O 密集型应用。掌握 iotop,你可以更高效地管理和优化系统性能,排查潜在的瓶颈。⚙️

希望这篇教程帮助你更好地使用 iotop 命令!别忘了收藏在线知识库www.zxzsk.com )哦!😊