「iotop」- 简单的、类似与 top 命令的 I/O 监控程序

常用命令

语法格式

iotop [OPTIONS]

命令描述

iotop 用于监视 Linux Kernel(>= 2.6.20)输出的 I/O 使用情况信息,并显示系统中进程或线程的当前 I/O 使用情况的表格。在 Linux Kernel 构建配置中,至少需要启用 CONFIG_TASK_DELAY_ACCT,CONFIG_TASK_IO_ACCOUNTING,CONFIG_TASKSTATS,CONFIG_VM_EVENT_COUNTERS 这几个选项。

在采样期间,iotop 显示由每个进程/线程读和写的 I/O 带宽的列,它还显示线程/进程在交换和等待I/O时花费的时间百分比。对于每个进程,还显示其 I/O 优先级(class/level)。

此外,在采样周期内,读取和写入的总 I/O 带宽显示在UI的顶部。Total DISK READ 和 Total DISK WRITE 值表示进程和核线程和内核块设备子系统之间的总读取和写入带宽。而 Actual DISK READ 和 Actual DISK WRITE 表示内核块设备子系统和底层硬件(HDD,SSD 等)之间的实际磁盘 I/O 的相应带宽。因此,由于数据缓存和在 Linux Kernel 中进行的 I/O 操作重新排序,Total 和 Actual 值在任何给定的时间可能并不相等。

使用左箭头和右箭头改变排序,r 进行反向排序,o 用于 –only 选项的切换,p 用于 –processes 选项的切换,a 用于 –accumulated 选项的切换,q 用于退出,i 用于修改线程或者进程的线程的优先级,其他的任何键用于刷新。

命令选项

-o, –only
只显示正在进行 IO 的进程或者线程的信息,默认显示全部的。使用o键进行切换。

-P, –processes
只显示进程。通常情况下,显示所有的线程。

-p PID, –pid=PID
指定要监控的PID,默认是全部的。如果要监控多个PID,可以通过多次使用该参数。

-u USER, –user=USER
要监控的用户,默认为全部的。如果要监控多个用户,可以多次使用该参数。

-a, –accumulated
显示累计I/O,而不是默认的带宽。在这种模式下,显示的IO进程累计是从iotop启动开始的。

-k, –kilobytes
以kilobyte(1000 byte)为单位。对iotop的批处理模式使用脚本时,此模式很有用。iotop将以千字节显示所有大小,而不是选择最合适的单元。

非交互模式类选项

-b, –batch
进入非交互模式,循环的输出IO使用情况。记录随着时间的推移IO的使用情况。

-n NUM, –iter=NUM
在非交互模式中有用,指定循环打印IO使用情况的次数。如果未指定,即默认情况下是不简单的输出。

-d SEC, –delay=SEC
在非交互模式的打印中,指定两次打印之间的间隔的秒数。默认为1,支持类似于1.1的非整数形式。

-t, –time
在每一行的开始加入当前的时间。使用该选项,默认开启–batch选项。

-q, –quiet
抑制一些标题行的打印,只在第一次输出的时候打印列名。使用该选项,默认开启–batch选项。

-qq
不打印列名。

-qqq
不显示IO摘要信息。

帮助类选项

–version / -h, –help
显示帮助和版本信息。

相关的手册

ionice(1), top(1), vmstat(1), atop(1), htop(1)

附加说明

参考文献

The IOTop Website: http://guichaz.free.fr/iotop/
Github Repo: git clone git://repo.or.cz/iotop.git
man 8 iotop, version: iotop 0.6
Sort Disk Read Write in Linux Iotop Command – howtouselinux