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
查看到的效果如下图。
说明:
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
通过输出结果,我们可以清楚地知晓是什么程序在读写磁盘,速度以及命令行,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