Linux 系统管理命令 - iotop - 动态显示磁盘 I/O 统计信息

命令详解

重要星级:

        ★★★★☆

功能说明:

        iotop 命令是一款实时监控磁盘 I/O 的工具, 但必须以 root 用户的身份运行。使用 iotop 命令可以很方便的查看每个进程使用磁盘 I/O 的情况。

        最小化安装系统一般是没有这个命令的,需要使用 yum 命令来额外安装:  yum install -y iotop  

语法格式:

    iotop [option]
    iotop [选项]

        说明:

            在 iotop 命令及后面的选项里,每个元素之间都至少要有一个空格。

选项说明:

-o :显示正在使用 I/O 的进程或者线程,默认是显示所有。 ※
-b :非交互模式,一般用来记录日志
-n NUM:设置监测的次数,默认无限。在非交互模式下很有用
-d :设置显示的间隔秒数。 -p :只显示指定 PID 的信息。 ※ -u :显示指定用户的信息。 -P :只显示进程,一般是显示所有的线程。 -a :显示从 iotop 启动后每个线程完成了的 I/O 总数。 -k :设置显示单位为 KB。 -t :在每一行前添加一个当前的时间。

man 手册翻译:

名称 
       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汇总。
man iotop

使用范例:

不使用任何参数启动 iotop 命令( iotop ):

[root@localhost :~]# 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 --switched-root --system --deserialize 22
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
     5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [lru-add-drain]
    11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    12 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
...

        以下是命令结果的具体说明:

 1.Toal DISK READ :总的磁盘读取速度。
 2.Toal DISK WRITE :总的磁盘写入速度。
 3.TID :进程的 pid 值。
 4.PRIO :优先级。
 5.USER :用户。
 6.DISK READ :磁盘读取速度。
 7.DISK WRITE :磁盘写入速度。
 8.SWAPIN :从 swap 分区读取数据占用的百分比。
 9.IO :I/O 占用的百分比。
10.COMMAND :消耗 I/O 的进程名。

根据 pid 查看指定进程信息 ( iotop -p pid ):

[root@localhost :~]# iotop -p 1321

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  
1321 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % sshd: root@pts/0

 参考资料:

  1. iotop详解

 

posted @ 2018-12-28 00:36  焦国峰的随笔日记  阅读(2406)  评论(0编辑  收藏  举报
// ############################### // ##############################