Linux命令:iotop
iotop 命令
基本介绍
iotop(I/O Top)是 Linux 系统中用于实时监控磁盘 I/O 使用情况的工具,类似于top命令但专门用于 I/O 监控。它可以显示每个进程的磁盘读写速度、I/O 等待时间等信息,帮助系统管理员定位磁盘 I/O 瓶颈和资源消耗大户。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://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 % node2. 只显示正在进行 I/O 的进程
iotop-o3. 批处理模式输出
iotop-biotop-b-n5iotop-b-d2-n104. 只显示指定进程
iotop-p1234iotop-p1234,56785. 只显示指定用户
iotop-uroot iotop-uuser16. 以 KB/s 为单位显示
iotop-k7. 显示累积统计
iotop-a8. 按进程显示(而非线程)
iotop-P9. 输出到文件
iotop-b-n10>io_stats.txt输出格式说明
主要字段说明
| 字段 | 说明 |
|---|---|
TID | 线程 ID |
PRIO | I/O 优先级(be 表示 best-effort) |
USER | 进程所属用户 |
DISK READ | 磁盘读取速度 |
DISK WRITE | 磁盘写入速度 |
SWAPIN | 交换分区使用百分比 |
IO | I/O 等待时间百分比 |
COMMAND | 命令名称 |
I/O 优先级说明
| 优先级 | 说明 |
|---|---|
be | Best-effort(默认) |
rt | Real-time |
idle | Idle |
交互命令
在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:增强版 topiostat:磁盘 I/O 统计工具vmstat:虚拟内存统计工具pidstat:进程级统计工具df:磁盘空间使用情况du:文件大小统计fio:灵活的 I/O 测试工具
注意事项
- 权限要求:
iotop需要 root 权限才能正常运行 - 内核支持:需要 Linux 内核版本 2.6.20 或更高
- 安装方法:
- Debian/Ubuntu:
apt-get install iotop - CentOS/RHEL:
yum install iotop
- Debian/Ubuntu:
- 性能影响:
iotop本身会产生一定的系统开销 - 批处理模式:使用
-b选项适合脚本和自动化场景
总结
iotop是 Linux 系统中用于实时监控磁盘 I/O 使用情况的强大工具。它可以帮助系统管理员快速定位磁盘 I/O 瓶颈和资源消耗大户,是性能监控和故障诊断的必备工具。通过结合其他工具(如 iostat、vmstat、pidstat),可以全面了解系统的 I/O 状态。
