大家好!我是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”。