Linux命令:iotop

📅 2026/8/1 16:54:12 👁️ 阅读次数 📝 编程学习
Linux命令:iotop

iotop 命令

基本介绍

iotop(I/O Top)是 Linux 系统中用于实时监控磁盘 I/O 使用情况的工具,类似于top命令但专门用于 I/O 监控。它可以显示每个进程的磁盘读写速度、I/O 等待时间等信息,帮助系统管理员定位磁盘 I/O 瓶颈和资源消耗大户。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

iotop [OPTIONS]

常用选项

基本选项

  • -o, --only:只显示正在进行 I/O 操作的进程
  • -b, --batch:批处理模式,非交互式输出
  • -n, --iter=NUM:指定输出次数后退出
  • -d, --delay=SEC:设置刷新间隔时间(秒)
  • -p, --pid=PID:只显示指定进程的 I/O 信息
  • -u, --user=USER:只显示指定用户的进程

排序选项

  • -P, --processes:按进程而非线程显示
  • -a, --accumulated:显示累积的 I/O 统计
  • -k, --kilobytes:以 KB/s 为单位显示
  • -t, --time:在每行前显示时间戳

其他选项

  • -h, --help:显示帮助信息
  • -v, --version:显示版本信息

使用示例

1. 基本使用

iotop

输出示例:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % kthreadd 3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % rcu_gp 123 be/4 user 10.24 K/s 50.50 K/s 0.00 % 2.30 % chrome 456 be/4 user 5.12 K/s 25.25 K/s 0.00 % 1.15 % node

2. 只显示正在进行 I/O 的进程

iotop-o

3. 批处理模式输出

iotop-biotop-b-n5iotop-b-d2-n10

4. 只显示指定进程

iotop-p1234iotop-p1234,5678

5. 只显示指定用户

iotop-uroot iotop-uuser1

6. 以 KB/s 为单位显示

iotop-k

7. 显示累积统计

iotop-a

8. 按进程显示(而非线程)

iotop-P

9. 输出到文件

iotop-b-n10>io_stats.txt

输出格式说明

主要字段说明

字段说明
TID线程 ID
PRIOI/O 优先级(be 表示 best-effort)
USER进程所属用户
DISK READ磁盘读取速度
DISK WRITE磁盘写入速度
SWAPIN交换分区使用百分比
IOI/O 等待时间百分比
COMMAND命令名称

I/O 优先级说明

优先级说明
beBest-effort(默认)
rtReal-time
idleIdle

交互命令

iotop运行时,可以使用以下交互命令:

命令说明
o切换只显示有 I/O 活动的进程
p切换按进程/线程显示
a切换累积模式
q退出 iotop
k杀死指定进程
r反转排序顺序
1切换显示所有 CPU 核心的统计

实用技巧

监控磁盘 I/O 瓶颈

# 实时监控 I/O 活动iotop-o# 查看累积 I/O 使用iotop-a-b-n1

定位高 I/O 进程

# 查看写入最多的进程iotop-b-n1|sort-k6-r|head-5# 查看读取最多的进程iotop-b-n1|sort-k5-r|head-5

脚本中使用

# 获取磁盘写入速度最高的进程top_writer=$(iotop-b-n1|grep-v'^$'|grep-v'Total'|sort-k6-r|head-1)echo"Top Writer:$top_writer"

监控特定进程的 I/O

# 监控 MySQL 的 I/Oiotop-p$(pgrep mysqld)# 监控多个进程iotop-p$(pgrep-d','nginx)

生成 I/O 报告

# 生成 1 分钟的 I/O 报告iotop-b-d1-n60>io_report.txt# 分析报告catio_report.txt|awk'{sum+=$6} END {print "Total Write: " sum}'

相关命令

  • top:实时系统监控
  • htop:增强版 top
  • iostat:磁盘 I/O 统计工具
  • vmstat:虚拟内存统计工具
  • pidstat:进程级统计工具
  • df:磁盘空间使用情况
  • du:文件大小统计
  • fio:灵活的 I/O 测试工具

注意事项

  1. 权限要求iotop需要 root 权限才能正常运行
  2. 内核支持:需要 Linux 内核版本 2.6.20 或更高
  3. 安装方法
    • Debian/Ubuntu:apt-get install iotop
    • CentOS/RHEL:yum install iotop
  4. 性能影响iotop本身会产生一定的系统开销
  5. 批处理模式:使用-b选项适合脚本和自动化场景

总结

iotop是 Linux 系统中用于实时监控磁盘 I/O 使用情况的强大工具。它可以帮助系统管理员快速定位磁盘 I/O 瓶颈和资源消耗大户,是性能监控和故障诊断的必备工具。通过结合其他工具(如 iostat、vmstat、pidstat),可以全面了解系统的 I/O 状态。