1)使用场景:
iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息。
2)各个单词细节含义:
Total DISK READ 和 Total DISK WRITE 的值一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ 和 Actual DISK WRITE 的值表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。
IO:它显示每个进程的 I/O 利用率,包含磁盘和交换。
SWAPIN: 它只显示每个进程的交换使用率。
3)命令使用:
各个参数说明:
-o, --only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
-b, --batch非交互模式,一般用来记录日志。
-n NUM, --iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。
-d SEC, --delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。
-p PID, --pid=PID指定监测的进程/线程。
-u USER, --user=USER指定监测某个用户产生的I/O。
-P, --processes仅显示进程,默认iotop显示所有线程。
-a, --accumulated显示累积的I/O,而不是带宽。
-k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
-t, --time 加上时间戳,非交互非模式。
-q, --quiet 禁止头几行,非交互模式。有三种指定方式。
-q 只在第一次监测时显示列名
-qq 永远不显示列名。
-qqq 永远不显示I/O汇总。
交互按键:
和top命令类似,iotop也支持以下几个交互按键。
left和right方向键:改变排序。
r:反向排序。
o:切换至选项–only。
p:切换至–processes选项。
a:切换至–accumulated选项。
q:退出。
i:改变线程的优先级。
4)举例:
1.iotop – 直接获取磁盘i/o 活动
2.iotop -o (或者:iotop --only) – 检查某些正在做I/O的进程。(仅显示正在读写的进程服务,会实时变化。)
3.iotop -d 2 -n 5 – 间隔2秒,总共输出5次
4.iotop -botq -p xxx(进程号) – 非交互式下,输出pid为xxx的进程信息
5.iotop -botq -n 5 -d 2s – 非交互式,监控某时间段的io信息,输出5次,每次间隔2秒