iotop详解
    有时我们希望知道到底哪个进程产生了IO,这个时候就需要iotop这个工具了。
    它的输出和top命令类似,简单直观。官网:http://guichaz.free.fr/iotop/
    需要Python 2.5(及以上版本)和 Linux kernel 2.6.20(及以上版本),TASK_DELAY_ACCT,CONFIG_TASKSTATS,TASK_IO_ACCOUNTING,CONFIG_VM_EVENT_COUNTERS这些内核选项开启。

    1
    [root@roger-lab ~]# yum -y install iotop
    直接执行:
    Total DISK READ: 43.14 M/s | Total DISK WRITE: 0.00 B/s
    TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
    8275 be/4 root 43.12 M/s 0.00 B/s 0.00 % 84.28 % dd if=/dev/sda of=/dev/null
    8281 be/4 root 18.65 K/s 0.00 B/s 0.00 % 3.24 % python /usr/bin/iotop
    1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
    2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
    3 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
    4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
    5 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
    6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
    7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [events/0]
    8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cgroup]
    9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper]
    10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns]
    11 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [async/mgr]
    12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [pm]
    13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [sync_supers]
    14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bdi-default]
    15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd/0]
    16 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd/0]
    17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpid]
    18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpi_notify]
    19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpi_hotplug]
    20 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata/0]
    21 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_aux]

    名称
    iotop - 简单的top类I/O监视器
    总览
    iotop [OPTIONS]
    描述
    iotop根据Linux内核(需要2.6.20及以上)来监测I/O,并且能显示当前进程/线程的I/O使用率。
    Linux内核build的事后哦,需要开启CONFIG_TASK_DELAY_ACCT和CONFIG_TASK_IO_ACCOUNTING选项,这些选项依赖于CONFIG_TASKSTATS。

    在采样周期里,iotop按列显示每个进程/线程的I/O读写带宽,同时也显示进程/线程做swap交换和等待I/O所占用的百分比。
    每一个进程都会显示I/O优先级(class/level),另外在最上面显示每个采样周期内的读写带宽。


    使用左右箭头来改变排序,r用来改变排序顺序,o用来触发—only选项,p用来触发—processes选项。
    a用来触发—accumulated选项,q用来退出,i用来改变进程或线程的监测优先级,其它任继健是强制刷新。


    选项
    —version 显示版本号然后退出
    -h, —help 显示帮助然后退出
    -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汇总。