Linux性能监控命令系列之 iotop

程序员Sean

大家好!我是Sean!

上回说到iostat,今天讲一个和它长得很像的命令iotop,功能也是有些类似的,iotop是一个用来监视磁盘I/O使用状况的工具。

iotop(监视磁盘I/O使用状况的工具)

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

iotop使用Python语言编写而成,要求Python2.5(及以上版本)和Linux kernel2.6.20(及以上版本)。iotop提供有源代码及rpm包,可从其官方主页下载。

CentOS里一条命令即可安装:

yum install iotop

命令参数

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。

iotop常用快捷键

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

常用命令

iotop
默认显示信息

iotop -t
增加时间戳列

iotop -d 2 -n 3  
2s刷新1次,刷新三次信息后结束

iotop -u root 
仅显示root用户下进程的io信息

iotop -a 
以累计方式显示信息,数据从iotop命令启动开始做计算

iotop -b > iotop.txt
非交互模式,可以用重定向连续记录一段时间的信息

iotop -k 
以kB单位显示读写数据信息

iotop -q 
列名称只在第一次迭代时打印

iotop -qq 
列名从不打印

iotop -qqq 
不会打印I/O摘要

命令详解

默认显示信息

iotop
Total DISK READ 
Total DISK WRITE 
一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ
Actual DISK WRITE
表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。
TID                线程号或进程号
PRIO            线程运行时的I/O优先级
USER            进程所属用户
DISK READ        刷新时间间隔内读取数据量
DISK WRITE        刷新时间间隔内写入数据量
SWAPIN            每个进程的交换使用率
IO                每个进程的 I/O 利用率,包含磁盘和交换
COMMAND            进程名字

增加时间戳列

iotop -t

以kB单位显示读写数据信息

iotop -k

数据查看技巧
其实iotop命令显示的信息非常明显了,一目了然,我平时主要是用来具体定位到是哪个进程一直占用磁盘IO,上次讲的iostat只能初步看出系统的磁盘IO是否达到瓶颈,但是也不一定到了瓶颈,而是某些进程搞怪导致的,这是可以用iotop连续观察进程级别的IO情况,就可以很快找到哪个家伙在搞怪了。

思维导图总结

今天的分享就到这里啦!感谢各位的阅读!码字不易,如果本文对你有帮助的话,帮忙点个赞吧~哈哈。

性能监控命令系列结束后会将思维导图分享出来,欢迎关注公众号“程序员Sean”。

阅读 205

人生如逆旅,我亦是行人,但愿初相遇,不负有心人,分享程序员成长路上的点点滴滴。

1 声望
0 粉丝
0 条评论

人生如逆旅,我亦是行人,但愿初相遇,不负有心人,分享程序员成长路上的点点滴滴。

1 声望
0 粉丝
宣传栏