Linux iotop命令详解

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。

与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控

注意,iotop的安装有前提条件(如果操作系统不满足这些条件,iotop无法正确安装):

 1:内核版本为2.6.20或更高版本
  2:Python 2.7或更高的版本

iotop参数

输入iotop -h可查看使用帮助

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。接进程号,监视指定进程,只会输出该进程的统计信息。
-u USER:监控的进程用户。
-k 使用千字节而不是人类友好单位
 

iotop使用

终端输入命令iotop -k查看到的效果如下图。

Linux iotop命令详解

说明:


 

    Total DISK READ:总磁盘读
    Actual DISK READ:实际磁盘读
    Total DISK WRITE :总磁盘写入
    Actual DISK WRITE:实际磁盘写入
    TID列:进程PID
    USER:进程对应的用户

iotop快捷键

    左右箭头:改变排序方式,默认是按IO排序。
    r:改变排序顺序。反向排序
    o:只显示有IO输出的进程。
    p:进程/线程的显示方式的切换。
    a:显示累积使用量。
    q:退出。

iotop的例子

1:只显示正在产生I/O的进程

iotop -o

Linux iotop命令详解

 通过输出结果,我们可以清楚地知晓是什么程序在读写磁盘,速度以及命令行,pid 等信息。

2:使用非交互模式将iotop命令输出信息写入日志

#nohup iotop -b -o -n 10 -d 5 -t  > /tmp/iotop.log &

3.借助iotop命令找到消耗I/O最高的进程

iotop -oP

监控系统I/O
[root@localhost ~]# iotop

监控用户root的I/O
[root@localhost ~]# iotop -u root

监控进程号是1的I/O
[root@localhost ~]# iotop -p 1

参考:https://www.xiaoz.me/archives/14057

https://www.cnblogs.com/kerrycode/p/11344506.html